@redocly/theme
Version:
Shared UI components lib
48 lines • 2.91 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.testIconComponent = testIconComponent;
const react_1 = __importDefault(require("react"));
const react_2 = require("@testing-library/react");
require("@testing-library/jest-dom");
function testIconComponent(IconComponent, componentName) {
const dataName = `icons/${componentName}/${componentName}`;
return {
rendersCorrectlyWithDefaultProps: () => {
const { container } = (0, react_2.render)(react_1.default.createElement(IconComponent, null));
const svgElement = container.querySelector('svg');
expect(svgElement).toBeInTheDocument();
// Check if styles are applied either via style attribute or CSS class
const element = container.firstChild;
const hasStyleAttr = element.style.height === '16px' && element.style.width === '16px';
const elementClass = element.getAttribute('class') || '';
const hasClassName = elementClass.includes('sc-'); // styled-components class
expect(hasStyleAttr || hasClassName).toBeTruthy();
},
appliesCustomSizeAndColor: () => {
var _a;
const { container } = (0, react_2.render)(react_1.default.createElement(IconComponent, { size: "24px", color: "--color-primary" }));
const svgElement = container.querySelector('svg');
expect(svgElement).toBeInTheDocument();
const element = container.firstChild;
const pathElement = container.querySelector('path');
// Check if size styles are applied either via style attribute or CSS class
const hasSizeStyle = element.style.height === '24px' && element.style.width === '24px';
const elementClass = element.getAttribute('class') || '';
const hasClassName = elementClass.includes('sc-'); // styled-components class
expect(hasSizeStyle || hasClassName).toBeTruthy();
// Check if color is applied either via style attribute or CSS class
const hasColorStyle = ((_a = pathElement.getAttribute('style')) === null || _a === void 0 ? void 0 : _a.includes('fill: var(--color-primary)')) ||
pathElement.getAttribute('fill') === 'var(--color-primary)' ||
elementClass.includes('sc-'); // check styled-components class on the root element
expect(hasColorStyle).toBeTruthy();
},
hasCorrectDataComponentName: () => {
const { container } = (0, react_2.render)(react_1.default.createElement(IconComponent, null));
expect(container.firstChild).toHaveAttribute('data-component-name', dataName);
},
};
}
//# sourceMappingURL=IconTestUtils.js.map