UNPKG

maisonsport-common-ui

Version:

Suite of styled-components to be consumed by the React-Native App and by the Web (via React-Native for Web)

153 lines (126 loc) 5.79 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _reactNative = require("@testing-library/react-native"); var _index = _interopRequireWildcard(require("./index.tsx")); var _Text = _interopRequireDefault(require("../../atoms/Text")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('Accordion', () => { test('@prop: title', () => { const titleText = 'This is a title!'; const { getByText } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { title: titleText })); expect(getByText(titleText)).toBeTruthy(); }); test('@prop: titleProps', () => { const titleText = 'This is a title!'; const variant = 'h1'; const { getByText } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { title: titleText, titleProps: { variant } })); const el = getByText(titleText); expect(el.props.variant).toBe(variant); }); test('@prop: onOpen', () => { const onOpen = jest.fn().mockName('onOpen'); const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { onOpen })); const headerBar = getByTestId(_index.headerBarContainer); _reactNative.fireEvent.press(headerBar); expect(onOpen).toHaveBeenCalled(); }); test('@prop: onClose', () => { const onClose = jest.fn().mockName('onClose'); const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { onClose })); const headerBar = getByTestId(_index.headerBarContainer); _reactNative.fireEvent.press(headerBar); expect(onClose).not.toHaveBeenCalled(); _reactNative.fireEvent.press(headerBar); expect(onClose).toHaveBeenCalled(); }); test('@prop: openByDefault [true]', () => { const contentID = 'accordion-content'; const content = /*#__PURE__*/_react.default.createElement(_Text.default, { testID: contentID }, "Some text"); const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { openByDefault: true }, content)); expect(getByTestId(contentID)).toBeTruthy(); }); test('@prop: openByDefault [false]', async () => { const contentID = 'accordion-content'; const content = /*#__PURE__*/_react.default.createElement(_Text.default, { testID: contentID }, "Some text"); const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, null, content)); expect(() => getByTestId(contentID)).toThrow(); }); test('@prop: nested [true]', () => { const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { nested: true })); expect(getByTestId(_index.nestedHeaderBarcontainer)).toBeTruthy(); }); test('@prop: nested [false]', () => { const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, null)); expect(() => getByTestId(_index.nestedHeaderBarcontainer)).toThrow(); }); test('@prop: image', () => { const imageTestID = 'image-test-id'; const { getByTestId } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, { image: /*#__PURE__*/_react.default.createElement("img", { alt: "", testID: imageTestID }) })); getByTestId(imageTestID); }); test('Nesting accordions', () => { const nestedContent = 'Some nested content'; const nestedAccordion = /*#__PURE__*/_react.default.createElement(_index.default, { nested: true }, /*#__PURE__*/_react.default.createElement(_Text.default, null, nestedContent)); const { getByTestId, getByText } = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_index.default, null, nestedAccordion)); // No nested element shown on initial render expect(() => getByTestId(_index.nestedHeaderBarcontainer)).toThrow(); // Open the parent accordion _reactNative.fireEvent.press(getByTestId(_index.headerBarContainer)); /** * - Nested header-bar should not be visible. * - The nested accordions 'content should not be visible. */ expect(() => getByTestId(_index.nestedHeaderBarcontainer)).toBeTruthy(); expect(() => getByText(nestedContent)).toThrow(); // Open the nested accordion _reactNative.fireEvent.press(getByTestId(_index.nestedHeaderBarcontainer)); // The nested accordions 'content should be visible expect(() => getByText(nestedContent)).toBeTruthy(); }); }); //# sourceMappingURL=accordion.test.js.map