@abstraks-dev/ui-library 1.1.26 → 1.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/AccountBox.test.js +61 -0
- package/dist/__tests__/AccountCircle.test.js +69 -0
- package/dist/__tests__/Alert.test.js +144 -0
- package/dist/__tests__/ArrowIcon.test.js +61 -0
- package/dist/__tests__/ArrowRight.test.js +12 -7
- package/dist/__tests__/BookOpen.test.js +61 -0
- package/dist/__tests__/Camera.test.js +69 -0
- package/dist/__tests__/CaretDown.test.js +69 -0
- package/dist/__tests__/ChevronDown.test.js +13 -8
- package/dist/__tests__/Comment.test.js +69 -0
- package/dist/__tests__/Ellipses.test.js +61 -0
- package/dist/__tests__/Explore.test.js +61 -0
- package/dist/__tests__/FileInput.test.js +148 -0
- package/dist/__tests__/Filter.test.js +69 -0
- package/dist/__tests__/Form.test.js +471 -0
- package/dist/__tests__/Group.test.js +61 -0
- package/dist/__tests__/GroupReview.test.js +61 -0
- package/dist/__tests__/Hamburger.test.js +69 -0
- package/dist/__tests__/Header.test.js +198 -0
- package/dist/__tests__/Heart.test.js +69 -0
- package/dist/__tests__/Home.test.js +69 -0
- package/dist/__tests__/LoadingSpinner.test.js +78 -0
- package/dist/__tests__/LogOut.test.js +69 -0
- package/dist/__tests__/Magnify.test.js +69 -0
- package/dist/__tests__/News.test.js +61 -0
- package/dist/__tests__/Review.test.js +61 -0
- package/dist/__tests__/SaveIcon.test.js +61 -0
- package/dist/__tests__/Search.test.js +101 -0
- package/dist/__tests__/utils/accessibility.test.js +361 -0
- package/dist/__tests__/utils/inputValidation-core.test.js +80 -0
- package/dist/__tests__/utils/validation-core.test.js +123 -0
- package/dist/__tests__/utils/validation.test.js +362 -0
- package/dist/components/Alert.js +104 -0
- package/dist/components/FileInput.js +96 -0
- package/dist/components/Form.js +27 -3
- package/dist/components/Search.js +236 -0
- package/dist/icons/AccountBox.js +33 -0
- package/dist/icons/AccountCircle.js +33 -0
- package/dist/icons/ArrowIcon.js +3 -2
- package/dist/icons/ArrowRight.js +23 -12
- package/dist/icons/BookOpen.js +33 -0
- package/dist/icons/Camera.js +33 -0
- package/dist/icons/CaretDown.js +33 -0
- package/dist/icons/ChevronDown.js +19 -9
- package/dist/icons/Comment.js +33 -0
- package/dist/icons/Explore.js +33 -0
- package/dist/icons/Filter.js +33 -0
- package/dist/icons/Group.js +33 -0
- package/dist/icons/GroupReview.js +33 -0
- package/dist/icons/Hamburger.js +14 -20
- package/dist/icons/Heart.js +33 -0
- package/dist/icons/Home.js +33 -0
- package/dist/icons/LoadingSpinner.js +3 -2
- package/dist/icons/LogOut.js +33 -0
- package/dist/icons/Magnify.js +33 -0
- package/dist/icons/News.js +33 -0
- package/dist/icons/Review.js +35 -0
- package/dist/icons/SaveIcon.js +3 -2
- package/dist/icons/index.js +112 -0
- package/dist/index.js +32 -0
- package/dist/styles/_variables.scss +2 -0
- package/dist/styles/alert.css +218 -0
- package/dist/styles/alert.css.map +1 -0
- package/dist/styles/alert.scss +128 -0
- package/dist/styles/anchor.css.map +1 -1
- package/dist/styles/avatar.css.map +1 -1
- package/dist/styles/button.css.map +1 -1
- package/dist/styles/card.css.map +1 -1
- package/dist/styles/checkbox.css.map +1 -1
- package/dist/styles/crud.css.map +1 -1
- package/dist/styles/dragAndDrop.css.map +1 -1
- package/dist/styles/error.css.map +1 -1
- package/dist/styles/file-input.css +165 -0
- package/dist/styles/file-input.css.map +1 -0
- package/dist/styles/file-input.scss +69 -0
- package/dist/styles/footer.css.map +1 -1
- package/dist/styles/form.css.map +1 -1
- package/dist/styles/header.css.map +1 -1
- package/dist/styles/heading.css.map +1 -1
- package/dist/styles/hero.css.map +1 -1
- package/dist/styles/htmlElements.css.map +1 -1
- package/dist/styles/label.css.map +1 -1
- package/dist/styles/loader.css.map +1 -1
- package/dist/styles/main.css +311 -0
- package/dist/styles/main.css.map +1 -1
- package/dist/styles/menu-hover.css.map +1 -1
- package/dist/styles/paragraph.css.map +1 -1
- package/dist/styles/prompt.css.map +1 -1
- package/dist/styles/radio.css.map +1 -1
- package/dist/styles/search.css +269 -0
- package/dist/styles/search.css.map +1 -0
- package/dist/styles/search.scss +215 -0
- package/dist/styles/select.css.map +1 -1
- package/dist/styles/side-menu.css.map +1 -1
- package/dist/styles/tabs.css.map +1 -1
- package/dist/styles/text-area.css.map +1 -1
- package/dist/styles/text-input.css.map +1 -1
- package/dist/utils/utils/validation.js +2 -2
- package/dist/utils/validation.js +2 -2
- package/package.json +1 -1
- package/dist/icons/__tests__/CheckCircle.test.js +0 -9
- package/dist/icons/__tests__/ChevronDown.test.js +0 -9
- package/dist/icons/__tests__/Close.test.js +0 -9
- package/dist/icons/__tests__/EditSquare.test.js +0 -9
- package/dist/icons/__tests__/PlusCircle.test.js +0 -9
- package/dist/icons/__tests__/TrashX.test.js +0 -9
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _AccountBox = require("../icons/AccountBox");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
describe('AccountBox Icon', () => {
|
|
8
|
+
test('renders with default props', () => {
|
|
9
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, null));
|
|
10
|
+
const svg = document.querySelector('svg');
|
|
11
|
+
expect(svg).toBeInTheDocument();
|
|
12
|
+
expect(svg.tagName).toBe('svg');
|
|
13
|
+
});
|
|
14
|
+
test('applies correct default dimensions', () => {
|
|
15
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, null));
|
|
16
|
+
const svg = document.querySelector('svg');
|
|
17
|
+
expect(svg).toHaveAttribute('width', '24');
|
|
18
|
+
expect(svg).toHaveAttribute('height', '24');
|
|
19
|
+
});
|
|
20
|
+
test('applies custom dimensions', () => {
|
|
21
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, {
|
|
22
|
+
dimensions: 32
|
|
23
|
+
}));
|
|
24
|
+
const svg = document.querySelector('svg');
|
|
25
|
+
expect(svg).toHaveAttribute('width', '32');
|
|
26
|
+
expect(svg).toHaveAttribute('height', '32');
|
|
27
|
+
});
|
|
28
|
+
test('applies correct CSS classes', () => {
|
|
29
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, null));
|
|
30
|
+
const svg = document.querySelector('svg');
|
|
31
|
+
expect(svg).toHaveClass('icon', 'account-box');
|
|
32
|
+
});
|
|
33
|
+
test('applies additional className', () => {
|
|
34
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, {
|
|
35
|
+
additionalClassName: "custom-class"
|
|
36
|
+
}));
|
|
37
|
+
const svg = document.querySelector('svg');
|
|
38
|
+
expect(svg).toHaveClass('icon', 'account-box', 'custom-class');
|
|
39
|
+
});
|
|
40
|
+
test('applies custom fill color', () => {
|
|
41
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, {
|
|
42
|
+
fill: "#ff0000"
|
|
43
|
+
}));
|
|
44
|
+
const svg = document.querySelector('svg');
|
|
45
|
+
expect(svg).toHaveAttribute('fill', '#ff0000');
|
|
46
|
+
});
|
|
47
|
+
test('contains correct path data', () => {
|
|
48
|
+
const {
|
|
49
|
+
container
|
|
50
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, null));
|
|
51
|
+
const path = container.querySelector('path');
|
|
52
|
+
expect(path).toHaveAttribute('d', 'M200-246q54-53 125.5-83.5T480-360q83 0 154.5 30.5T760-246v-514H200v514Zm280-194q58 0 99-41t41-99q0-58-41-99t-99-41q-58 0-99 41t-41 99q0 58 41 99t99 41ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm69-80h422q-44-39-99.5-59.5T480-280q-56 0-112.5 20.5T269-200Zm211-320q-25 0-42.5-17.5T420-580q0-25 17.5-42.5T480-640q25 0 42.5 17.5T540-580q0 25-17.5 42.5T480-520Zm0 17Z');
|
|
53
|
+
});
|
|
54
|
+
test('contains single path element', () => {
|
|
55
|
+
const {
|
|
56
|
+
container
|
|
57
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountBox.AccountBox, null));
|
|
58
|
+
const paths = container.querySelectorAll('path');
|
|
59
|
+
expect(paths).toHaveLength(1);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _AccountCircle = require("../icons/AccountCircle.js");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
// Suppress console.error during tests
|
|
8
|
+
let consoleErrorSpy;
|
|
9
|
+
beforeAll(() => {
|
|
10
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
consoleErrorSpy.mockRestore();
|
|
14
|
+
});
|
|
15
|
+
describe('AccountCircle Icon', () => {
|
|
16
|
+
test('renders SVG element', () => {
|
|
17
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, null));
|
|
18
|
+
const svg = document.querySelector('svg');
|
|
19
|
+
expect(svg).toBeInTheDocument();
|
|
20
|
+
expect(svg.tagName).toBe('svg');
|
|
21
|
+
});
|
|
22
|
+
test('has correct default props', () => {
|
|
23
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, null));
|
|
24
|
+
const svg = document.querySelector('svg');
|
|
25
|
+
expect(svg).toHaveAttribute('width', '24');
|
|
26
|
+
expect(svg).toHaveAttribute('height', '24');
|
|
27
|
+
expect(svg).toHaveAttribute('viewBox', '0 -960 960 960');
|
|
28
|
+
expect(svg).toHaveAttribute('fill', '#adb5bd');
|
|
29
|
+
expect(svg).toHaveClass('icon');
|
|
30
|
+
expect(svg).toHaveClass('account-circle');
|
|
31
|
+
});
|
|
32
|
+
test('applies custom dimensions', () => {
|
|
33
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, {
|
|
34
|
+
dimensions: 32
|
|
35
|
+
}));
|
|
36
|
+
const svg = document.querySelector('svg');
|
|
37
|
+
expect(svg).toHaveAttribute('width', '32');
|
|
38
|
+
expect(svg).toHaveAttribute('height', '32');
|
|
39
|
+
});
|
|
40
|
+
test('applies custom componentName and additionalClassName', () => {
|
|
41
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, {
|
|
42
|
+
componentName: "custom-account",
|
|
43
|
+
additionalClassName: "extra-class"
|
|
44
|
+
}));
|
|
45
|
+
const svg = document.querySelector('svg');
|
|
46
|
+
expect(svg).toHaveClass('icon');
|
|
47
|
+
expect(svg).toHaveClass('custom-account');
|
|
48
|
+
expect(svg).toHaveClass('extra-class');
|
|
49
|
+
});
|
|
50
|
+
test('applies custom fill color', () => {
|
|
51
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, {
|
|
52
|
+
fill: "#ff0000"
|
|
53
|
+
}));
|
|
54
|
+
const svg = document.querySelector('svg');
|
|
55
|
+
expect(svg).toHaveAttribute('fill', '#ff0000');
|
|
56
|
+
});
|
|
57
|
+
test('has correct path data', () => {
|
|
58
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, null));
|
|
59
|
+
const svg = document.querySelector('svg');
|
|
60
|
+
const path = svg.querySelector('path');
|
|
61
|
+
expect(path).toHaveAttribute('d', 'M234-276q51-39 114-61.5T480-360q69 0 132 22.5T726-276q35-41 54.5-93T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 59 19.5 111t54.5 93Zm246-164q-59 0-99.5-40.5T340-580q0-59 40.5-99.5T480-720q59 0 99.5 40.5T620-580q0 59-40.5 99.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q53 0 100-15.5t86-44.5q-39-29-86-44.5T480-280q-53 0-100 15.5T294-220q39 29 86 44.5T480-160Zm0-360q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm0-60Zm0 360Z');
|
|
62
|
+
});
|
|
63
|
+
test('contains exactly one path element', () => {
|
|
64
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_AccountCircle.AccountCircle, null));
|
|
65
|
+
const svg = document.querySelector('svg');
|
|
66
|
+
const paths = svg.querySelectorAll('path');
|
|
67
|
+
expect(paths).toHaveLength(1);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _Alert = require("../components/Alert");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
// Suppress console.error during tests
|
|
8
|
+
let consoleErrorSpy;
|
|
9
|
+
beforeAll(() => {
|
|
10
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
consoleErrorSpy.mockRestore();
|
|
14
|
+
});
|
|
15
|
+
describe('Alert Component', () => {
|
|
16
|
+
test('renders with message', () => {
|
|
17
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
18
|
+
message: "Test alert message"
|
|
19
|
+
}));
|
|
20
|
+
expect(_react2.screen.getByText('Test alert message')).toBeInTheDocument();
|
|
21
|
+
});
|
|
22
|
+
test('applies correct default props', () => {
|
|
23
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
24
|
+
message: "Test message",
|
|
25
|
+
"data-testid": "alert"
|
|
26
|
+
}));
|
|
27
|
+
const alert = _react2.screen.getByTestId('alert');
|
|
28
|
+
expect(alert).toHaveClass('ui-alert');
|
|
29
|
+
expect(alert).toHaveClass('ui-alert--info');
|
|
30
|
+
expect(alert).toHaveClass('ui-alert--dismissible');
|
|
31
|
+
expect(alert).toHaveAttribute('role', 'alert');
|
|
32
|
+
});
|
|
33
|
+
test('applies correct type classes', () => {
|
|
34
|
+
const {
|
|
35
|
+
rerender
|
|
36
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
37
|
+
message: "Test",
|
|
38
|
+
type: "success",
|
|
39
|
+
"data-testid": "alert"
|
|
40
|
+
}));
|
|
41
|
+
expect(_react2.screen.getByTestId('alert')).toHaveClass('ui-alert--success');
|
|
42
|
+
rerender(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
43
|
+
message: "Test",
|
|
44
|
+
type: "error",
|
|
45
|
+
"data-testid": "alert"
|
|
46
|
+
}));
|
|
47
|
+
expect(_react2.screen.getByTestId('alert')).toHaveClass('ui-alert--error');
|
|
48
|
+
rerender(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
49
|
+
message: "Test",
|
|
50
|
+
type: "warning",
|
|
51
|
+
"data-testid": "alert"
|
|
52
|
+
}));
|
|
53
|
+
expect(_react2.screen.getByTestId('alert')).toHaveClass('ui-alert--warning');
|
|
54
|
+
rerender(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
55
|
+
message: "Test",
|
|
56
|
+
type: "info",
|
|
57
|
+
"data-testid": "alert"
|
|
58
|
+
}));
|
|
59
|
+
expect(_react2.screen.getByTestId('alert')).toHaveClass('ui-alert--info');
|
|
60
|
+
});
|
|
61
|
+
test('renders children content', () => {
|
|
62
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, null, /*#__PURE__*/_react.default.createElement("span", null, "Child content")));
|
|
63
|
+
expect(_react2.screen.getByText('Child content')).toBeInTheDocument();
|
|
64
|
+
});
|
|
65
|
+
test('renders icon when provided', () => {
|
|
66
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
67
|
+
message: "Test",
|
|
68
|
+
icon: /*#__PURE__*/_react.default.createElement("span", {
|
|
69
|
+
"data-testid": "custom-icon"
|
|
70
|
+
}, "Icon")
|
|
71
|
+
}));
|
|
72
|
+
expect(_react2.screen.getByTestId('custom-icon')).toBeInTheDocument();
|
|
73
|
+
});
|
|
74
|
+
test('renders close button when dismissible', () => {
|
|
75
|
+
const onClose = jest.fn();
|
|
76
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
77
|
+
message: "Test",
|
|
78
|
+
isDismissible: true,
|
|
79
|
+
onClose: onClose
|
|
80
|
+
}));
|
|
81
|
+
const closeButton = _react2.screen.getByLabelText('Close alert');
|
|
82
|
+
expect(closeButton).toBeInTheDocument();
|
|
83
|
+
});
|
|
84
|
+
test('calls onClose when close button is clicked', () => {
|
|
85
|
+
const onClose = jest.fn();
|
|
86
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
87
|
+
message: "Test",
|
|
88
|
+
isDismissible: true,
|
|
89
|
+
onClose: onClose
|
|
90
|
+
}));
|
|
91
|
+
const closeButton = _react2.screen.getByLabelText('Close alert');
|
|
92
|
+
_react2.fireEvent.click(closeButton);
|
|
93
|
+
expect(onClose).toHaveBeenCalledTimes(1);
|
|
94
|
+
});
|
|
95
|
+
test('does not render close button when not dismissible', () => {
|
|
96
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
97
|
+
message: "Test",
|
|
98
|
+
isDismissible: false
|
|
99
|
+
}));
|
|
100
|
+
expect(_react2.screen.queryByLabelText('Close alert')).not.toBeInTheDocument();
|
|
101
|
+
});
|
|
102
|
+
test('does not render when isVisible is false', () => {
|
|
103
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
104
|
+
message: "Test",
|
|
105
|
+
isVisible: false,
|
|
106
|
+
"data-testid": "alert"
|
|
107
|
+
}));
|
|
108
|
+
expect(_react2.screen.queryByTestId('alert')).not.toBeInTheDocument();
|
|
109
|
+
});
|
|
110
|
+
test('applies custom className', () => {
|
|
111
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
112
|
+
message: "Test",
|
|
113
|
+
className: "custom-class",
|
|
114
|
+
"data-testid": "alert"
|
|
115
|
+
}));
|
|
116
|
+
const alert = _react2.screen.getByTestId('alert');
|
|
117
|
+
expect(alert).toHaveClass('ui-alert');
|
|
118
|
+
expect(alert).toHaveClass('custom-class');
|
|
119
|
+
});
|
|
120
|
+
test('applies custom aria-label', () => {
|
|
121
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
122
|
+
message: "Test",
|
|
123
|
+
ariaLabel: "Custom alert label",
|
|
124
|
+
"data-testid": "alert"
|
|
125
|
+
}));
|
|
126
|
+
expect(_react2.screen.getByTestId('alert')).toHaveAttribute('aria-label', 'Custom alert label');
|
|
127
|
+
});
|
|
128
|
+
test('applies custom role', () => {
|
|
129
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
130
|
+
message: "Test",
|
|
131
|
+
role: "status",
|
|
132
|
+
"data-testid": "alert"
|
|
133
|
+
}));
|
|
134
|
+
expect(_react2.screen.getByTestId('alert')).toHaveAttribute('role', 'status');
|
|
135
|
+
});
|
|
136
|
+
test('forwards ref correctly', () => {
|
|
137
|
+
const ref = /*#__PURE__*/_react.default.createRef();
|
|
138
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
139
|
+
message: "Test",
|
|
140
|
+
ref: ref
|
|
141
|
+
}));
|
|
142
|
+
expect(ref.current).toBeInstanceOf(HTMLDivElement);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _ArrowIcon = require("../icons/ArrowIcon");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
describe('ArrowIcon Icon', () => {
|
|
8
|
+
test('renders with default props', () => {
|
|
9
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, null));
|
|
10
|
+
const svg = document.querySelector('svg');
|
|
11
|
+
expect(svg).toBeInTheDocument();
|
|
12
|
+
expect(svg.tagName).toBe('svg');
|
|
13
|
+
});
|
|
14
|
+
test('applies correct default dimensions', () => {
|
|
15
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, null));
|
|
16
|
+
const svg = document.querySelector('svg');
|
|
17
|
+
expect(svg).toHaveAttribute('width', '24');
|
|
18
|
+
expect(svg).toHaveAttribute('height', '24');
|
|
19
|
+
});
|
|
20
|
+
test('applies custom dimensions', () => {
|
|
21
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, {
|
|
22
|
+
dimensions: 32
|
|
23
|
+
}));
|
|
24
|
+
const svg = document.querySelector('svg');
|
|
25
|
+
expect(svg).toHaveAttribute('width', '32');
|
|
26
|
+
expect(svg).toHaveAttribute('height', '32');
|
|
27
|
+
});
|
|
28
|
+
test('applies correct CSS classes', () => {
|
|
29
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, null));
|
|
30
|
+
const svg = document.querySelector('svg');
|
|
31
|
+
expect(svg).toHaveClass('icon', 'arrow-icon');
|
|
32
|
+
});
|
|
33
|
+
test('applies additional className', () => {
|
|
34
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, {
|
|
35
|
+
additionalClassName: "custom-class"
|
|
36
|
+
}));
|
|
37
|
+
const svg = document.querySelector('svg');
|
|
38
|
+
expect(svg).toHaveClass('icon', 'arrow-icon', 'custom-class');
|
|
39
|
+
});
|
|
40
|
+
test('applies custom fill color', () => {
|
|
41
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, {
|
|
42
|
+
fill: "#ff0000"
|
|
43
|
+
}));
|
|
44
|
+
const svg = document.querySelector('svg');
|
|
45
|
+
expect(svg).toHaveAttribute('fill', '#ff0000');
|
|
46
|
+
});
|
|
47
|
+
test('contains correct path data', () => {
|
|
48
|
+
const {
|
|
49
|
+
container
|
|
50
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, null));
|
|
51
|
+
const path = container.querySelector('path');
|
|
52
|
+
expect(path).toHaveAttribute('d', 'M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z');
|
|
53
|
+
});
|
|
54
|
+
test('contains single path element', () => {
|
|
55
|
+
const {
|
|
56
|
+
container
|
|
57
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowIcon.ArrowIcon, null));
|
|
58
|
+
const paths = container.querySelectorAll('path');
|
|
59
|
+
expect(paths).toHaveLength(1);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _react = _interopRequireDefault(require("react"));
|
|
4
4
|
var _react2 = require("@testing-library/react");
|
|
5
|
-
var _ArrowRight = require("../icons/ArrowRight");
|
|
5
|
+
var _ArrowRight = require("../icons/ArrowRight.js");
|
|
6
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
// Suppress console.error during tests
|
|
8
8
|
let consoleErrorSpy;
|
|
@@ -26,25 +26,30 @@ describe('ArrowRight Icon', () => {
|
|
|
26
26
|
expect(svg).toHaveAttribute('height', '24');
|
|
27
27
|
expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
|
|
28
28
|
expect(svg).toHaveAttribute('fill', 'none');
|
|
29
|
+
expect(svg).toHaveClass('icon');
|
|
30
|
+
expect(svg).toHaveClass('arrow-right');
|
|
29
31
|
});
|
|
30
|
-
test('applies custom
|
|
32
|
+
test('applies custom dimensions', () => {
|
|
31
33
|
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowRight.ArrowRight, {
|
|
32
|
-
|
|
34
|
+
dimensions: 48
|
|
33
35
|
}));
|
|
34
36
|
const svg = document.querySelector('svg');
|
|
35
37
|
expect(svg).toHaveAttribute('width', '48');
|
|
36
38
|
expect(svg).toHaveAttribute('height', '48');
|
|
37
39
|
});
|
|
38
|
-
test('applies custom
|
|
40
|
+
test('applies custom componentName and additionalClassName', () => {
|
|
39
41
|
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowRight.ArrowRight, {
|
|
40
|
-
|
|
42
|
+
componentName: "custom-arrow",
|
|
43
|
+
additionalClassName: "arrow-icon"
|
|
41
44
|
}));
|
|
42
45
|
const svg = document.querySelector('svg');
|
|
46
|
+
expect(svg).toHaveClass('icon');
|
|
47
|
+
expect(svg).toHaveClass('custom-arrow');
|
|
43
48
|
expect(svg).toHaveClass('arrow-icon');
|
|
44
49
|
});
|
|
45
|
-
test('applies custom color to stroke', () => {
|
|
50
|
+
test('applies custom fill color to stroke', () => {
|
|
46
51
|
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ArrowRight.ArrowRight, {
|
|
47
|
-
|
|
52
|
+
fill: "blue"
|
|
48
53
|
}));
|
|
49
54
|
const svg = document.querySelector('svg');
|
|
50
55
|
const paths = svg.querySelectorAll('path');
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _BookOpen = require("../icons/BookOpen");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
describe('BookOpen Icon', () => {
|
|
8
|
+
test('renders with default props', () => {
|
|
9
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, null));
|
|
10
|
+
const svg = document.querySelector('svg');
|
|
11
|
+
expect(svg).toBeInTheDocument();
|
|
12
|
+
expect(svg.tagName).toBe('svg');
|
|
13
|
+
});
|
|
14
|
+
test('applies correct default dimensions', () => {
|
|
15
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, null));
|
|
16
|
+
const svg = document.querySelector('svg');
|
|
17
|
+
expect(svg).toHaveAttribute('width', '24');
|
|
18
|
+
expect(svg).toHaveAttribute('height', '24');
|
|
19
|
+
});
|
|
20
|
+
test('applies custom dimensions', () => {
|
|
21
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, {
|
|
22
|
+
dimensions: 32
|
|
23
|
+
}));
|
|
24
|
+
const svg = document.querySelector('svg');
|
|
25
|
+
expect(svg).toHaveAttribute('width', '32');
|
|
26
|
+
expect(svg).toHaveAttribute('height', '32');
|
|
27
|
+
});
|
|
28
|
+
test('applies correct CSS classes', () => {
|
|
29
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, null));
|
|
30
|
+
const svg = document.querySelector('svg');
|
|
31
|
+
expect(svg).toHaveClass('icon', 'book-open');
|
|
32
|
+
});
|
|
33
|
+
test('applies additional className', () => {
|
|
34
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, {
|
|
35
|
+
additionalClassName: "custom-class"
|
|
36
|
+
}));
|
|
37
|
+
const svg = document.querySelector('svg');
|
|
38
|
+
expect(svg).toHaveClass('icon', 'book-open', 'custom-class');
|
|
39
|
+
});
|
|
40
|
+
test('applies custom fill color', () => {
|
|
41
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, {
|
|
42
|
+
fill: "#ff0000"
|
|
43
|
+
}));
|
|
44
|
+
const svg = document.querySelector('svg');
|
|
45
|
+
expect(svg).toHaveAttribute('fill', '#ff0000');
|
|
46
|
+
});
|
|
47
|
+
test('contains correct path data', () => {
|
|
48
|
+
const {
|
|
49
|
+
container
|
|
50
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, null));
|
|
51
|
+
const path = container.querySelector('path');
|
|
52
|
+
expect(path).toHaveAttribute('d', 'M560-564v-68q33-14 67.5-21t72.5-7q26 0 51 4t49 10v64q-24-9-48.5-13.5T700-600q-38 0-73 9.5T560-564Zm0 220v-68q33-14 67.5-21t72.5-7q26 0 51 4t49 10v64q-24-9-48.5-13.5T700-380q-38 0-73 9t-67 27Zm0-110v-68q33-14 67.5-21t72.5-7q26 0 51 4t49 10v64q-24-9-48.5-13.5T700-490q-38 0-73 9.5T560-454ZM260-320q47 0 91.5 10.5T440-278v-394q-41-24-87-36t-93-12q-36 0-71.5 7T120-692v396q35-12 69.5-18t70.5-6Zm260 42q44-21 88.5-31.5T700-320q36 0 70.5 6t69.5 18v-396q-33-14-68.5-21t-71.5-7q-47 0-93 12t-87 36v394Zm-40 118q-48-38-104-59t-116-21q-42 0-82.5 11T100-198q-21 11-40.5-1T40-234v-482q0-11 5.5-21T62-752q46-24 96-36t102-12q58 0 113.5 15T480-740q51-30 106.5-45T700-800q52 0 102 12t96 36q11 5 16.5 15t5.5 21v482q0 23-19.5 35t-40.5 1q-37-20-77.5-31T700-240q-60 0-116 21t-104 59ZM280-494Z');
|
|
53
|
+
});
|
|
54
|
+
test('contains single path element', () => {
|
|
55
|
+
const {
|
|
56
|
+
container
|
|
57
|
+
} = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_BookOpen.BookOpen, null));
|
|
58
|
+
const paths = container.querySelectorAll('path');
|
|
59
|
+
expect(paths).toHaveLength(1);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _Camera = require("../icons/Camera.js");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
// Suppress console.error during tests
|
|
8
|
+
let consoleErrorSpy;
|
|
9
|
+
beforeAll(() => {
|
|
10
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
consoleErrorSpy.mockRestore();
|
|
14
|
+
});
|
|
15
|
+
describe('Camera Icon', () => {
|
|
16
|
+
test('renders SVG element', () => {
|
|
17
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, null));
|
|
18
|
+
const svg = document.querySelector('svg');
|
|
19
|
+
expect(svg).toBeInTheDocument();
|
|
20
|
+
expect(svg.tagName).toBe('svg');
|
|
21
|
+
});
|
|
22
|
+
test('has correct default props', () => {
|
|
23
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, null));
|
|
24
|
+
const svg = document.querySelector('svg');
|
|
25
|
+
expect(svg).toHaveAttribute('width', '24');
|
|
26
|
+
expect(svg).toHaveAttribute('height', '24');
|
|
27
|
+
expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
|
|
28
|
+
expect(svg).toHaveAttribute('fill', '#333333');
|
|
29
|
+
expect(svg).toHaveClass('icon');
|
|
30
|
+
expect(svg).toHaveClass('camera-icon');
|
|
31
|
+
});
|
|
32
|
+
test('applies custom dimensions', () => {
|
|
33
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, {
|
|
34
|
+
dimensions: 32
|
|
35
|
+
}));
|
|
36
|
+
const svg = document.querySelector('svg');
|
|
37
|
+
expect(svg).toHaveAttribute('width', '32');
|
|
38
|
+
expect(svg).toHaveAttribute('height', '32');
|
|
39
|
+
});
|
|
40
|
+
test('applies custom componentName and additionalClassName', () => {
|
|
41
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, {
|
|
42
|
+
componentName: "custom-camera",
|
|
43
|
+
additionalClassName: "extra-class"
|
|
44
|
+
}));
|
|
45
|
+
const svg = document.querySelector('svg');
|
|
46
|
+
expect(svg).toHaveClass('icon');
|
|
47
|
+
expect(svg).toHaveClass('custom-camera');
|
|
48
|
+
expect(svg).toHaveClass('extra-class');
|
|
49
|
+
});
|
|
50
|
+
test('applies custom fill color', () => {
|
|
51
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, {
|
|
52
|
+
fill: "#ff0000"
|
|
53
|
+
}));
|
|
54
|
+
const svg = document.querySelector('svg');
|
|
55
|
+
expect(svg).toHaveAttribute('fill', '#ff0000');
|
|
56
|
+
});
|
|
57
|
+
test('has correct path data', () => {
|
|
58
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, null));
|
|
59
|
+
const svg = document.querySelector('svg');
|
|
60
|
+
const path = svg.querySelector('path');
|
|
61
|
+
expect(path).toHaveAttribute('d', 'M480-260q75 0 127.5-52.5T660-440q0-75-52.5-127.5T480-620q-75 0-127.5 52.5T300-440q0 75 52.5 127.5T480-260Zm0-80q-42 0-71-29t-29-71q0-42 29-71t71-29q42 0 71 29t29 71q0 42-29 71t-71 29ZM160-120q-33 0-56.5-23.5T80-200v-480q0-33 23.5-56.5T160-760h126l74-80h240l74 80h126q33 0 56.5 23.5T880-680v480q0 33-23.5 56.5T800-120H160Zm0-80h640v-480H638l-73-80H395l-73 80H160v480Zm320-240Z');
|
|
62
|
+
});
|
|
63
|
+
test('contains exactly one path element', () => {
|
|
64
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_Camera.CameraIcon, null));
|
|
65
|
+
const svg = document.querySelector('svg');
|
|
66
|
+
const paths = svg.querySelectorAll('path');
|
|
67
|
+
expect(paths).toHaveLength(1);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _react2 = require("@testing-library/react");
|
|
5
|
+
var _CaretDown = require("../icons/CaretDown.js");
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
// Suppress console.error during tests
|
|
8
|
+
let consoleErrorSpy;
|
|
9
|
+
beforeAll(() => {
|
|
10
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
11
|
+
});
|
|
12
|
+
afterAll(() => {
|
|
13
|
+
consoleErrorSpy.mockRestore();
|
|
14
|
+
});
|
|
15
|
+
describe('CaretDown Icon', () => {
|
|
16
|
+
test('renders SVG element', () => {
|
|
17
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, null));
|
|
18
|
+
const svg = document.querySelector('svg');
|
|
19
|
+
expect(svg).toBeInTheDocument();
|
|
20
|
+
expect(svg.tagName).toBe('svg');
|
|
21
|
+
});
|
|
22
|
+
test('has correct default props', () => {
|
|
23
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, null));
|
|
24
|
+
const svg = document.querySelector('svg');
|
|
25
|
+
expect(svg).toHaveAttribute('width', '24');
|
|
26
|
+
expect(svg).toHaveAttribute('height', '24');
|
|
27
|
+
expect(svg).toHaveAttribute('viewBox', '0 96 960 960');
|
|
28
|
+
expect(svg).toHaveAttribute('fill', '#adb5bd');
|
|
29
|
+
expect(svg).toHaveClass('icon');
|
|
30
|
+
expect(svg).toHaveClass('caret-down');
|
|
31
|
+
});
|
|
32
|
+
test('applies custom dimensions', () => {
|
|
33
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, {
|
|
34
|
+
dimensions: 32
|
|
35
|
+
}));
|
|
36
|
+
const svg = document.querySelector('svg');
|
|
37
|
+
expect(svg).toHaveAttribute('width', '32');
|
|
38
|
+
expect(svg).toHaveAttribute('height', '32');
|
|
39
|
+
});
|
|
40
|
+
test('applies custom componentName and additionalClassName', () => {
|
|
41
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, {
|
|
42
|
+
componentName: "custom-caret",
|
|
43
|
+
additionalClassName: "extra-class"
|
|
44
|
+
}));
|
|
45
|
+
const svg = document.querySelector('svg');
|
|
46
|
+
expect(svg).toHaveClass('icon');
|
|
47
|
+
expect(svg).toHaveClass('custom-caret');
|
|
48
|
+
expect(svg).toHaveClass('extra-class');
|
|
49
|
+
});
|
|
50
|
+
test('applies custom fill color', () => {
|
|
51
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, {
|
|
52
|
+
fill: "#ff0000"
|
|
53
|
+
}));
|
|
54
|
+
const svg = document.querySelector('svg');
|
|
55
|
+
expect(svg).toHaveAttribute('fill', '#ff0000');
|
|
56
|
+
});
|
|
57
|
+
test('has correct path data', () => {
|
|
58
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, null));
|
|
59
|
+
const svg = document.querySelector('svg');
|
|
60
|
+
const path = svg.querySelector('path');
|
|
61
|
+
expect(path).toHaveAttribute('d', 'M480 711 240 471l43-43 197 198 197-197 43 43-240 239Z');
|
|
62
|
+
});
|
|
63
|
+
test('contains exactly one path element', () => {
|
|
64
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_CaretDown.CaretDown, null));
|
|
65
|
+
const svg = document.querySelector('svg');
|
|
66
|
+
const paths = svg.querySelectorAll('path');
|
|
67
|
+
expect(paths).toHaveLength(1);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _react = _interopRequireDefault(require("react"));
|
|
4
4
|
var _react2 = require("@testing-library/react");
|
|
5
|
-
var _ChevronDown = require("../icons/ChevronDown");
|
|
5
|
+
var _ChevronDown = require("../icons/ChevronDown.js");
|
|
6
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
// Suppress console.error during tests
|
|
8
8
|
let consoleErrorSpy;
|
|
@@ -26,25 +26,30 @@ describe('ChevronDown Icon', () => {
|
|
|
26
26
|
expect(svg).toHaveAttribute('height', '24');
|
|
27
27
|
expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
|
|
28
28
|
expect(svg).toHaveAttribute('fill', 'none');
|
|
29
|
+
expect(svg).toHaveClass('icon');
|
|
30
|
+
expect(svg).toHaveClass('chevron-down');
|
|
29
31
|
});
|
|
30
|
-
test('applies custom
|
|
32
|
+
test('applies custom dimensions', () => {
|
|
31
33
|
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ChevronDown.ChevronDown, {
|
|
32
|
-
|
|
34
|
+
dimensions: 32
|
|
33
35
|
}));
|
|
34
36
|
const svg = document.querySelector('svg');
|
|
35
37
|
expect(svg).toHaveAttribute('width', '32');
|
|
36
38
|
expect(svg).toHaveAttribute('height', '32');
|
|
37
39
|
});
|
|
38
|
-
test('applies custom
|
|
40
|
+
test('applies custom componentName and additionalClassName', () => {
|
|
39
41
|
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ChevronDown.ChevronDown, {
|
|
40
|
-
|
|
42
|
+
componentName: "custom-chevron",
|
|
43
|
+
additionalClassName: "extra-class"
|
|
41
44
|
}));
|
|
42
45
|
const svg = document.querySelector('svg');
|
|
43
|
-
expect(svg).toHaveClass('
|
|
46
|
+
expect(svg).toHaveClass('icon');
|
|
47
|
+
expect(svg).toHaveClass('custom-chevron');
|
|
48
|
+
expect(svg).toHaveClass('extra-class');
|
|
44
49
|
});
|
|
45
|
-
test('applies custom color to stroke', () => {
|
|
50
|
+
test('applies custom fill color to stroke', () => {
|
|
46
51
|
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_ChevronDown.ChevronDown, {
|
|
47
|
-
|
|
52
|
+
fill: "#ff0000"
|
|
48
53
|
}));
|
|
49
54
|
const svg = document.querySelector('svg');
|
|
50
55
|
const path = svg.querySelector('path');
|