react-native-cross-components
Version:
Beautiful React-Native components using RN Paper by Callstack
59 lines • 9.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
jest.unmock('react-native');
jest.unmock('./CrossEditor');
// https://itnext.io/testing-react-16-3-components-with-react-test-renderer-without-enzyme-d9c65d689e88
const react_1 = __importDefault(require("react"));
const CrossEditor_1 = require("./CrossEditor");
const react_test_renderer_1 = __importDefault(require("react-test-renderer"));
function setup(label, value, onChangeText, maskProps) {
return react_test_renderer_1.default.create(react_1.default.createElement(CrossEditor_1.CrossEditor, { label: label || 'Test', onChangeText: onChangeText || jest.fn(), maskProps: maskProps, value: value || 'Textvalue' }));
}
/**
* Test component rendering. Properties of children might be tested by importing their type:
*```
const btn = wrapper.root.findByType(Button); // or findByProps({ mode: 'text' });
expect(btn.props.title).toBe('child');
```
*/
describe('components', () => {
describe('<CrossEditor />', () => {
describe('`ICrossEditorProps` interface', () => {
const propsMock = { label: 'Test' };
it('Should match snapshot', () => {
expect(propsMock).toMatchSnapshot();
});
it('Should have `maskProps` property that is undefined', () => {
expect(propsMock.maskProps).toBeUndefined();
});
});
describe('With `label` property provided', () => {
it('Component should render', () => {
const wrapper = setup();
expect(wrapper.toJSON()).toMatchSnapshot();
});
it('Should have paper <TextInput /> with mode "outlined"', () => {
const wrapper = setup();
const child = wrapper.root.findByProps({ mode: 'outlined' });
expect(child.type).toEqual('TextInput');
});
it('<TextInputMask /> onChangeText should be called', () => {
let gotText = undefined;
const textVal = '111333';
const maskProps = { type: 'zip-code' };
const onCalled = (val) => (gotText = val);
const wrapper = setup('Click test', '', onCalled, maskProps);
wrapper.root.findByProps(maskProps);
// @ts-ignore - strict null check ignored
const instance = wrapper.getInstance();
// @ts-ignore - func not found dev time
instance.onChangeText(textVal);
expect(gotText).toEqual(textVal);
});
});
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvaW5wdXQvQ3Jvc3NFZGl0b3IudGVzdC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7QUFzQkEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBdkI3Qix1R0FBdUc7QUFDdkcsa0RBQTBCO0FBQzFCLCtDQUErRDtBQUMvRCw4RUFBK0M7QUFHL0MsU0FBUyxLQUFLLENBQ1osS0FBMEIsRUFDMUIsS0FBMEIsRUFDMUIsWUFBb0MsRUFDcEMsU0FBOEI7SUFFOUIsT0FBTyw2QkFBWSxDQUFDLE1BQU0sQ0FDeEIsOEJBQUMseUJBQVcsSUFDVixLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFDdEIsWUFBWSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQ3ZDLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLEtBQUssRUFBRSxLQUFLLElBQUksV0FBVyxHQUMzQixDQUNILENBQUM7QUFDSixDQUFDO0FBS0Q7Ozs7OztLQU1LO0FBQ0wsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtRQUMvQixRQUFRLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1lBQzdDLE1BQU0sU0FBUyxHQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2RCxFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO2dCQUMvQixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO2dCQUM1RCxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1lBQzlDLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsc0RBQXNELEVBQUUsR0FBRyxFQUFFO2dCQUM5RCxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsaURBQWlELEVBQUUsR0FBRyxFQUFFO2dCQUN6RCxJQUFJLE9BQU8sR0FBdUIsU0FBUyxDQUFDO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7Z0JBQ3pCLE1BQU0sU0FBUyxHQUF1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUVsRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUVwQyx5Q0FBeUM7Z0JBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdkMsdUNBQXVDO2dCQUN2QyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUUvQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvU291cmNlL3JlYWN0LW5hdGl2ZS1jb3JlL3NvdXJjZS9jb21wb25lbnRzL2lucHV0L0Nyb3NzRWRpdG9yLnRlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vaXRuZXh0LmlvL3Rlc3RpbmctcmVhY3QtMTYtMy1jb21wb25lbnRzLXdpdGgtcmVhY3QtdGVzdC1yZW5kZXJlci13aXRob3V0LWVuenltZS1kOWM2NWQ2ODllODhcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJQ3Jvc3NFZGl0b3JQcm9wcywgQ3Jvc3NFZGl0b3IgfSBmcm9tICcuL0Nyb3NzRWRpdG9yJztcbmltcG9ydCBUZXN0UmVuZGVyZXIgZnJvbSAncmVhY3QtdGVzdC1yZW5kZXJlcic7XG5pbXBvcnQgeyBUZXh0SW5wdXRNYXNrUHJvcHMgfSBmcm9tICdyZWFjdC1uYXRpdmUtbWFza2VkLXRleHQnO1xuXG5mdW5jdGlvbiBzZXR1cChcbiAgbGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHZhbHVlPzogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvbkNoYW5nZVRleHQ/OiAodmFsOiBzdHJpbmcpID0+IHZvaWQsXG4gIG1hc2tQcm9wcz86IFRleHRJbnB1dE1hc2tQcm9wc1xuKSB7XG4gIHJldHVybiBUZXN0UmVuZGVyZXIuY3JlYXRlKFxuICAgIDxDcm9zc0VkaXRvclxuICAgICAgbGFiZWw9e2xhYmVsIHx8ICdUZXN0J31cbiAgICAgIG9uQ2hhbmdlVGV4dD17b25DaGFuZ2VUZXh0IHx8IGplc3QuZm4oKX1cbiAgICAgIG1hc2tQcm9wcz17bWFza1Byb3BzfVxuICAgICAgdmFsdWU9e3ZhbHVlIHx8ICdUZXh0dmFsdWUnfVxuICAgIC8+XG4gICk7XG59XG5cbmplc3QudW5tb2NrKCdyZWFjdC1uYXRpdmUnKTtcbmplc3QudW5tb2NrKCcuL0Nyb3NzRWRpdG9yJyk7XG5cbi8qKlxuICAgKiBUZXN0IGNvbXBvbmVudCByZW5kZXJpbmcuIFByb3BlcnRpZXMgb2YgY2hpbGRyZW4gbWlnaHQgYmUgdGVzdGVkIGJ5IGltcG9ydGluZyB0aGVpciB0eXBlOlxuICAgKmBgYFxuICAgICAgY29uc3QgYnRuID0gd3JhcHBlci5yb290LmZpbmRCeVR5cGUoQnV0dG9uKTsgLy8gb3IgZmluZEJ5UHJvcHMoeyBtb2RlOiAndGV4dCcgfSk7XG4gICAgICBleHBlY3QoYnRuLnByb3BzLnRpdGxlKS50b0JlKCdjaGlsZCcpO1xuICAgICAgYGBgXG4gICAqL1xuZGVzY3JpYmUoJ2NvbXBvbmVudHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCc8Q3Jvc3NFZGl0b3IgLz4nLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ2BJQ3Jvc3NFZGl0b3JQcm9wc2AgaW50ZXJmYWNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHNNb2NrOiBJQ3Jvc3NFZGl0b3JQcm9wcyA9IHsgbGFiZWw6ICdUZXN0JyB9O1xuICAgICAgaXQoJ1Nob3VsZCBtYXRjaCBzbmFwc2hvdCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHByb3BzTW9jaykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIGBtYXNrUHJvcHNgIHByb3BlcnR5IHRoYXQgaXMgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QocHJvcHNNb2NrLm1hc2tQcm9wcykudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnV2l0aCBgbGFiZWxgIHByb3BlcnR5IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgaXQoJ0NvbXBvbmVudCBzaG91bGQgcmVuZGVyJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoKTtcbiAgICAgICAgZXhwZWN0KHdyYXBwZXIudG9KU09OKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBwYXBlciA8VGV4dElucHV0IC8+IHdpdGggbW9kZSBcIm91dGxpbmVkXCInLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IG1vZGU6ICdvdXRsaW5lZCcgfSk7XG4gICAgICAgIGV4cGVjdChjaGlsZC50eXBlKS50b0VxdWFsKCdUZXh0SW5wdXQnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnPFRleHRJbnB1dE1hc2sgLz4gb25DaGFuZ2VUZXh0IHNob3VsZCBiZSBjYWxsZWQnLCAoKSA9PiB7XG4gICAgICAgIGxldCBnb3RUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHRleHRWYWwgPSAnMTExMzMzJztcbiAgICAgICAgY29uc3QgbWFza1Byb3BzOiBUZXh0SW5wdXRNYXNrUHJvcHMgPSB7IHR5cGU6ICd6aXAtY29kZScgfTtcbiAgICAgICAgY29uc3Qgb25DYWxsZWQgPSAodmFsOiBzdHJpbmcpID0+IChnb3RUZXh0ID0gdmFsKTtcblxuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ0NsaWNrIHRlc3QnLCAnJywgb25DYWxsZWQsIG1hc2tQcm9wcyk7XG4gICAgICAgIHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyhtYXNrUHJvcHMpO1xuXG4gICAgICAgIC8vIEB0cy1pZ25vcmUgLSBzdHJpY3QgbnVsbCBjaGVjayBpZ25vcmVkXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gd3JhcHBlci5nZXRJbnN0YW5jZSgpO1xuICAgICAgICAvLyBAdHMtaWdub3JlIC0gZnVuYyBub3QgZm91bmQgZGV2IHRpbWVcbiAgICAgICAgaW5zdGFuY2Uub25DaGFuZ2VUZXh0KHRleHRWYWwpO1xuXG4gICAgICAgIGV4cGVjdChnb3RUZXh0KS50b0VxdWFsKHRleHRWYWwpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwidmVyc2lvbiI6M30=