@siemens/ix 0.0.0-pr-1974-20250627115746 → 0.0.0-pr-1974-20250627142646

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.
Files changed (158) hide show
  1. package/package.json +2 -2
  2. package/dist/collection/components/application-header/test/application-header.ct.js +0 -389
  3. package/dist/collection/components/application-header/test/application-header.ct.js.map +0 -1
  4. package/dist/collection/components/avatar/test/avatar.ct.js +0 -85
  5. package/dist/collection/components/avatar/test/avatar.ct.js.map +0 -1
  6. package/dist/collection/components/blind/test/blind.ct.js +0 -16
  7. package/dist/collection/components/blind/test/blind.ct.js.map +0 -1
  8. package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js +0 -98
  9. package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js.map +0 -1
  10. package/dist/collection/components/button/test/button.ct.js +0 -153
  11. package/dist/collection/components/button/test/button.ct.js.map +0 -1
  12. package/dist/collection/components/category-filter/test/category-filter.ct.js +0 -62
  13. package/dist/collection/components/category-filter/test/category-filter.ct.js.map +0 -1
  14. package/dist/collection/components/checkbox/tests/checkbox.ct.js +0 -86
  15. package/dist/collection/components/checkbox/tests/checkbox.ct.js.map +0 -1
  16. package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js +0 -48
  17. package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js.map +0 -1
  18. package/dist/collection/components/chip/test/chip.ct.js +0 -76
  19. package/dist/collection/components/chip/test/chip.ct.js.map +0 -1
  20. package/dist/collection/components/custom-field/tests/custom-field.ct.js +0 -68
  21. package/dist/collection/components/custom-field/tests/custom-field.ct.js.map +0 -1
  22. package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js +0 -215
  23. package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js.map +0 -1
  24. package/dist/collection/components/date-input/tests/date-input.ct.js +0 -117
  25. package/dist/collection/components/date-input/tests/date-input.ct.js.map +0 -1
  26. package/dist/collection/components/date-picker/test/date-picker.ct.js +0 -221
  27. package/dist/collection/components/date-picker/test/date-picker.ct.js.map +0 -1
  28. package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js +0 -55
  29. package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js.map +0 -1
  30. package/dist/collection/components/drawer/test/drawer.ct.js +0 -67
  31. package/dist/collection/components/drawer/test/drawer.ct.js.map +0 -1
  32. package/dist/collection/components/dropdown/test/dropdown.ct.js +0 -624
  33. package/dist/collection/components/dropdown/test/dropdown.ct.js.map +0 -1
  34. package/dist/collection/components/dropdown-button/dropdown-button.ct.js +0 -51
  35. package/dist/collection/components/dropdown-button/dropdown-button.ct.js.map +0 -1
  36. package/dist/collection/components/event-list/test/event-list.ct.js +0 -88
  37. package/dist/collection/components/event-list/test/event-list.ct.js.map +0 -1
  38. package/dist/collection/components/expanding-search/test/expanding-search.ct.js +0 -56
  39. package/dist/collection/components/expanding-search/test/expanding-search.ct.js.map +0 -1
  40. package/dist/collection/components/field-label/tests/field-label.ct.js +0 -121
  41. package/dist/collection/components/field-label/tests/field-label.ct.js.map +0 -1
  42. package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js +0 -63
  43. package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js.map +0 -1
  44. package/dist/collection/components/flip-tile/test/flip-tile.ct.js +0 -89
  45. package/dist/collection/components/flip-tile/test/flip-tile.ct.js.map +0 -1
  46. package/dist/collection/components/group/test/group.ct.js +0 -115
  47. package/dist/collection/components/group/test/group.ct.js.map +0 -1
  48. package/dist/collection/components/icon-button/test/icon-button.ct.js +0 -30
  49. package/dist/collection/components/icon-button/test/icon-button.ct.js.map +0 -1
  50. package/dist/collection/components/input/tests/form-ready.ct.js +0 -73
  51. package/dist/collection/components/input/tests/form-ready.ct.js.map +0 -1
  52. package/dist/collection/components/input/tests/validation.ct.js +0 -84
  53. package/dist/collection/components/input/tests/validation.ct.js.map +0 -1
  54. package/dist/collection/components/input-group/tests/input-group.ct.js +0 -161
  55. package/dist/collection/components/input-group/tests/input-group.ct.js.map +0 -1
  56. package/dist/collection/components/menu/test/menu.ct.js +0 -256
  57. package/dist/collection/components/menu/test/menu.ct.js.map +0 -1
  58. package/dist/collection/components/menu-about/test/menu-about.ct.js +0 -65
  59. package/dist/collection/components/menu-about/test/menu-about.ct.js.map +0 -1
  60. package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js +0 -47
  61. package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js.map +0 -1
  62. package/dist/collection/components/menu-category/test/menu-category.ct.js +0 -274
  63. package/dist/collection/components/menu-category/test/menu-category.ct.js.map +0 -1
  64. package/dist/collection/components/menu-item/test/menu-item.ct.js +0 -67
  65. package/dist/collection/components/menu-item/test/menu-item.ct.js.map +0 -1
  66. package/dist/collection/components/menu-settings/test/menu-settings.ct.js +0 -32
  67. package/dist/collection/components/menu-settings/test/menu-settings.ct.js.map +0 -1
  68. package/dist/collection/components/message-bar/test/message-bar.ct.js +0 -28
  69. package/dist/collection/components/message-bar/test/message-bar.ct.js.map +0 -1
  70. package/dist/collection/components/modal/test/modal.ct.js +0 -204
  71. package/dist/collection/components/modal/test/modal.ct.js.map +0 -1
  72. package/dist/collection/components/pagination/test/pagination.ct.js +0 -68
  73. package/dist/collection/components/pagination/test/pagination.ct.js.map +0 -1
  74. package/dist/collection/components/pane/test/panes.ct.js +0 -59
  75. package/dist/collection/components/pane/test/panes.ct.js.map +0 -1
  76. package/dist/collection/components/pane-layout/test/pane-layout.ct.js +0 -60
  77. package/dist/collection/components/pane-layout/test/pane-layout.ct.js.map +0 -1
  78. package/dist/collection/components/pill/test/pill.ct.js +0 -63
  79. package/dist/collection/components/pill/test/pill.ct.js.map +0 -1
  80. package/dist/collection/components/radio/test/radio.ct.js +0 -77
  81. package/dist/collection/components/radio/test/radio.ct.js.map +0 -1
  82. package/dist/collection/components/radio-group/test/radio-group.ct.js +0 -117
  83. package/dist/collection/components/radio-group/test/radio-group.ct.js.map +0 -1
  84. package/dist/collection/components/select/test/select-keyboard.ct.js +0 -380
  85. package/dist/collection/components/select/test/select-keyboard.ct.js.map +0 -1
  86. package/dist/collection/components/select/test/select.ct.js +0 -594
  87. package/dist/collection/components/select/test/select.ct.js.map +0 -1
  88. package/dist/collection/components/slider/test/slider.ct.js +0 -65
  89. package/dist/collection/components/slider/test/slider.ct.js.map +0 -1
  90. package/dist/collection/components/tabs/test/tabs.ct.js +0 -134
  91. package/dist/collection/components/tabs/test/tabs.ct.js.map +0 -1
  92. package/dist/collection/components/time-input/test/time-input.ct.js +0 -62
  93. package/dist/collection/components/time-input/test/time-input.ct.js.map +0 -1
  94. package/dist/collection/components/time-picker/test/time-picker.ct.js +0 -172
  95. package/dist/collection/components/time-picker/test/time-picker.ct.js.map +0 -1
  96. package/dist/collection/components/toggle/test/toggle.ct.js +0 -84
  97. package/dist/collection/components/toggle/test/toggle.ct.js.map +0 -1
  98. package/dist/collection/components/tooltip/test/tooltip.ct.js +0 -243
  99. package/dist/collection/components/tooltip/test/tooltip.ct.js.map +0 -1
  100. package/dist/collection/components/tree/test/tree.ct.js +0 -355
  101. package/dist/collection/components/tree/test/tree.ct.js.map +0 -1
  102. package/dist/collection/components/upload/test/upload.ct.js +0 -17
  103. package/dist/collection/components/upload/test/upload.ct.js.map +0 -1
  104. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js +0 -74
  105. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js.map +0 -1
  106. package/dist/collection/tests/utils/test/matchMedia.mock.js +0 -22
  107. package/dist/types/components/application-header/test/application-header.ct.d.ts +0 -1
  108. package/dist/types/components/avatar/test/avatar.ct.d.ts +0 -1
  109. package/dist/types/components/blind/test/blind.ct.d.ts +0 -1
  110. package/dist/types/components/breadcrumb/test/breadcrumb.ct.d.ts +0 -1
  111. package/dist/types/components/button/test/button.ct.d.ts +0 -7
  112. package/dist/types/components/category-filter/test/category-filter.ct.d.ts +0 -1
  113. package/dist/types/components/checkbox/tests/checkbox.ct.d.ts +0 -1
  114. package/dist/types/components/checkbox-group/test/checkbox-group.ct.d.ts +0 -1
  115. package/dist/types/components/chip/test/chip.ct.d.ts +0 -1
  116. package/dist/types/components/custom-field/tests/custom-field.ct.d.ts +0 -1
  117. package/dist/types/components/date-dropdown/test/date-dropdown.ct.d.ts +0 -1
  118. package/dist/types/components/date-input/tests/date-input.ct.d.ts +0 -1
  119. package/dist/types/components/date-picker/test/date-picker.ct.d.ts +0 -1
  120. package/dist/types/components/datetime-picker/test/datetime-picker.ct.d.ts +0 -1
  121. package/dist/types/components/drawer/test/drawer.ct.d.ts +0 -1
  122. package/dist/types/components/dropdown/test/dropdown.ct.d.ts +0 -1
  123. package/dist/types/components/dropdown-button/dropdown-button.ct.d.ts +0 -1
  124. package/dist/types/components/event-list/test/event-list.ct.d.ts +0 -1
  125. package/dist/types/components/expanding-search/test/expanding-search.ct.d.ts +0 -1
  126. package/dist/types/components/field-label/tests/field-label.ct.d.ts +0 -1
  127. package/dist/types/components/field-wrapper/tests/field-wrapper.ct.d.ts +0 -1
  128. package/dist/types/components/flip-tile/test/flip-tile.ct.d.ts +0 -1
  129. package/dist/types/components/group/test/group.ct.d.ts +0 -1
  130. package/dist/types/components/icon-button/test/icon-button.ct.d.ts +0 -1
  131. package/dist/types/components/input/tests/form-ready.ct.d.ts +0 -1
  132. package/dist/types/components/input/tests/validation.ct.d.ts +0 -1
  133. package/dist/types/components/input-group/tests/input-group.ct.d.ts +0 -1
  134. package/dist/types/components/menu/test/menu.ct.d.ts +0 -1
  135. package/dist/types/components/menu-about/test/menu-about.ct.d.ts +0 -1
  136. package/dist/types/components/menu-avatar-item/test/menu-avatar-item.ct.d.ts +0 -1
  137. package/dist/types/components/menu-category/test/menu-category.ct.d.ts +0 -1
  138. package/dist/types/components/menu-item/test/menu-item.ct.d.ts +0 -1
  139. package/dist/types/components/menu-settings/test/menu-settings.ct.d.ts +0 -1
  140. package/dist/types/components/message-bar/test/message-bar.ct.d.ts +0 -1
  141. package/dist/types/components/modal/test/modal.ct.d.ts +0 -8
  142. package/dist/types/components/pagination/test/pagination.ct.d.ts +0 -1
  143. package/dist/types/components/pane/test/panes.ct.d.ts +0 -1
  144. package/dist/types/components/pane-layout/test/pane-layout.ct.d.ts +0 -1
  145. package/dist/types/components/pill/test/pill.ct.d.ts +0 -1
  146. package/dist/types/components/radio/test/radio.ct.d.ts +0 -1
  147. package/dist/types/components/radio-group/test/radio-group.ct.d.ts +0 -1
  148. package/dist/types/components/select/test/select-keyboard.ct.d.ts +0 -1
  149. package/dist/types/components/select/test/select.ct.d.ts +0 -1
  150. package/dist/types/components/slider/test/slider.ct.d.ts +0 -1
  151. package/dist/types/components/tabs/test/tabs.ct.d.ts +0 -1
  152. package/dist/types/components/time-input/test/time-input.ct.d.ts +0 -1
  153. package/dist/types/components/time-picker/test/time-picker.ct.d.ts +0 -1
  154. package/dist/types/components/toggle/test/toggle.ct.d.ts +0 -1
  155. package/dist/types/components/tooltip/test/tooltip.ct.d.ts +0 -1
  156. package/dist/types/components/tree/test/tree.ct.d.ts +0 -1
  157. package/dist/types/components/upload/test/upload.ct.d.ts +0 -1
  158. package/dist/types/components/workflow-steps/test/workflow-steps.ct.d.ts +0 -1
@@ -1,204 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2024 Siemens AG
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- import { expect } from "@playwright/test";
10
- import { regressionTest } from "../../../tests/utils/test/index";
11
- import { iconError, iconInfo, iconQuestion, iconSuccess, iconWarning, } from "@siemens/ix-icons/icons";
12
- async function setupModalEnvironment(page) {
13
- await page.evaluate(() => {
14
- return new Promise((resolve) => {
15
- var _a;
16
- const script = document.createElement('script');
17
- script.type = 'module';
18
- script.innerHTML = `
19
- import * as ix from 'http://127.0.0.1:8080/www/build/index.esm.js';
20
- window.showModal = ix.showModal;
21
- window.dismissModal = ix.dismissModal;
22
-
23
- window.showMessage = ix.showMessage;
24
- window.showMessage.info = ix.showMessage.info;
25
- window.showMessage.error = ix.showMessage.error;
26
- window.showMessage.success = ix.showMessage.success;
27
- window.showMessage.question = ix.showMessage.question;
28
- `;
29
- (_a = document.getElementById('mount')) === null || _a === void 0 ? void 0 : _a.appendChild(script);
30
- resolve();
31
- });
32
- });
33
- await page.waitForTimeout(500);
34
- }
35
- async function createToggleExample(page) {
36
- await page.evaluate(() => {
37
- function createModalExample() {
38
- const el = document.createElement('DIV');
39
- el.style.display = 'contents';
40
- el.innerHTML = `<ix-toggle id="toggle"></ix-toggle>`;
41
- return el;
42
- }
43
- setTimeout(() => {
44
- window.showModal({
45
- content: createModalExample(),
46
- closeOnBackdropClick: true,
47
- });
48
- }, 2000);
49
- });
50
- }
51
- regressionTest('closes on Escape key down', async ({ mount, page }) => {
52
- await mount(``);
53
- await setupModalEnvironment(page);
54
- await page.waitForTimeout(1000);
55
- await page.evaluate(() => {
56
- const elm = document.createElement('ix-modal');
57
- elm.innerHTML = `
58
- <ix-modal-header>Title</ix-modal-header>
59
- <ix-modal-content>Content</ix-modal-content>
60
- `;
61
- window.showModal({
62
- content: elm,
63
- });
64
- });
65
- const dialog = page.locator('ix-modal dialog');
66
- await expect(dialog).toBeVisible();
67
- await page.locator('ix-modal-content').click();
68
- await page.keyboard.down('Escape');
69
- await expect(dialog).not.toBeVisible();
70
- });
71
- regressionTest.describe('closeOnBackdropClick = true', () => {
72
- regressionTest('should close modal on backdrop click', async ({ mount, page }) => {
73
- await mount(`
74
- <ix-button>Some background noise</ix-button>
75
- `);
76
- await setupModalEnvironment(page);
77
- await createToggleExample(page);
78
- // needed to skip fade out / in animation
79
- await page.waitForTimeout(500);
80
- const toggle = page.locator('#toggle');
81
- await expect(toggle).toBeVisible();
82
- await page.mouse.click(20, 20);
83
- // needed to skip fade out / in animation
84
- await page.waitForTimeout(500);
85
- await expect(page.locator('ix-modal dialog')).not.toBeVisible();
86
- });
87
- regressionTest('should stay open after interacting with input elements', async ({ mount, page }) => {
88
- await mount(`
89
- <ix-button>Some background noise</ix-button>
90
- `);
91
- await setupModalEnvironment(page);
92
- await createToggleExample(page);
93
- // needed to skip fade out / in animation
94
- await page.waitForTimeout(500);
95
- const toggle = page.locator('#toggle');
96
- await expect(toggle).toBeVisible();
97
- await toggle.locator('input').press('Space');
98
- // needed to skip fade out / in animation
99
- await page.waitForTimeout(500);
100
- await expect(page.locator('ix-modal dialog')).toBeVisible();
101
- });
102
- });
103
- regressionTest('emits one event on close', async ({ mount, page }) => {
104
- await mount(``);
105
- await setupModalEnvironment(page);
106
- await page.waitForTimeout(1000);
107
- await page.evaluate(() => {
108
- const elm = document.createElement('ix-modal');
109
- elm.innerHTML = `
110
- <ix-modal-header>Title</ix-modal-header>
111
- <ix-modal-content>Content</ix-modal-content>
112
- `;
113
- window
114
- .showModal({
115
- content: elm,
116
- // Disable animation to get the direct animation end callback
117
- animation: false,
118
- })
119
- .then((instance) => {
120
- instance.onDismiss.on(() => {
121
- const counter = window.__counter;
122
- if (counter) {
123
- window.__counter = counter + 1;
124
- }
125
- else {
126
- window.__counter = 1;
127
- }
128
- });
129
- });
130
- });
131
- const dialog = page.locator('ix-modal dialog');
132
- await expect(dialog).toBeVisible();
133
- const iconButton = page.locator('ix-icon-button');
134
- await iconButton.click();
135
- await expect(dialog).not.toBeVisible();
136
- expect(await page.evaluate(() => window.__counter)).toBe(1);
137
- });
138
- regressionTest('button receives focus on load', async ({ mount, page }) => {
139
- await mount('');
140
- await setupModalEnvironment(page);
141
- await page.waitForTimeout(100);
142
- await page.evaluate(() => {
143
- const elm = document.createElement('ix-modal');
144
- elm.innerHTML = `
145
- <ix-modal-header>Title</ix-modal-header>
146
- <ix-modal-footer>
147
- <ix-button autofocus>OK</ix-button>
148
- </ix-modal-footer>
149
- `;
150
- window.showModal({
151
- content: elm,
152
- });
153
- const okButton = elm.querySelector('ix-button');
154
- okButton === null || okButton === void 0 ? void 0 : okButton.addEventListener('click', () => {
155
- window.dismissModal(elm);
156
- });
157
- });
158
- await page.waitForTimeout(250);
159
- const dialog = page.locator('ix-modal dialog');
160
- await expect(dialog).toBeVisible();
161
- await page.keyboard.press('Enter');
162
- await expect(dialog).not.toBeVisible();
163
- });
164
- regressionTest.describe('message utils', () => {
165
- [
166
- ['info', iconInfo],
167
- ['error', iconError],
168
- ['warning', iconWarning],
169
- ['success', iconSuccess],
170
- ['question', iconQuestion],
171
- ].forEach(([name, svgData]) => {
172
- regressionTest(`${name} message`, async ({ mount, page }) => {
173
- await mount(``);
174
- await page.evaluate(async ([svg]) => {
175
- const icon = document.createElement('ix-icon');
176
- icon.setAttribute('name', svg);
177
- icon.style.position = 'absolute';
178
- icon.style.top = '0px';
179
- icon.style.left = '0px';
180
- icon.setAttribute('data-testid', 'test-icon');
181
- document.body.appendChild(icon);
182
- await icon.componentOnReady();
183
- }, [svgData]);
184
- await setupModalEnvironment(page);
185
- await page.evaluate(([functionName]) => {
186
- window.showMessage[functionName]('title', 'message', 'okay');
187
- }, [name]);
188
- const dialog = page.locator('ix-modal-header');
189
- await page.waitForTimeout(500);
190
- await expect(dialog).toBeVisible();
191
- const icon = dialog.locator('ix-icon').first();
192
- await expect(icon).toBeVisible();
193
- await expect(page.getByTestId('test-icon')).toBeVisible();
194
- await page.waitForTimeout(500);
195
- const expectedIconText = await page
196
- .getByTestId('test-icon')
197
- .locator('.svg-container')
198
- .innerHTML();
199
- const messageIconText = await icon.locator('.svg-container').innerHTML();
200
- expect(messageIconText).toEqual(expectedIconText);
201
- });
202
- });
203
- });
204
- //# sourceMappingURL=modal.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.ct.js","sourceRoot":"","sources":["../../../../src/components/modal/test/modal.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect, Page } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\nimport { dismissModal, ModalInstance, showModal } from './../../utils/modal';\nimport {\n iconError,\n iconInfo,\n iconQuestion,\n iconSuccess,\n iconWarning,\n} from '@siemens/ix-icons/icons';\n\ndeclare global {\n interface Window {\n dismissModal: typeof dismissModal;\n showModal: typeof showModal;\n __counter: number;\n }\n}\n\nasync function setupModalEnvironment(page: Page) {\n await page.evaluate(() => {\n return new Promise<void>((resolve) => {\n const script = document.createElement('script');\n script.type = 'module';\n script.innerHTML = `\n import * as ix from 'http://127.0.0.1:8080/www/build/index.esm.js';\n window.showModal = ix.showModal;\n window.dismissModal = ix.dismissModal;\n\n window.showMessage = ix.showMessage;\n window.showMessage.info = ix.showMessage.info;\n window.showMessage.error = ix.showMessage.error;\n window.showMessage.success = ix.showMessage.success;\n window.showMessage.question = ix.showMessage.question;\n `;\n document.getElementById('mount')?.appendChild(script);\n resolve();\n });\n });\n\n await page.waitForTimeout(500);\n}\n\nasync function createToggleExample(page: Page) {\n await page.evaluate(() => {\n function createModalExample() {\n const el = document.createElement('DIV');\n el.style.display = 'contents';\n el.innerHTML = `<ix-toggle id=\"toggle\"></ix-toggle>`;\n return el;\n }\n\n setTimeout(() => {\n window.showModal({\n content: createModalExample(),\n closeOnBackdropClick: true,\n });\n }, 2000);\n });\n}\n\nregressionTest('closes on Escape key down', async ({ mount, page }) => {\n await mount(``);\n await setupModalEnvironment(page);\n await page.waitForTimeout(1000);\n\n await page.evaluate(() => {\n const elm = document.createElement('ix-modal');\n elm.innerHTML = `\n <ix-modal-header>Title</ix-modal-header>\n <ix-modal-content>Content</ix-modal-content>\n `;\n window.showModal({\n content: elm,\n });\n });\n const dialog = page.locator('ix-modal dialog');\n await expect(dialog).toBeVisible();\n await page.locator('ix-modal-content').click();\n await page.keyboard.down('Escape');\n\n await expect(dialog).not.toBeVisible();\n});\n\nregressionTest.describe('closeOnBackdropClick = true', () => {\n regressionTest(\n 'should close modal on backdrop click',\n async ({ mount, page }) => {\n await mount(`\n <ix-button>Some background noise</ix-button>\n `);\n\n await setupModalEnvironment(page);\n await createToggleExample(page);\n\n // needed to skip fade out / in animation\n await page.waitForTimeout(500);\n\n const toggle = page.locator('#toggle');\n await expect(toggle).toBeVisible();\n\n await page.mouse.click(20, 20);\n\n // needed to skip fade out / in animation\n await page.waitForTimeout(500);\n await expect(page.locator('ix-modal dialog')).not.toBeVisible();\n }\n );\n\n regressionTest(\n 'should stay open after interacting with input elements',\n async ({ mount, page }) => {\n await mount(`\n <ix-button>Some background noise</ix-button>\n `);\n\n await setupModalEnvironment(page);\n await createToggleExample(page);\n\n // needed to skip fade out / in animation\n await page.waitForTimeout(500);\n\n const toggle = page.locator('#toggle');\n await expect(toggle).toBeVisible();\n\n await toggle.locator('input').press('Space');\n\n // needed to skip fade out / in animation\n await page.waitForTimeout(500);\n await expect(page.locator('ix-modal dialog')).toBeVisible();\n }\n );\n});\n\nregressionTest('emits one event on close', async ({ mount, page }) => {\n await mount(``);\n\n await setupModalEnvironment(page);\n await page.waitForTimeout(1000);\n\n await page.evaluate(() => {\n const elm = document.createElement('ix-modal');\n elm.innerHTML = `\n <ix-modal-header>Title</ix-modal-header>\n <ix-modal-content>Content</ix-modal-content>\n `;\n\n window\n .showModal({\n content: elm,\n // Disable animation to get the direct animation end callback\n animation: false,\n })\n .then((instance: ModalInstance<unknown>) => {\n instance.onDismiss.on(() => {\n const counter = window.__counter;\n if (counter) {\n window.__counter = counter + 1;\n } else {\n window.__counter = 1;\n }\n });\n });\n });\n const dialog = page.locator('ix-modal dialog');\n await expect(dialog).toBeVisible();\n const iconButton = page.locator('ix-icon-button');\n\n await iconButton.click();\n await expect(dialog).not.toBeVisible();\n\n expect(await page.evaluate(() => window.__counter)).toBe(1);\n});\n\nregressionTest('button receives focus on load', async ({ mount, page }) => {\n await mount('');\n await setupModalEnvironment(page);\n await page.waitForTimeout(100);\n\n await page.evaluate(() => {\n const elm = document.createElement('ix-modal');\n elm.innerHTML = `\n <ix-modal-header>Title</ix-modal-header>\n <ix-modal-footer>\n <ix-button autofocus>OK</ix-button>\n </ix-modal-footer>\n `;\n window.showModal({\n content: elm,\n });\n const okButton = elm.querySelector('ix-button');\n okButton?.addEventListener('click', () => {\n window.dismissModal(elm);\n });\n });\n\n await page.waitForTimeout(250);\n const dialog = page.locator('ix-modal dialog');\n await expect(dialog).toBeVisible();\n\n await page.keyboard.press('Enter');\n\n await expect(dialog).not.toBeVisible();\n});\n\nregressionTest.describe('message utils', () => {\n [\n ['info', iconInfo],\n ['error', iconError],\n ['warning', iconWarning],\n ['success', iconSuccess],\n ['question', iconQuestion],\n ].forEach(([name, svgData]) => {\n regressionTest(`${name} message`, async ({ mount, page }) => {\n await mount(``);\n await page.evaluate(\n async ([svg]) => {\n const icon = document.createElement('ix-icon');\n icon.setAttribute('name', svg);\n icon.style.position = 'absolute';\n icon.style.top = '0px';\n icon.style.left = '0px';\n icon.setAttribute('data-testid', 'test-icon');\n document.body.appendChild(icon);\n await icon.componentOnReady();\n },\n [svgData]\n );\n\n await setupModalEnvironment(page);\n await page.evaluate(\n ([functionName]) => {\n (window.showMessage as any)[functionName]('title', 'message', 'okay');\n },\n [name]\n );\n\n const dialog = page.locator('ix-modal-header');\n await page.waitForTimeout(500);\n await expect(dialog).toBeVisible();\n\n const icon = dialog.locator('ix-icon').first();\n await expect(icon).toBeVisible();\n\n await expect(page.getByTestId('test-icon')).toBeVisible();\n await page.waitForTimeout(500);\n\n const expectedIconText = await page\n .getByTestId('test-icon')\n .locator('.svg-container')\n .innerHTML();\n\n const messageIconText = await icon.locator('.svg-container').innerHTML();\n expect(messageIconText).toEqual(expectedIconText);\n });\n });\n});\n"]}
@@ -1,68 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2023 Siemens AG
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- import { expect } from "@playwright/test";
10
- import { regressionTest } from "../../../tests/utils/test/index";
11
- regressionTest('renders', async ({ mount, page }) => {
12
- await mount(`
13
- <ix-pagination>
14
- </ix-pagination>
15
- `);
16
- const element = page.locator('ix-pagination');
17
- await expect(element).toHaveClass(/hydrated/);
18
- });
19
- regressionTest('advanced', async ({ mount, page }) => {
20
- await mount(`
21
- <ix-pagination advanced>
22
- </ix-pagination>
23
- `);
24
- const element = page.locator('ix-pagination[advanced]');
25
- await expect(element).toHaveClass(/hydrated/);
26
- });
27
- regressionTest('open show number of page dropdown', async ({ mount, page }) => {
28
- await mount(`
29
- <ix-pagination advanced>
30
- </ix-pagination>
31
- `);
32
- const element = page.locator('ix-pagination[advanced]');
33
- await element.getByRole('button').nth(-1).click();
34
- const dropdown = element.locator('ix-dropdown');
35
- await expect(dropdown).toBeVisible();
36
- });
37
- regressionTest('should dispatch items count change', async ({ mount, page }) => {
38
- await mount(`
39
- <ix-pagination advanced>
40
- </ix-pagination>
41
- `);
42
- const pagination = page.locator('ix-pagination');
43
- const itemChanged = pagination.evaluate((elm) => {
44
- return new Promise((resolve) => {
45
- elm.addEventListener('itemCountChanged', (event) => resolve(event.detail));
46
- });
47
- });
48
- await pagination.getByRole('button').nth(-1).click();
49
- await pagination.locator('ix-dropdown-item').nth(3).click();
50
- await expect(pagination.locator('ix-dropdown')).not.toBeVisible();
51
- await expect(pagination).toHaveClass(/hydrated/);
52
- expect(await itemChanged).toBe(40);
53
- });
54
- regressionTest('should not change page', async ({ mount, page }) => {
55
- await mount(`
56
- <ix-pagination count="10">
57
- </ix-pagination>
58
- `);
59
- const pagination = page.locator('ix-pagination');
60
- await pagination.evaluate((elm) => {
61
- elm.addEventListener('pageSelected', (event) => event.preventDefault());
62
- });
63
- const buttons = pagination.locator('button');
64
- await buttons.nth(1).click();
65
- await expect(buttons.first()).toHaveAttribute('aria-pressed', 'true');
66
- await expect(buttons.nth(1)).toHaveAttribute('aria-pressed', 'false');
67
- });
68
- //# sourceMappingURL=pagination.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.ct.js","sourceRoot":"","sources":["../../../../src/components/pagination/test/pagination.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-pagination>\n </ix-pagination>\n `);\n const element = page.locator('ix-pagination');\n\n await expect(element).toHaveClass(/hydrated/);\n});\n\nregressionTest('advanced', async ({ mount, page }) => {\n await mount(`\n <ix-pagination advanced>\n </ix-pagination>\n `);\n const element = page.locator('ix-pagination[advanced]');\n\n await expect(element).toHaveClass(/hydrated/);\n});\n\nregressionTest('open show number of page dropdown', async ({ mount, page }) => {\n await mount(`\n <ix-pagination advanced>\n </ix-pagination>\n `);\n const element = page.locator('ix-pagination[advanced]');\n\n await element.getByRole('button').nth(-1).click();\n\n const dropdown = element.locator('ix-dropdown');\n\n await expect(dropdown).toBeVisible();\n});\n\nregressionTest(\n 'should dispatch items count change',\n async ({ mount, page }) => {\n await mount(`\n <ix-pagination advanced>\n </ix-pagination>\n `);\n const pagination = page.locator('ix-pagination');\n\n const itemChanged = pagination.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('itemCountChanged', (event) =>\n resolve((event as CustomEvent<number>).detail)\n );\n });\n });\n\n await pagination.getByRole('button').nth(-1).click();\n\n await pagination.locator('ix-dropdown-item').nth(3).click();\n await expect(pagination.locator('ix-dropdown')).not.toBeVisible();\n\n await expect(pagination).toHaveClass(/hydrated/);\n expect(await itemChanged).toBe(40);\n }\n);\n\nregressionTest('should not change page', async ({ mount, page }) => {\n await mount(`\n <ix-pagination count=\"10\">\n </ix-pagination>\n `);\n const pagination = page.locator('ix-pagination');\n\n await pagination.evaluate((elm) => {\n elm.addEventListener('pageSelected', (event) => event.preventDefault());\n });\n\n const buttons = pagination.locator('button');\n await buttons.nth(1).click();\n\n await expect(buttons.first()).toHaveAttribute('aria-pressed', 'true');\n await expect(buttons.nth(1)).toHaveAttribute('aria-pressed', 'false');\n});\n"]}
@@ -1,59 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2024 Siemens AG
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- import { expect } from "@playwright/test";
10
- import { iconStar } from "@siemens/ix-icons/icons";
11
- import { regressionTest } from "../../../tests/utils/test/index";
12
- regressionTest('renders', async ({ mount, page }) => {
13
- await mount(`<ix-pane></ix-pane>`);
14
- const pane = page.locator('ix-pane');
15
- await expect(pane).toHaveClass(/hydrated/);
16
- });
17
- regressionTest('expanded', async ({ mount, page }) => {
18
- await mount(`
19
- <ix-pane
20
- heading="LEFT"
21
- composition="left"
22
- icon="star"
23
- expanded="true"
24
- >
25
- <h1>Test Heading</h1>
26
- </ix-pane>
27
- `, {
28
- icons: { iconStar },
29
- });
30
- const title = page.locator('h1');
31
- await expect(title).toBeVisible();
32
- });
33
- regressionTest('prevent pane expansion', async ({ mount, page }) => {
34
- await mount(`
35
- <ix-pane
36
- heading="LEFT"
37
- composition="left"
38
- variant="inline"
39
- icon="star"
40
- expanded="false"
41
- >
42
- <h1>Test Heading</h1>
43
- </ix-pane>
44
- `, {
45
- icons: { iconStar },
46
- });
47
- const pane = page.locator('ix-pane');
48
- await page.evaluate(() => {
49
- const paneElement = document.querySelector('ix-pane');
50
- paneElement === null || paneElement === void 0 ? void 0 : paneElement.addEventListener('expandedChanged', (event) => {
51
- event.preventDefault();
52
- });
53
- });
54
- const iconButton = page.locator('ix-icon-button');
55
- await iconButton.click();
56
- const isExpanded = await pane.evaluate((el) => el.expanded);
57
- expect(isExpanded).toBe(false);
58
- });
59
- //# sourceMappingURL=panes.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panes.ct.js","sourceRoot":"","sources":["../../../../src/components/pane/test/panes.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACnD,MAAM,KAAK,CACT;;;;;;;;;GASD,EACC;QACE,KAAK,EAAE,EAAE,QAAQ,EAAE;KACpB,CACF,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,wBAAwB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACjE,MAAM,KAAK,CACT;;;;;;;;;;GAUD,EACC;QACE,KAAK,EAAE,EAAE,QAAQ,EAAE;KACpB,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACtD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,KAAY,EAAE,EAAE;YAChE,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CACpC,CAAC,EAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CACvC,CAAC;IACF,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { iconStar } from '@siemens/ix-icons/icons';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`<ix-pane></ix-pane>`);\n const pane = page.locator('ix-pane');\n await expect(pane).toHaveClass(/hydrated/);\n});\n\nregressionTest('expanded', async ({ mount, page }) => {\n await mount(\n `\n <ix-pane\n heading=\"LEFT\"\n composition=\"left\"\n icon=\"star\"\n expanded=\"true\"\n >\n <h1>Test Heading</h1>\n </ix-pane>\n `,\n {\n icons: { iconStar },\n }\n );\n\n const title = page.locator('h1');\n await expect(title).toBeVisible();\n});\n\nregressionTest('prevent pane expansion', async ({ mount, page }) => {\n await mount(\n `\n <ix-pane\n heading=\"LEFT\"\n composition=\"left\"\n variant=\"inline\"\n icon=\"star\"\n expanded=\"false\"\n >\n <h1>Test Heading</h1>\n </ix-pane>\n `,\n {\n icons: { iconStar },\n }\n );\n\n const pane = page.locator('ix-pane');\n\n await page.evaluate(() => {\n const paneElement = document.querySelector('ix-pane');\n paneElement?.addEventListener('expandedChanged', (event: Event) => {\n event.preventDefault();\n });\n });\n\n const iconButton = page.locator('ix-icon-button');\n await iconButton.click();\n\n const isExpanded = await pane.evaluate(\n (el: HTMLIxPaneElement) => el.expanded\n );\n expect(isExpanded).toBe(false);\n});\n"]}
@@ -1,60 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2023 Siemens AG
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- import { expect } from "@playwright/test";
10
- import { iconStar } from "@siemens/ix-icons/icons";
11
- import { regressionTest } from "../../../tests/utils/test/index";
12
- regressionTest('renders', async ({ mount, page }) => {
13
- await mount(`<ix-pane-layout></ix-pane-layout>`);
14
- const pane = page.locator('ix-pane-layout');
15
- await expect(pane).toHaveClass(/hydrated/);
16
- });
17
- regressionTest.describe('pane-layout with floating pane', () => {
18
- regressionTest.beforeEach(async ({ mount }) => {
19
- await mount(`
20
- <div style="width: 100vw; height: 100vh;">
21
- <ix-pane-layout variant="floating">
22
- <ix-pane
23
- heading="LEFT"
24
- slot="left"
25
- icon="star"
26
- expanded="true"
27
- size="240px"
28
- hide-on-collapse
29
- >
30
- <h1>Test Heading</h1>
31
- </ix-pane>
32
- <div slot="content" style="width: 100%; height: 100%; display: flex; flex-direction: row;">
33
- <div style="width: 200px; height: 100%;">
34
- <p>Text 1</p>
35
- </div>
36
- <div style="width: 200px; height: 100%; margin-left: 100px;">
37
- <p>Text 2</p>
38
- </div>
39
- </div>
40
- </ix-pane-layout>
41
- </div>
42
- `, {
43
- icons: { iconStar },
44
- });
45
- });
46
- regressionTest('expanded', async ({ page }) => {
47
- await page.waitForSelector('h1');
48
- const title = page.locator('h1');
49
- // timeout to make sure it is currently not closing
50
- await page.waitForTimeout(1000);
51
- await expect(title).toBeVisible();
52
- });
53
- regressionTest('floating pane closes on content click', async ({ page }) => {
54
- await page.waitForSelector('h1');
55
- await page.getByText('Text 2').click();
56
- const textOne = page.getByText('Text 1');
57
- await expect(textOne).toBeVisible();
58
- });
59
- });
60
- //# sourceMappingURL=pane-layout.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pane-layout.ct.js","sourceRoot":"","sources":["../../../../src/components/pane-layout/test/pane-layout.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC7D,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5C,MAAM,KAAK,CACT;;;;;;;;;;;;;;;;;;;;;;;OAuBC,EACD;YACE,KAAK,EAAE,EAAE,QAAQ,EAAE;SACpB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5C,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,mDAAmD;QACnD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,uCAAuC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACzE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { iconStar } from '@siemens/ix-icons/icons';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`<ix-pane-layout></ix-pane-layout>`);\n const pane = page.locator('ix-pane-layout');\n await expect(pane).toHaveClass(/hydrated/);\n});\n\nregressionTest.describe('pane-layout with floating pane', () => {\n regressionTest.beforeEach(async ({ mount }) => {\n await mount(\n `\n <div style=\"width: 100vw; height: 100vh;\">\n <ix-pane-layout variant=\"floating\">\n <ix-pane\n heading=\"LEFT\"\n slot=\"left\"\n icon=\"star\"\n expanded=\"true\"\n size=\"240px\"\n hide-on-collapse\n >\n <h1>Test Heading</h1>\n </ix-pane>\n <div slot=\"content\" style=\"width: 100%; height: 100%; display: flex; flex-direction: row;\">\n <div style=\"width: 200px; height: 100%;\">\n <p>Text 1</p>\n </div>\n <div style=\"width: 200px; height: 100%; margin-left: 100px;\">\n <p>Text 2</p>\n </div>\n </div>\n </ix-pane-layout>\n </div>\n `,\n {\n icons: { iconStar },\n }\n );\n });\n\n regressionTest('expanded', async ({ page }) => {\n await page.waitForSelector('h1');\n const title = page.locator('h1');\n // timeout to make sure it is currently not closing\n await page.waitForTimeout(1000);\n await expect(title).toBeVisible();\n });\n\n regressionTest('floating pane closes on content click', async ({ page }) => {\n await page.waitForSelector('h1');\n await page.getByText('Text 2').click();\n const textOne = page.getByText('Text 1');\n await expect(textOne).toBeVisible();\n });\n});\n"]}
@@ -1,63 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2025 Siemens AG
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- import { test } from "../../../tests/utils/test/index";
10
- import { expect } from "@playwright/test";
11
- import { iconStar } from "@siemens/ix-icons/icons";
12
- test.describe('Pill', () => {
13
- test('dynamic gap behavior', async ({ mount, page }) => {
14
- await mount('<ix-pill icon="star">Dynamic gap</ix-pill>', {
15
- icons: { iconStar },
16
- });
17
- const pill = page.locator('ix-pill');
18
- const innerContainer = pill.locator('.container');
19
- await expect(innerContainer).toHaveClass(/with-gap/);
20
- await pill.evaluate((el) => {
21
- el.innerText = '';
22
- });
23
- await expect(innerContainer).not.toHaveClass(/with-gap/);
24
- });
25
- });
26
- test.describe('tooltip', () => {
27
- test('should not display when tooltip-text attribute is absent', async ({ mount, page, }) => {
28
- await mount('<ix-pill>Text content</ix-pill>');
29
- const pill = page.locator('ix-pill');
30
- await pill.hover();
31
- await expect(pill).not.toHaveAttribute('tooltip-text');
32
- const tooltip = pill.locator('ix-tooltip');
33
- await expect(tooltip).not.toBeAttached();
34
- });
35
- test('should display the component text content when tooltip-text attribute is an empty string', async ({ mount, page, }) => {
36
- await mount('<ix-pill tooltip-text="">Text content</ix-pill>');
37
- const pill = page.locator('ix-pill');
38
- await pill.hover();
39
- await expect(pill).toHaveAttribute('tooltip-text', '');
40
- const tooltip = pill.locator('ix-tooltip');
41
- await expect(tooltip).toHaveClass(/visible/);
42
- await expect(tooltip).toHaveText('Text content');
43
- });
44
- test('should display the component text content when tooltip-text attribute is present but no value is set', async ({ mount, page, }) => {
45
- await mount('<ix-pill tooltip-text>Text content</ix-pill>');
46
- const pill = page.locator('ix-pill');
47
- await pill.hover();
48
- await expect(pill).toHaveAttribute('tooltip-text', undefined);
49
- const tooltip = pill.locator('ix-tooltip');
50
- await expect(tooltip).toHaveClass(/visible/);
51
- await expect(tooltip).toHaveText('Text content');
52
- });
53
- test('should display the custom text when tooltip-text attribute is a custom string', async ({ mount, page, }) => {
54
- await mount('<ix-pill tooltip-text="custom tooltip text">Text content</ix-pill>');
55
- const pill = page.locator('ix-pill');
56
- await pill.hover();
57
- await expect(pill).toHaveAttribute('tooltip-text', 'custom tooltip text');
58
- const tooltip = pill.locator('ix-tooltip');
59
- await expect(tooltip).toHaveClass(/visible/);
60
- await expect(tooltip).toHaveText('custom tooltip text');
61
- });
62
- });
63
- //# sourceMappingURL=pill.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pill.ct.js","sourceRoot":"","sources":["../../../../src/components/pill/test/pill.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { test } from '@utils/test';\nimport { expect } from '@playwright/test';\nimport { iconStar } from '@siemens/ix-icons/icons';\n\ntest.describe('Pill', () => {\n test('dynamic gap behavior', async ({ mount, page }) => {\n await mount('<ix-pill icon=\"star\">Dynamic gap</ix-pill>', {\n icons: { iconStar },\n });\n const pill = page.locator('ix-pill');\n const innerContainer = pill.locator('.container');\n\n await expect(innerContainer).toHaveClass(/with-gap/);\n\n await pill.evaluate((el: HTMLIxPillElement) => {\n el.innerText = '';\n });\n\n await expect(innerContainer).not.toHaveClass(/with-gap/);\n });\n});\n\ntest.describe('tooltip', () => {\n test('should not display when tooltip-text attribute is absent', async ({\n mount,\n page,\n }) => {\n await mount('<ix-pill>Text content</ix-pill>');\n const pill = page.locator('ix-pill');\n await pill.hover();\n\n await expect(pill).not.toHaveAttribute('tooltip-text');\n const tooltip = pill.locator('ix-tooltip');\n await expect(tooltip).not.toBeAttached();\n });\n\n test('should display the component text content when tooltip-text attribute is an empty string', async ({\n mount,\n page,\n }) => {\n await mount('<ix-pill tooltip-text=\"\">Text content</ix-pill>');\n const pill = page.locator('ix-pill');\n await pill.hover();\n\n await expect(pill).toHaveAttribute('tooltip-text', '');\n const tooltip = pill.locator('ix-tooltip');\n await expect(tooltip).toHaveClass(/visible/);\n await expect(tooltip).toHaveText('Text content');\n });\n\n test('should display the component text content when tooltip-text attribute is present but no value is set', async ({\n mount,\n page,\n }) => {\n await mount('<ix-pill tooltip-text>Text content</ix-pill>');\n const pill = page.locator('ix-pill');\n await pill.hover();\n\n await expect(pill).toHaveAttribute('tooltip-text', undefined);\n const tooltip = pill.locator('ix-tooltip');\n await expect(tooltip).toHaveClass(/visible/);\n await expect(tooltip).toHaveText('Text content');\n });\n\n test('should display the custom text when tooltip-text attribute is a custom string', async ({\n mount,\n page,\n }) => {\n await mount(\n '<ix-pill tooltip-text=\"custom tooltip text\">Text content</ix-pill>'\n );\n const pill = page.locator('ix-pill');\n await pill.hover();\n\n await expect(pill).toHaveAttribute('tooltip-text', 'custom tooltip text');\n const tooltip = pill.locator('ix-tooltip');\n await expect(tooltip).toHaveClass(/visible/);\n await expect(tooltip).toHaveText('custom tooltip text');\n });\n});\n"]}
@@ -1,77 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2024 Siemens AG
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- import { expect } from "@playwright/test";
10
- import { getFormValue, preventFormSubmission, regressionTest, test, } from "../../../tests/utils/test/index";
11
- regressionTest('form-ready', async ({ mount, page }) => {
12
- await mount(`<form><ix-radio name="my-radio" value="Test"></ix-radio></form>`);
13
- const formElement = page.locator('form');
14
- preventFormSubmission(formElement);
15
- const radio = page.locator('ix-radio');
16
- await radio.click();
17
- const formData = await getFormValue(formElement, 'my-radio', page);
18
- expect(formData).toBe('Test');
19
- });
20
- regressionTest('form-ready with default value', async ({ mount, page }) => {
21
- await mount(`<form><ix-radio name="my-radio"></ix-radio></form>`);
22
- const formElement = page.locator('form');
23
- preventFormSubmission(formElement);
24
- const radio = page.locator('ix-radio');
25
- await radio.click();
26
- const formData = await getFormValue(formElement, 'my-radio', page);
27
- expect(formData).toBe('on');
28
- });
29
- regressionTest(`form-ready default active`, async ({ mount, page }) => {
30
- await mount(`<form><ix-radio name="my-field-name" checked></ix-radio></form>`);
31
- const formElement = page.locator('form');
32
- preventFormSubmission(formElement);
33
- const formData = await getFormValue(formElement, 'my-field-name', page);
34
- expect(formData).toBe('on');
35
- });
36
- regressionTest(`disabled = undefined`, async ({ mount, page }) => {
37
- await mount(`<ix-radio label="test"></ix-radio>`);
38
- const radioElement = page.locator('ix-radio');
39
- const nativeInput = radioElement.locator('input');
40
- const label = radioElement.locator('label');
41
- const checkedChange$ = radioElement.evaluate((element) => {
42
- // Needed for testcase
43
- element.disabled = undefined;
44
- return new Promise((resolve) => {
45
- element.addEventListener('checkedChange', () => resolve());
46
- });
47
- });
48
- await radioElement.click();
49
- await checkedChange$;
50
- await expect(radioElement).not.toHaveClass(/disabled/);
51
- await expect(nativeInput).not.toBeDisabled();
52
- const disableLabelColor = 'rgba(245, 252, 255, 0.93)';
53
- await expect(label).toHaveCSS('color', disableLabelColor);
54
- });
55
- test('Radio button should not cause layout shift when checked', async ({ mount, page, }) => {
56
- await mount(`
57
- <ix-radio label="test"></ix-radio>
58
- <div id="element-below">This element should not move</div>
59
- `);
60
- await page.waitForSelector('ix-radio', { state: 'attached' });
61
- const initialBounds = await page.$eval('#element-below', (el) => {
62
- const rect = el.getBoundingClientRect();
63
- return { top: rect.top, left: rect.left };
64
- });
65
- await page.click('ix-radio');
66
- await page.waitForFunction(() => {
67
- const radio = document.querySelector('ix-radio');
68
- return (radio === null || radio === void 0 ? void 0 : radio.getAttribute('aria-checked')) === 'true';
69
- });
70
- const newBounds = await page.$eval('#element-below', (el) => {
71
- const rect = el.getBoundingClientRect();
72
- return { top: rect.top, left: rect.left };
73
- });
74
- expect(newBounds.top).toBeCloseTo(initialBounds.top, 0);
75
- expect(newBounds.left).toBeCloseTo(initialBounds.left, 0);
76
- });
77
- //# sourceMappingURL=radio.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio.ct.js","sourceRoot":"","sources":["../../../../src/components/radio/test/radio.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect } from '@playwright/test';\nimport {\n getFormValue,\n preventFormSubmission,\n regressionTest,\n test,\n} from '@utils/test';\n\nregressionTest('form-ready', async ({ mount, page }) => {\n await mount(\n `<form><ix-radio name=\"my-radio\" value=\"Test\"></ix-radio></form>`\n );\n\n const formElement = page.locator('form');\n preventFormSubmission(formElement);\n const radio = page.locator('ix-radio');\n await radio.click();\n\n const formData = await getFormValue(formElement, 'my-radio', page);\n expect(formData).toBe('Test');\n});\n\nregressionTest('form-ready with default value', async ({ mount, page }) => {\n await mount(`<form><ix-radio name=\"my-radio\"></ix-radio></form>`);\n\n const formElement = page.locator('form');\n preventFormSubmission(formElement);\n const radio = page.locator('ix-radio');\n await radio.click();\n\n const formData = await getFormValue(formElement, 'my-radio', page);\n expect(formData).toBe('on');\n});\n\nregressionTest(`form-ready default active`, async ({ mount, page }) => {\n await mount(\n `<form><ix-radio name=\"my-field-name\" checked></ix-radio></form>`\n );\n\n const formElement = page.locator('form');\n preventFormSubmission(formElement);\n const formData = await getFormValue(formElement, 'my-field-name', page);\n expect(formData).toBe('on');\n});\n\nregressionTest(`disabled = undefined`, async ({ mount, page }) => {\n await mount(`<ix-radio label=\"test\"></ix-radio>`);\n\n const radioElement = page.locator('ix-radio');\n const nativeInput = radioElement.locator('input');\n const label = radioElement.locator('label');\n\n const checkedChange$ = radioElement.evaluate(\n (element: HTMLIxCheckboxElement) => {\n // Needed for testcase\n element.disabled = undefined as any;\n return new Promise<void>((resolve) => {\n element.addEventListener('checkedChange', () => resolve());\n });\n }\n );\n\n await radioElement.click();\n await checkedChange$;\n\n await expect(radioElement).not.toHaveClass(/disabled/);\n await expect(nativeInput).not.toBeDisabled();\n\n const disableLabelColor = 'rgba(245, 252, 255, 0.93)';\n await expect(label).toHaveCSS('color', disableLabelColor);\n});\n\ntest('Radio button should not cause layout shift when checked', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-radio label=\"test\"></ix-radio>\n <div id=\"element-below\">This element should not move</div>\n `);\n\n await page.waitForSelector('ix-radio', { state: 'attached' });\n\n const initialBounds = await page.$eval('#element-below', (el) => {\n const rect = el.getBoundingClientRect();\n return { top: rect.top, left: rect.left };\n });\n\n await page.click('ix-radio');\n\n await page.waitForFunction(() => {\n const radio = document.querySelector('ix-radio');\n return radio?.getAttribute('aria-checked') === 'true';\n });\n\n const newBounds = await page.$eval('#element-below', (el) => {\n const rect = el.getBoundingClientRect();\n return { top: rect.top, left: rect.left };\n });\n\n expect(newBounds.top).toBeCloseTo(initialBounds.top, 0);\n expect(newBounds.left).toBeCloseTo(initialBounds.left, 0);\n});\n"]}