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
JavaScript
;
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