2021-02-04 19:15:23 +01:00
|
|
|
import React from 'react';
|
|
|
|
import { shallow } from 'enzyme';
|
2021-03-16 22:00:08 +01:00
|
|
|
import SendRowWrapper from './send-row-wrapper.component';
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-03-16 22:00:08 +01:00
|
|
|
import SendRowErrorMessage from './send-row-error-message/send-row-error-message.container';
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
describe('SendContent Component', () => {
|
2021-02-04 19:15:23 +01:00
|
|
|
let wrapper;
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
describe('render', () => {
|
|
|
|
beforeEach(() => {
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper = shallow(
|
|
|
|
<SendRowWrapper
|
|
|
|
errorType="mockErrorType"
|
|
|
|
label="mockLabel"
|
|
|
|
showError={false}
|
|
|
|
>
|
2020-02-11 17:51:13 +01:00
|
|
|
<span>Mock Form Field</span>
|
2020-11-03 00:41:28 +01:00
|
|
|
</SendRowWrapper>,
|
2021-02-04 19:15:23 +01:00
|
|
|
);
|
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render a div with a send-v2__form-row class', () => {
|
|
|
|
expect(wrapper.find('div.send-v2__form-row')).toHaveLength(1);
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render two children of the root div, with send-v2_form label and field classes', () => {
|
|
|
|
expect(
|
|
|
|
wrapper.find('.send-v2__form-row > .send-v2__form-label'),
|
|
|
|
).toHaveLength(1);
|
|
|
|
expect(
|
|
|
|
wrapper.find('.send-v2__form-row > .send-v2__form-field'),
|
|
|
|
).toHaveLength(1);
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render the label as a child of the send-v2__form-label', () => {
|
|
|
|
expect(
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper
|
|
|
|
.find('.send-v2__form-row > .send-v2__form-label')
|
|
|
|
.childAt(0)
|
|
|
|
.text(),
|
2021-04-15 20:01:46 +02:00
|
|
|
).toStrictEqual('mockLabel');
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render its first child as a child of the send-v2__form-field', () => {
|
|
|
|
expect(
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper
|
|
|
|
.find('.send-v2__form-row > .send-v2__form-field')
|
|
|
|
.childAt(0)
|
|
|
|
.text(),
|
2021-04-15 20:01:46 +02:00
|
|
|
).toStrictEqual('Mock Form Field');
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should not render a SendRowErrorMessage if showError is false', () => {
|
|
|
|
expect(wrapper.find(SendRowErrorMessage)).toHaveLength(0);
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render a SendRowErrorMessage with and errorType props if showError is true', () => {
|
2021-02-04 19:15:23 +01:00
|
|
|
wrapper.setProps({ showError: true });
|
2021-04-15 20:01:46 +02:00
|
|
|
expect(wrapper.find(SendRowErrorMessage)).toHaveLength(1);
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2020-11-03 00:41:28 +01:00
|
|
|
const expectedSendRowErrorMessage = wrapper
|
|
|
|
.find('.send-v2__form-row > .send-v2__form-label')
|
2021-02-04 19:15:23 +01:00
|
|
|
.childAt(1);
|
2021-04-15 20:01:46 +02:00
|
|
|
expect(expectedSendRowErrorMessage.is(SendRowErrorMessage)).toStrictEqual(
|
|
|
|
true,
|
|
|
|
);
|
|
|
|
expect(expectedSendRowErrorMessage.props()).toStrictEqual({
|
2020-11-03 00:41:28 +01:00
|
|
|
errorType: 'mockErrorType',
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render its second child as a child of the send-v2__form-field, if it has two children', () => {
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper = shallow(
|
2019-12-03 17:35:44 +01:00
|
|
|
<SendRowWrapper
|
|
|
|
errorType="mockErrorType"
|
|
|
|
label="mockLabel"
|
|
|
|
showError={false}
|
|
|
|
>
|
|
|
|
<span>Mock Custom Label Content</span>
|
|
|
|
<span>Mock Form Field</span>
|
2020-11-03 00:41:28 +01:00
|
|
|
</SendRowWrapper>,
|
2021-02-04 19:15:23 +01:00
|
|
|
);
|
2021-04-15 20:01:46 +02:00
|
|
|
expect(
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper
|
|
|
|
.find('.send-v2__form-row > .send-v2__form-field')
|
|
|
|
.childAt(0)
|
|
|
|
.text(),
|
2021-04-15 20:01:46 +02:00
|
|
|
).toStrictEqual('Mock Form Field');
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
2018-05-10 18:17:05 +02:00
|
|
|
|
2021-04-15 20:01:46 +02:00
|
|
|
it('should render its first child as the last child of the send-v2__form-label, if it has two children', () => {
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper = shallow(
|
2019-12-03 17:35:44 +01:00
|
|
|
<SendRowWrapper
|
|
|
|
errorType="mockErrorType"
|
|
|
|
label="mockLabel"
|
|
|
|
showError={false}
|
|
|
|
>
|
|
|
|
<span>Mock Custom Label Content</span>
|
|
|
|
<span>Mock Form Field</span>
|
2020-11-03 00:41:28 +01:00
|
|
|
</SendRowWrapper>,
|
2021-02-04 19:15:23 +01:00
|
|
|
);
|
2021-04-15 20:01:46 +02:00
|
|
|
expect(
|
2020-11-03 00:41:28 +01:00
|
|
|
wrapper
|
|
|
|
.find('.send-v2__form-row > .send-v2__form-label')
|
|
|
|
.childAt(1)
|
|
|
|
.text(),
|
2021-04-15 20:01:46 +02:00
|
|
|
).toStrictEqual('Mock Custom Label Content');
|
2021-02-04 19:15:23 +01:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|