react-native-cross-components
Version:
Beautiful React-Native components using RN Paper by Callstack
55 lines • 8.12 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, 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 }));
}
/**
* 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 called = false;
const onCalled = () => (called = !called);
const wrapper = setup('Click test', onCalled, { type: 'zip-code' });
const child = wrapper.root.findByProps({ type: 'zip-code' });
//child.props.onChangeText();
child.props.
expect(called).toBeTruthy();
});
});
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvaW5wdXQvQ3Jvc3NFZGl0b3IudGVzdC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7QUFZQSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFiN0IsdUdBQXVHO0FBQ3ZHLGtEQUEwQjtBQUMxQiwrQ0FBK0Q7QUFDL0QsOEVBQStDO0FBRy9DLFNBQVMsS0FBSyxDQUFDLEtBQTBCLEVBQUUsWUFBeUIsRUFBRSxTQUE4QjtJQUNsRyxPQUFPLDZCQUFZLENBQUMsTUFBTSxDQUN4Qiw4QkFBQyx5QkFBVyxJQUFDLEtBQUssRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUksQ0FDdkcsQ0FBQztBQUNKLENBQUM7QUFLRDs7Ozs7O0tBTUs7QUFDTCxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7WUFDN0MsTUFBTSxTQUFTLEdBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3ZELEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7Z0JBQy9CLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7Z0JBQzVELE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7WUFDOUMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtnQkFDakMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxHQUFHLEVBQUU7Z0JBQzlELE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUN4QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7Z0JBQ3pELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDbkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFMUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDN0QsNkJBQTZCO2dCQUM3QixLQUFLLENBQUMsS0FBSztvQkFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvaW5wdXQvQ3Jvc3NFZGl0b3IudGVzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9pdG5leHQuaW8vdGVzdGluZy1yZWFjdC0xNi0zLWNvbXBvbmVudHMtd2l0aC1yZWFjdC10ZXN0LXJlbmRlcmVyLXdpdGhvdXQtZW56eW1lLWQ5YzY1ZDY4OWU4OFxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElDcm9zc0VkaXRvclByb3BzLCBDcm9zc0VkaXRvciB9IGZyb20gJy4vQ3Jvc3NFZGl0b3InO1xuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tICdyZWFjdC10ZXN0LXJlbmRlcmVyJztcbmltcG9ydCB7IFRleHRJbnB1dE1hc2tQcm9wcyB9IGZyb20gJ3JlYWN0LW5hdGl2ZS1tYXNrZWQtdGV4dCc7XG5cbmZ1bmN0aW9uIHNldHVwKGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkLCBvbkNoYW5nZVRleHQ/OiAoKSA9PiB2b2lkLCBtYXNrUHJvcHM/OiBUZXh0SW5wdXRNYXNrUHJvcHMpIHtcbiAgcmV0dXJuIFRlc3RSZW5kZXJlci5jcmVhdGUoXG4gICAgPENyb3NzRWRpdG9yIGxhYmVsPXtsYWJlbCB8fCAnVGVzdCd9IG9uQ2hhbmdlVGV4dD17b25DaGFuZ2VUZXh0IHx8IGplc3QuZm4oKX0gbWFza1Byb3BzPXttYXNrUHJvcHN9IC8+XG4gICk7XG59XG5cbmplc3QudW5tb2NrKCdyZWFjdC1uYXRpdmUnKTtcbmplc3QudW5tb2NrKCcuL0Nyb3NzRWRpdG9yJyk7XG5cbi8qKlxuICAgKiBUZXN0IGNvbXBvbmVudCByZW5kZXJpbmcuIFByb3BlcnRpZXMgb2YgY2hpbGRyZW4gbWlnaHQgYmUgdGVzdGVkIGJ5IGltcG9ydGluZyB0aGVpciB0eXBlOlxuICAgKmBgYFxuICAgICAgY29uc3QgYnRuID0gd3JhcHBlci5yb290LmZpbmRCeVR5cGUoQnV0dG9uKTsgLy8gb3IgZmluZEJ5UHJvcHMoeyBtb2RlOiAndGV4dCcgfSk7XG4gICAgICBleHBlY3QoYnRuLnByb3BzLnRpdGxlKS50b0JlKCdjaGlsZCcpO1xuICAgICAgYGBgXG4gICAqL1xuZGVzY3JpYmUoJ2NvbXBvbmVudHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCc8Q3Jvc3NFZGl0b3IgLz4nLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ2BJQ3Jvc3NFZGl0b3JQcm9wc2AgaW50ZXJmYWNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHNNb2NrOiBJQ3Jvc3NFZGl0b3JQcm9wcyA9IHsgbGFiZWw6ICdUZXN0JyB9O1xuICAgICAgaXQoJ1Nob3VsZCBtYXRjaCBzbmFwc2hvdCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHByb3BzTW9jaykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIGBtYXNrUHJvcHNgIHByb3BlcnR5IHRoYXQgaXMgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QocHJvcHNNb2NrLm1hc2tQcm9wcykudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnV2l0aCBgbGFiZWxgIHByb3BlcnR5IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgaXQoJ0NvbXBvbmVudCBzaG91bGQgcmVuZGVyJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoKTtcbiAgICAgICAgZXhwZWN0KHdyYXBwZXIudG9KU09OKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBwYXBlciA8VGV4dElucHV0IC8+IHdpdGggbW9kZSBcIm91dGxpbmVkXCInLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IG1vZGU6ICdvdXRsaW5lZCcgfSk7XG4gICAgICAgIGV4cGVjdChjaGlsZC50eXBlKS50b0VxdWFsKCdUZXh0SW5wdXQnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnPFRleHRJbnB1dE1hc2sgLz4gb25DaGFuZ2VUZXh0IHNob3VsZCBiZSBjYWxsZWQnLCAoKSA9PiB7XG4gICAgICAgIGxldCBjYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgb25DYWxsZWQgPSAoKSA9PiAoY2FsbGVkID0gIWNhbGxlZCk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdDbGljayB0ZXN0Jywgb25DYWxsZWQsIHt0eXBlOiAnemlwLWNvZGUnfSk7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gd3JhcHBlci5yb290LmZpbmRCeVByb3BzKHsgdHlwZTogJ3ppcC1jb2RlJyB9KTtcbiAgICAgICAgLy9jaGlsZC5wcm9wcy5vbkNoYW5nZVRleHQoKTtcbiAgICAgICAgY2hpbGQucHJvcHMuXG4gICAgICAgIGV4cGVjdChjYWxsZWQpLnRvQmVUcnV0aHkoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInZlcnNpb24iOjN9