UNPKG

react-native-cross-components

Version:
85 lines 13.9 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,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvYnV0dG9ucy9Dcm9zc0J1dHRvbi50ZXN0LnRzeCIsIm1hcHBpbmdzIjoiOzs7OztBQXNCQSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUF2QjdCLGtEQUEwQjtBQUMxQixnRUFBK0Q7QUFDL0QsOEVBQStDO0FBQy9DLHlDQUFzQztBQUV0QyxTQUFTLEtBQUssQ0FDWixRQUFnQixFQUNoQixLQUFXLEVBQ1gsSUFBYSxFQUNiLE9BQW9CO0lBRXBCLE9BQU8sNkJBQVksQ0FBQyxNQUFNLENBQ3hCLDhCQUFDLHFCQUFXLElBQ1YsUUFBUSxFQUFFLFFBQVEsRUFDbEIsS0FBSyxFQUFFLEtBQUssRUFDWixLQUFLLEVBQUMsTUFBTSxFQUNaLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUM3QixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsR0FDaEIsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUtEOzs7Ozs7S0FNSztBQUNMLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDL0IsUUFBUSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtZQUM3QyxNQUFNLFNBQVMsR0FBc0IsRUFBRSxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7Z0JBQy9CLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxD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LEVBQUUsR0FBRyxFQUFFO2dCQUM5RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtnQkFDeEQsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIvVXNlcnMvdGhvbWFzL1NvdXJjZS9yZWFjdC1uYXRpdmUtY29yZS9zb3VyY2UvY29tcG9uZW50cy9idXR0b25zL0Nyb3NzQnV0dG9uLnRlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ3Jvc3NCdXR0b24sIHsgSUNyb3NzQnV0dG9uUHJvcHMgfSBmcm9tICcuL0Nyb3NzQnV0dG9uJztcbmltcG9ydCBUZXN0UmVuZGVyZXIgZnJvbSAncmVhY3QtdGVzdC1yZW5kZXJlcic7XG5pbXBvcnQgeyBzdHlsZXMgfSBmcm9tICcuLi8uLi9zdHlsZXMnO1xuXG5mdW5jdGlvbiBzZXR1cChcbiAgaWNvbk5hbWU6IHN0cmluZyxcbiAgdGl0bGU/OiBhbnksXG4gIHNpemU/OiBudW1iZXIsXG4gIG9uUHJlc3M/OiAoKSA9PiB2b2lkXG4pIHtcbiAgcmV0dXJuIFRlc3RSZW5kZXJlci5jcmVhdGUoXG4gICAgPENyb3NzQnV0dG9uXG4gICAgICBpY29uTmFtZT17aWNvbk5hbWV9XG4gICAgICB0aXRsZT17dGl0bGV9XG4gICAgICBjb2xvcj1cImJsdWVcIlxuICAgICAgb25QcmVzcz17b25QcmVzcyB8fCBqZXN0LmZuKCl9XG4gICAgICBzaXplPXtzaXplIHx8IDY0fVxuICAgIC8+XG4gICk7XG59XG5cbmplc3QudW5tb2NrKCdyZWFjdC1uYXRpdmUnKTtcbmplc3QudW5tb2NrKCcuL0Nyb3NzQnV0dG9uJyk7XG5cbi8qKlxuICAgKiBUZXN0IGNvbXBvbmVudCByZW5kZXJpbmcuIFByb3BlcnRpZXMgb2YgY2hpbGRyZW4gbWlnaHQgYmUgdGVzdGVkIGJ5IGltcG9ydGluZyB0aGVpciB0eXBlOlxuICAgKmBgYFxuICAgICAgY29uc3QgYnRuID0gd3JhcHBlci5yb290LmZpbmRCeVR5cGUoQnV0dG9uKTsgLy8gb3IgZmluZEJ5UHJvcHMoeyBtb2RlOiAndGV4dCcgfSk7XG4gICAgICBleHBlY3QoYnRuLnByb3BzLnRpdGxlKS50b0JlKCdjaGlsZCcpO1xuICAgICAgYGBgXG4gICAqL1xuZGVzY3JpYmUoJ2NvbXBvbmVudHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCc8Q3Jvc3NCdXR0b24gLz4nLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ2BJQ3Jvc3NCdXR0b25Qcm9wc2AgaW50ZXJmYWNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHNNb2NrOiBJQ3Jvc3NCdXR0b25Qcm9wcyA9IHt9O1xuICAgICAgaXQoJ1Nob3VsZCBtYXRjaCBzbmFwc2hvdCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHByb3BzTW9jaykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIGBjb2xvcmAgcHJvcGVydHkgdGhhdCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChwcm9wc01vY2suY29sb3IpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ1dpdGggYHRpdGxlYCBhbmQgYGljb25OYW1lYCBwcm9wZXJ0aWVzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgaXQoJ0NvbXBvbmVudCBzaG91bGQgcmVuZGVyJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ2hvbWUnLCAnaG9tZScpO1xuICAgICAgICBleHBlY3Qod3JhcHBlci50b0pTT04oKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIHBhcGVyIDxCdXR0b24gLz4nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgnaG9tZScsICdob21lJyk7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gd3JhcHBlci5yb290LmZpbmRCeVByb3BzKHsgbW9kZTogJ3RleHQnIH0pO1xuICAgICAgICBleHBlY3QoY2hpbGQudHlwZSkudG9FcXVhbCgnVmlldycpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBwYXBlciBgPEJ1dHRvbiAvPmAgd2l0aCBgbW9kZWAgcHJvcGVydHkgc2V0IHRvIFwidGV4dFwiJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ2hvbWUnLCAnaG9tZScpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IG1vZGU6ICd0ZXh0JyB9KTtcbiAgICAgICAgZXhwZWN0KGNoaWxkKS50b0JlRGVmaW5lZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdTaG91bGQgaGF2ZSBwYXBlciBgPEZvbnRBd2Vzb21lIC8+YCBpY29uIHdpdGggYHNpemVgIHByb3BlcnR5IHNldCB0byBgOTlgJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gc2V0dXAoJ2hvbWUnLCAnaG9tZScsIDk5KTtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLnJvb3QuZmluZEJ5UHJvcHMoeyBzaXplOiA5OSB9KTtcbiAgICAgICAgZXhwZWN0KGNoaWxkLnByb3BzLmNvbG9yKS50b0JlKCdibHVlJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIHBhcGVyIGA8Rm9udEF3ZXNvbWUgLz5gIGljb24gd2l0aCBgc2l6ZWAgcHJvcGVydHkgc2V0IHRvIGA5OWAnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgnaG9tZScsICdob21lJywgOTkpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IHNpemU6IDk5IH0pO1xuICAgICAgICBleHBlY3QoY2hpbGQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdXaXRoIGBpY29uTmFtZWAgYnV0IHdpdGhvdXQgYHRpdGxlYCBwcm9wZXJ0eSBwcm92aWRlZCcsICgpID0+IHtcbiAgICAgIGl0KCdDb21wb25lbnQgc2hvdWxkIHJlbmRlcicsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdtYXAnLCB1bmRlZmluZWQpO1xuICAgICAgICBleHBlY3Qod3JhcHBlci50b0pTT04oKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIGA8Rm9udEF3ZXNvbWUuQnV0dG9uIC8+YCB3aXRoIGBuYW1lYCBzZXQgdG8gXCJtYXBcIicsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHNldHVwKCdtYXAnLCB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBjaGlsZCA9IHdyYXBwZXIucm9vdC5maW5kQnlQcm9wcyh7IG5hbWU6ICdtYXAnIH0pO1xuICAgICAgICBleHBlY3QoY2hpbGQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ1Nob3VsZCBoYXZlIGA8Rm9udEF3ZXNvbWUuQnV0dG9uIC8+YCB3aXRoIGBzdHlsZWAgc2V0IHRvIFwiY29udGFpbmVyXCInLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgnbWFwJywgdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLnJvb3QuZmluZEJ5UHJvcHMoeyBuYW1lOiAnbWFwJyB9KTtcbiAgICAgICAgZXhwZWN0KGNoaWxkLnByb3BzLnN0eWxlKS50b0JlKHN0eWxlcy5jb250YWluZXIpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCc8Rm9udEF3ZXNvbWVCdXR0b24gLz4gb25QcmVzcyBzaG91bGQgYmUgY2FsbGVkJywgKCkgPT4ge1xuICAgICAgICBsZXQgY2FsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG9uQ2FsbGVkID0gKCkgPT4gKGNhbGxlZCA9ICFjYWxsZWQpO1xuXG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBzZXR1cCgnbWFwJywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9uQ2FsbGVkKTtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLnJvb3QuZmluZEJ5UHJvcHMoeyBuYW1lOiAnbWFwJyB9KTtcbiAgICAgICAgY2hpbGQucHJvcHMub25QcmVzcygpO1xuICAgICAgICBleHBlY3QoY2FsbGVkKS50b0JlVHJ1dGh5KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJ2ZXJzaW9uIjozfQ==