UNPKG

@redocly/theme

Version:

Shared UI components lib

48 lines 2.91 kB
"use strict"; 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