UNPKG

react-native-cross-components

Version:
85 lines 13.8 kB
"use strict"; 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('./CrossButton'); const react_1 = __importDefault(require("react")); const CrossButton_1 = __importDefault(require("./CrossButton")); const react_test_renderer_1 = __importDefault(require("react-test-renderer")); const styles_1 = require("../../styles"); function setup(iconName, title, size, onPress) { return react_test_renderer_1.default.create(react_1.default.createElement(CrossButton_1.default, { iconName: iconName, title: title, color: 'blue', onPress: onPress || jest.fn(), size: size || 64 })); } /** * 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('<CrossButton />', () => { describe('`ICrossButtonProps` interface', () => { const propsMock = {}; it('Should match snapshot', () => { expect(propsMock).toMatchSnapshot(); }); it('Should have `color` property that is undefined', () => { expect(propsMock.color).toBeUndefined(); }); }); describe('With `title` and `iconName` properties provided', () => { it('Component should render', () => { const wrapper = setup('home', 'home'); expect(wrapper.toJSON()).toMatchSnapshot(); }); it('Should have paper <Button />', () => { const wrapper = setup('home', 'home'); const child = wrapper.root.findByProps({ mode: 'text' }); expect(child.type).toEqual('View'); }); it('Should have paper `<Button />` with `mode` property set to "text"', () => { const wrapper = setup('home', 'home'); const child = wrapper.root.findByProps({ mode: 'text' }); expect(child).toBeDefined(); }); it('Should have paper `<FontAwesome />` icon with `size` property set to `99`', () => { const wrapper = setup('home', 'home', 99); const child = wrapper.root.findByProps({ size: 99 }); expect(child.props.color).toBe('blue'); }); it('Should have paper `<FontAwesome />` icon with `size` property set to `99`', () => { const wrapper = setup('home', 'home', 99); const child = wrapper.root.findByProps({ size: 99 }); expect(child).toBeDefined(); }); }); describe('With `iconName` but without `title` property provided', () => { it('Component should render', () => { const wrapper = setup('map', undefined); expect(wrapper.toJSON()).toMatchSnapshot(); }); it('Should have `<FontAwesome.Button />` with `name` set to "map"', () => { const wrapper = setup('map', undefined); const child = wrapper.root.findByProps({ name: 'map' }); expect(child).toBeDefined(); }); it('Should have `<FontAwesome.Button />` with `style` set to "container"', () => { const wrapper = setup('map', undefined); const child = wrapper.root.findByProps({ name: 'map' }); expect(child.props.style).toBe(styles_1.styles.container); }); it('<FontAwesomeButton /> onPress should be called', () => { let called = false; const onCalled = () => called = !called; const wrapper = setup('map', undefined, undefined, onCalled); const child = wrapper.root.findByProps({ name: 'map' }); child.props.onPress(); expect(called).toBeTruthy(); }); }); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvYnV0dG9ucy9Dcm9zc0J1dHRvbi50ZXN0LnRzeCIsIm1hcHBpbmdzIjoiOzs7OztBQWlCQSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFsQjdCLGtEQUEwQjtBQUMxQixnRUFBK0Q7QUFDL0QsOEVBQStDO0FBQy9DLHlDQUFzQztBQUV0QyxTQUFTLEtBQUssQ0FBQyxRQUFnQixFQUFFLEtBQVcsRUFBRSxJQUFhLEVBQUUsT0FBb0I7SUFDL0UsT0FBTyw2QkFBWSxDQUFDLE1BQU0sQ0FDeEIsOEJBQUMscUJBQVcsSUFDVixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUUsS0FBSyxFQUNaLEtBQUssRUFBQyxNQUFNLEVBQ1osT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQzdCLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxHQUNoQixDQUNILENBQUM7QUFDSixDQUFDO0FBS0Q7Ozs7OztLQU1LO0FBQ0wsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtRQUMvQixRQUFRLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1lBQzdDLE1BQU0sU0FBUyxHQUFzQixFQUFFLENBQUM7WUFDeEMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtnQkFDL0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtnQkFDeEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENB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RUFBRSxHQUFHLEVBQUU7Z0JBQzlFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO2dCQUN4RCxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ25CLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFFeEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvYnV0dG9ucy9Dcm9zc0J1dHRvbi50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IENyb3NzQnV0dG9uLCB7IElDcm9zc0J1dHRvblByb3BzIH0gZnJvbSAnLi9Dcm9zc0J1dHRvbic7XG5pbXBvcnQgVGVzdFJlbmRlcmVyIGZyb20gJ3JlYWN0LXRlc3QtcmVuZGVyZXInO1xuaW1wb3J0IHsgc3R5bGVzIH0gZnJvbSAnLi4vLi4vc3R5bGVzJztcblxuZnVuY3Rpb24gc2V0dXAoaWNvbk5hbWU6IHN0cmluZywgdGl0bGU/OiBhbnksIHNpemU/OiBudW1iZXIsIG9uUHJlc3M/OiAoKSA9PiB2b2lkKSB7XG4gIHJldHVybiBUZXN0UmVuZGVyZXIuY3JlYXRlKFxuICAgIDxDcm9zc0J1dHRvblxuICAgICAgaWNvbk5hbWU9e2ljb25OYW1lfVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgY29sb3I9J2JsdWUnXG4gICAgICBvblByZXNzPXtvblByZXNzIHx8wqBqZXN0LmZuKCl9XG4gICAgICBzaXplPXtzaXplIHx8IDY0fVxuICAgIC8+XG4gICk7XG59XG5cbmplc3QudW5tb2NrKCdyZWFjdC1uYXRpdmUnKTtcbmplc3QudW5tb2NrKCcuL0Nyb3NzQnV0dG9uJyk7XG5cbi8qKlxuICAgKiBUZXN0IGNvbXBvbmVudCByZW5kZXJpbmcuIFByb3BlcnRpZXMgb2YgY2hpbGRyZW4gbWlnaHQgYmUgdGVzdGVkIGJ5IGltcG9ydGluZyB0aGVpciB0eXBlOlxuICAgKmBgYFxuICAgICAgY29uc3QgYnRuID0gd3JhcHBlci5yb290LmZpbmRCeVR5cGUoQnV0dG9uKTsgLy8gb3IgZmluZEJ5UHJvcHMoeyBtb2RlOiAndGV4dCcgfSk7XG4gICAgICBleHBlY3QoYnRuLnByb3BzLnRpdGxlKS50b0JlKCdjaGlsZCcpO1xuICAgICAgYGBgXG4gICAqL1xuZGVzY3JpYmUoJ2NvbXBvbmVudHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCc8Q3Jvc3NCdXR0b24gLz4nLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ2BJQ3Jvc3NCdXR0b25Qcm9wc2AgaW50ZXJmYWNlJywgKCkgPT4gIHtcbiAgICAgIGNvbnN0IHByb3BzTW9jazogSUNyb3NzQnV0dG9uUHJvcHMgPSB7fTtcbiAgICAgIGl0KCdTaG91bGQgbWF0Y2ggc25hcHNob3QnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChwcm9wc01vY2spLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBgY29sb3JgIHByb3BlcnR5IHRoYXQgaXMgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QocHJvcHNNb2NrLmNvbG9yKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdXaXRoIGB0aXRsZWAgYW5kIGBpY29uTmFtZWAgcHJvcGVydGllcyBwcm92aWRlZCcsICgpID0+IHtcbiAgICAgIGl0KCdDb21wb25lbnQgc2hvdWxkIHJlbmRlcicsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdob21lJywgJ2hvbWUnKTtcbiAgICAgICAgZXhwZWN0KHdyYXBwZXIudG9KU09OKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBwYXBlciA8QnV0dG9uIC8+JywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ2hvbWUnLCAnaG9tZScpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IG1vZGU6ICd0ZXh0JyB9KTtcbiAgICAgICAgZXhwZWN0KGNoaWxkLnR5cGUpLnRvRXF1YWwoJ1ZpZXcnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnU2hvdWxkIGhhdmUgcGFwZXIgYDxCdXR0b24gLz5gIHdpdGggYG1vZGVgIHByb3BlcnR5IHNldCB0byBcInRleHRcIicsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdob21lJywgJ2hvbWUnKTtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLnJvb3QuZmluZEJ5UHJvcHMoeyBtb2RlOiAndGV4dCcgfSk7XG4gICAgICAgIGV4cGVjdChjaGlsZCkudG9CZURlZmluZWQoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnU2hvdWxkIGhhdmUgcGFwZXIgYDxGb250QXdlc29tZSAvPmAgaWNvbiB3aXRoIGBzaXplYCBwcm9wZXJ0eSBzZXQgdG8gYDk5YCcsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdob21lJywgJ2hvbWUnLCA5OSk7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gd3JhcHBlci5yb290LmZpbmRCeVByb3BzKHsgc2l6ZTogOTkgfSk7XG4gICAgICAgIGV4cGVjdChjaGlsZC5wcm9wcy5jb2xvcikudG9CZSgnYmx1ZScpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBwYXBlciBgPEZvbnRBd2Vzb21lIC8+YCBpY29uIHdpdGggYHNpemVgIHByb3BlcnR5IHNldCB0byBgOTlgJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ2hvbWUnLCAnaG9tZScsIDk5KTtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLnJvb3QuZmluZEJ5UHJvcHMoeyBzaXplOiA5OSB9KTtcbiAgICAgICAgZXhwZWN0KGNoaWxkKS50b0JlRGVmaW5lZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnV2l0aCBgaWNvbk5hbWVgIGJ1dCB3aXRob3V0IGB0aXRsZWAgcHJvcGVydHkgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICBpdCgnQ29tcG9uZW50IHNob3VsZCByZW5kZXInLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgnbWFwJywgdW5kZWZpbmVkKTtcbiAgICAgICAgZXhwZWN0KHdyYXBwZXIudG9KU09OKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBgPEZvbnRBd2Vzb21lLkJ1dHRvbiAvPmAgd2l0aCBgbmFtZWAgc2V0IHRvIFwibWFwXCInLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgnbWFwJywgdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLnJvb3QuZmluZEJ5UHJvcHMoeyBuYW1lOiAnbWFwJyB9KTtcbiAgICAgICAgZXhwZWN0KGNoaWxkKS50b0JlRGVmaW5lZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBgPEZvbnRBd2Vzb21lLkJ1dHRvbiAvPmAgd2l0aCBgc3R5bGVgIHNldCB0byBcImNvbnRhaW5lclwiJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ21hcCcsIHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gd3JhcHBlci5yb290LmZpbmRCeVByb3BzKHsgbmFtZTogJ21hcCcgfSk7XG4gICAgICAgIGV4cGVjdChjaGlsZC5wcm9wcy5zdHlsZSkudG9CZShzdHlsZXMuY29udGFpbmVyKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnPEZvbnRBd2Vzb21lQnV0dG9uIC8+IG9uUHJlc3Mgc2hvdWxkIGJlIGNhbGxlZCcsICgpID0+IHtcbiAgICAgICAgbGV0IGNhbGxlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBvbkNhbGxlZCA9ICgpID0+IGNhbGxlZCA9ICFjYWxsZWQ7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdtYXAnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb25DYWxsZWQpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IG5hbWU6ICdtYXAnIH0pO1xuICAgICAgICBjaGlsZC5wcm9wcy5vblByZXNzKCk7XG4gICAgICAgIGV4cGVjdChjYWxsZWQpLnRvQmVUcnV0aHkoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInZlcnNpb24iOjN9