@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.
- package/package.json +2 -2
- package/dist/collection/components/application-header/test/application-header.ct.js +0 -389
- package/dist/collection/components/application-header/test/application-header.ct.js.map +0 -1
- package/dist/collection/components/avatar/test/avatar.ct.js +0 -85
- package/dist/collection/components/avatar/test/avatar.ct.js.map +0 -1
- package/dist/collection/components/blind/test/blind.ct.js +0 -16
- package/dist/collection/components/blind/test/blind.ct.js.map +0 -1
- package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js +0 -98
- package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js.map +0 -1
- package/dist/collection/components/button/test/button.ct.js +0 -153
- package/dist/collection/components/button/test/button.ct.js.map +0 -1
- package/dist/collection/components/category-filter/test/category-filter.ct.js +0 -62
- package/dist/collection/components/category-filter/test/category-filter.ct.js.map +0 -1
- package/dist/collection/components/checkbox/tests/checkbox.ct.js +0 -86
- package/dist/collection/components/checkbox/tests/checkbox.ct.js.map +0 -1
- package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js +0 -48
- package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js.map +0 -1
- package/dist/collection/components/chip/test/chip.ct.js +0 -76
- package/dist/collection/components/chip/test/chip.ct.js.map +0 -1
- package/dist/collection/components/custom-field/tests/custom-field.ct.js +0 -68
- package/dist/collection/components/custom-field/tests/custom-field.ct.js.map +0 -1
- package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js +0 -215
- package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js.map +0 -1
- package/dist/collection/components/date-input/tests/date-input.ct.js +0 -117
- package/dist/collection/components/date-input/tests/date-input.ct.js.map +0 -1
- package/dist/collection/components/date-picker/test/date-picker.ct.js +0 -221
- package/dist/collection/components/date-picker/test/date-picker.ct.js.map +0 -1
- package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js +0 -55
- package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js.map +0 -1
- package/dist/collection/components/drawer/test/drawer.ct.js +0 -67
- package/dist/collection/components/drawer/test/drawer.ct.js.map +0 -1
- package/dist/collection/components/dropdown/test/dropdown.ct.js +0 -624
- package/dist/collection/components/dropdown/test/dropdown.ct.js.map +0 -1
- package/dist/collection/components/dropdown-button/dropdown-button.ct.js +0 -51
- package/dist/collection/components/dropdown-button/dropdown-button.ct.js.map +0 -1
- package/dist/collection/components/event-list/test/event-list.ct.js +0 -88
- package/dist/collection/components/event-list/test/event-list.ct.js.map +0 -1
- package/dist/collection/components/expanding-search/test/expanding-search.ct.js +0 -56
- package/dist/collection/components/expanding-search/test/expanding-search.ct.js.map +0 -1
- package/dist/collection/components/field-label/tests/field-label.ct.js +0 -121
- package/dist/collection/components/field-label/tests/field-label.ct.js.map +0 -1
- package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js +0 -63
- package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js.map +0 -1
- package/dist/collection/components/flip-tile/test/flip-tile.ct.js +0 -89
- package/dist/collection/components/flip-tile/test/flip-tile.ct.js.map +0 -1
- package/dist/collection/components/group/test/group.ct.js +0 -115
- package/dist/collection/components/group/test/group.ct.js.map +0 -1
- package/dist/collection/components/icon-button/test/icon-button.ct.js +0 -30
- package/dist/collection/components/icon-button/test/icon-button.ct.js.map +0 -1
- package/dist/collection/components/input/tests/form-ready.ct.js +0 -73
- package/dist/collection/components/input/tests/form-ready.ct.js.map +0 -1
- package/dist/collection/components/input/tests/validation.ct.js +0 -84
- package/dist/collection/components/input/tests/validation.ct.js.map +0 -1
- package/dist/collection/components/input-group/tests/input-group.ct.js +0 -161
- package/dist/collection/components/input-group/tests/input-group.ct.js.map +0 -1
- package/dist/collection/components/menu/test/menu.ct.js +0 -256
- package/dist/collection/components/menu/test/menu.ct.js.map +0 -1
- package/dist/collection/components/menu-about/test/menu-about.ct.js +0 -65
- package/dist/collection/components/menu-about/test/menu-about.ct.js.map +0 -1
- package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js +0 -47
- package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js.map +0 -1
- package/dist/collection/components/menu-category/test/menu-category.ct.js +0 -274
- package/dist/collection/components/menu-category/test/menu-category.ct.js.map +0 -1
- package/dist/collection/components/menu-item/test/menu-item.ct.js +0 -67
- package/dist/collection/components/menu-item/test/menu-item.ct.js.map +0 -1
- package/dist/collection/components/menu-settings/test/menu-settings.ct.js +0 -32
- package/dist/collection/components/menu-settings/test/menu-settings.ct.js.map +0 -1
- package/dist/collection/components/message-bar/test/message-bar.ct.js +0 -28
- package/dist/collection/components/message-bar/test/message-bar.ct.js.map +0 -1
- package/dist/collection/components/modal/test/modal.ct.js +0 -204
- package/dist/collection/components/modal/test/modal.ct.js.map +0 -1
- package/dist/collection/components/pagination/test/pagination.ct.js +0 -68
- package/dist/collection/components/pagination/test/pagination.ct.js.map +0 -1
- package/dist/collection/components/pane/test/panes.ct.js +0 -59
- package/dist/collection/components/pane/test/panes.ct.js.map +0 -1
- package/dist/collection/components/pane-layout/test/pane-layout.ct.js +0 -60
- package/dist/collection/components/pane-layout/test/pane-layout.ct.js.map +0 -1
- package/dist/collection/components/pill/test/pill.ct.js +0 -63
- package/dist/collection/components/pill/test/pill.ct.js.map +0 -1
- package/dist/collection/components/radio/test/radio.ct.js +0 -77
- package/dist/collection/components/radio/test/radio.ct.js.map +0 -1
- package/dist/collection/components/radio-group/test/radio-group.ct.js +0 -117
- package/dist/collection/components/radio-group/test/radio-group.ct.js.map +0 -1
- package/dist/collection/components/select/test/select-keyboard.ct.js +0 -380
- package/dist/collection/components/select/test/select-keyboard.ct.js.map +0 -1
- package/dist/collection/components/select/test/select.ct.js +0 -594
- package/dist/collection/components/select/test/select.ct.js.map +0 -1
- package/dist/collection/components/slider/test/slider.ct.js +0 -65
- package/dist/collection/components/slider/test/slider.ct.js.map +0 -1
- package/dist/collection/components/tabs/test/tabs.ct.js +0 -134
- package/dist/collection/components/tabs/test/tabs.ct.js.map +0 -1
- package/dist/collection/components/time-input/test/time-input.ct.js +0 -62
- package/dist/collection/components/time-input/test/time-input.ct.js.map +0 -1
- package/dist/collection/components/time-picker/test/time-picker.ct.js +0 -172
- package/dist/collection/components/time-picker/test/time-picker.ct.js.map +0 -1
- package/dist/collection/components/toggle/test/toggle.ct.js +0 -84
- package/dist/collection/components/toggle/test/toggle.ct.js.map +0 -1
- package/dist/collection/components/tooltip/test/tooltip.ct.js +0 -243
- package/dist/collection/components/tooltip/test/tooltip.ct.js.map +0 -1
- package/dist/collection/components/tree/test/tree.ct.js +0 -355
- package/dist/collection/components/tree/test/tree.ct.js.map +0 -1
- package/dist/collection/components/upload/test/upload.ct.js +0 -17
- package/dist/collection/components/upload/test/upload.ct.js.map +0 -1
- package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js +0 -74
- package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js.map +0 -1
- package/dist/collection/tests/utils/test/matchMedia.mock.js +0 -22
- package/dist/types/components/application-header/test/application-header.ct.d.ts +0 -1
- package/dist/types/components/avatar/test/avatar.ct.d.ts +0 -1
- package/dist/types/components/blind/test/blind.ct.d.ts +0 -1
- package/dist/types/components/breadcrumb/test/breadcrumb.ct.d.ts +0 -1
- package/dist/types/components/button/test/button.ct.d.ts +0 -7
- package/dist/types/components/category-filter/test/category-filter.ct.d.ts +0 -1
- package/dist/types/components/checkbox/tests/checkbox.ct.d.ts +0 -1
- package/dist/types/components/checkbox-group/test/checkbox-group.ct.d.ts +0 -1
- package/dist/types/components/chip/test/chip.ct.d.ts +0 -1
- package/dist/types/components/custom-field/tests/custom-field.ct.d.ts +0 -1
- package/dist/types/components/date-dropdown/test/date-dropdown.ct.d.ts +0 -1
- package/dist/types/components/date-input/tests/date-input.ct.d.ts +0 -1
- package/dist/types/components/date-picker/test/date-picker.ct.d.ts +0 -1
- package/dist/types/components/datetime-picker/test/datetime-picker.ct.d.ts +0 -1
- package/dist/types/components/drawer/test/drawer.ct.d.ts +0 -1
- package/dist/types/components/dropdown/test/dropdown.ct.d.ts +0 -1
- package/dist/types/components/dropdown-button/dropdown-button.ct.d.ts +0 -1
- package/dist/types/components/event-list/test/event-list.ct.d.ts +0 -1
- package/dist/types/components/expanding-search/test/expanding-search.ct.d.ts +0 -1
- package/dist/types/components/field-label/tests/field-label.ct.d.ts +0 -1
- package/dist/types/components/field-wrapper/tests/field-wrapper.ct.d.ts +0 -1
- package/dist/types/components/flip-tile/test/flip-tile.ct.d.ts +0 -1
- package/dist/types/components/group/test/group.ct.d.ts +0 -1
- package/dist/types/components/icon-button/test/icon-button.ct.d.ts +0 -1
- package/dist/types/components/input/tests/form-ready.ct.d.ts +0 -1
- package/dist/types/components/input/tests/validation.ct.d.ts +0 -1
- package/dist/types/components/input-group/tests/input-group.ct.d.ts +0 -1
- package/dist/types/components/menu/test/menu.ct.d.ts +0 -1
- package/dist/types/components/menu-about/test/menu-about.ct.d.ts +0 -1
- package/dist/types/components/menu-avatar-item/test/menu-avatar-item.ct.d.ts +0 -1
- package/dist/types/components/menu-category/test/menu-category.ct.d.ts +0 -1
- package/dist/types/components/menu-item/test/menu-item.ct.d.ts +0 -1
- package/dist/types/components/menu-settings/test/menu-settings.ct.d.ts +0 -1
- package/dist/types/components/message-bar/test/message-bar.ct.d.ts +0 -1
- package/dist/types/components/modal/test/modal.ct.d.ts +0 -8
- package/dist/types/components/pagination/test/pagination.ct.d.ts +0 -1
- package/dist/types/components/pane/test/panes.ct.d.ts +0 -1
- package/dist/types/components/pane-layout/test/pane-layout.ct.d.ts +0 -1
- package/dist/types/components/pill/test/pill.ct.d.ts +0 -1
- package/dist/types/components/radio/test/radio.ct.d.ts +0 -1
- package/dist/types/components/radio-group/test/radio-group.ct.d.ts +0 -1
- package/dist/types/components/select/test/select-keyboard.ct.d.ts +0 -1
- package/dist/types/components/select/test/select.ct.d.ts +0 -1
- package/dist/types/components/slider/test/slider.ct.d.ts +0 -1
- package/dist/types/components/tabs/test/tabs.ct.d.ts +0 -1
- package/dist/types/components/time-input/test/time-input.ct.d.ts +0 -1
- package/dist/types/components/time-picker/test/time-picker.ct.d.ts +0 -1
- package/dist/types/components/toggle/test/toggle.ct.d.ts +0 -1
- package/dist/types/components/tooltip/test/tooltip.ct.d.ts +0 -1
- package/dist/types/components/tree/test/tree.ct.d.ts +0 -1
- package/dist/types/components/upload/test/upload.ct.d.ts +0 -1
- package/dist/types/components/workflow-steps/test/workflow-steps.ct.d.ts +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select.ct.js","sourceRoot":"","sources":["../../../../src/components/select/test/select.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 { getFormValue, preventFormSubmission, test } from '@utils/test';\n\ntest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n});\n\ntest('editable mode', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('Not existing');\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();\n\n const add = page.getByRole('button', { name: /Not existing/ });\n await expect(add).toBeVisible();\n\n await add.click();\n await expect(page.getByTestId('input')).toHaveValue(/Not existing/);\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n\n const addedItem = page\n .getByRole('listitem')\n .filter({ hasText: 'Not existing' });\n\n await expect(addedItem).toBeVisible();\n});\n\ntest('single selection', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate(\n (select: HTMLIxSelectElement) => (select.value = '22')\n );\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(\n page.getByRole('button', { name: 'Item 2' }).locator('ix-icon')\n ).toBeVisible();\n});\n\ntest('multiple selection', async ({ mount, page }) => {\n await mount(`\n <ix-select mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n <ix-select-item value=\"4\" label=\"Item 4\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n const chips = element.locator('.chips');\n\n await expect(dropdown).toBeVisible();\n\n const item1 = element.locator('ix-select-item').nth(0);\n const item3 = element.locator('ix-select-item').nth(2);\n await item1.click();\n await item3.click();\n\n await expect(item1.locator('ix-icon')).toBeVisible();\n await expect(item3.locator('ix-icon')).toBeVisible();\n\n const chip1 = chips.getByTitle('Item 1');\n const chip3 = chips.getByTitle('Item 3');\n\n await expect(chip1).toBeVisible();\n await expect(chip3).toBeVisible();\n});\n\ntest('filter', async ({ mount, page }) => {\n await mount(`\n <ix-select mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"abc\" label=\"abc\">Test</ix-select-item>\n <ix-select-item value=\"4\" label=\"Item 4\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n\n await page.locator('[data-select-dropdown]').click();\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await element.locator('input').fill('abc');\n\n const item1 = page.getByRole('button', { name: 'Item 1' });\n const item2 = page.getByRole('button', { name: 'Item 2' });\n const item4 = page.getByRole('button', { name: 'Item 4' });\n const item_abc = page.getByRole('button', { name: 'abc' });\n\n await expect(item1).not.toBeVisible();\n await expect(item2).not.toBeVisible();\n await expect(item4).not.toBeVisible();\n await expect(item_abc).toBeVisible();\n});\n\ntest('open filtered dropdown on input', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const select = page.locator('ix-select');\n const input = select.locator('input');\n await select.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n\n await input.focus();\n await page.keyboard.press('Escape');\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).not.toBeVisible();\n\n await input.fill('1');\n\n const item1 = page.getByRole('button', { name: 'Item 1' });\n const item2 = page.getByRole('button', { name: 'Item 2' });\n\n await expect(item1).toBeVisible();\n await expect(item2).not.toBeVisible();\n});\n\ntest('remove text from input and reselect the element', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n\n await page.locator('[data-select-dropdown]').click();\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const item2 = page.getByRole('button', { name: 'Item 2' });\n await item2.click();\n\n const inputValue = await element.locator('input').inputValue();\n expect(inputValue).toEqual('Item 2');\n});\n\ntest('type in a novel item name in editable mode and then remove it', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();\n\n const add = page.getByRole('button', { name: 'test' });\n await expect(add).toBeVisible();\n\n await page.getByTestId('input').fill('');\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(add).not.toBeVisible();\n});\n\ntest('type in a novel item name in editable mode, click outside and reopen the select', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n <ix-button>outside</ix-button>\n `);\n\n const selectElement = page.locator('ix-select');\n const btnElement = page.locator('ix-button');\n await expect(selectElement).toHaveClass(/hydrated/);\n await expect(btnElement).toBeVisible();\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n const add = page.getByRole('button', { name: 'test' });\n await expect(add).toBeVisible();\n\n await btnElement.click();\n const inputValue = await page.getByTestId('input').inputValue();\n\n expect(inputValue).toBe('Item 2');\n\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();\n});\n\ntest('type in a novel item name and click outside', async ({ mount, page }) => {\n await mount(`\n <ix-select value=\"2\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n <ix-button>outside</ix-button>\n `);\n\n const selectElement = page.locator('ix-select');\n await expect(selectElement).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n await page.keyboard.press('Enter');\n const inputValue = await page.getByTestId('input').inputValue();\n\n expect(inputValue).toBe('Item 2');\n});\n\ntest('check if clear button visible in disabled', async ({ mount, page }) => {\n await mount(`\n <ix-select value=\"2\" allow-clear>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n\n const selectElement = page.locator('ix-select');\n await expect(selectElement).toHaveClass(/hydrated/);\n\n const clearButton = page.locator('ix-icon-button.clear.btn-icon-16');\n await expect(clearButton).toBeVisible();\n\n await selectElement.evaluate(\n (select: HTMLIxSelectElement) => (select.disabled = true)\n );\n\n await expect(clearButton).not.toBeAttached();\n});\n\ntest('type in a novel item name in multiple mode, click outside', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n <ix-button>outside</ix-button>\n `);\n\n const selectElement = page.locator('ix-select');\n const btnElement = page.locator('ix-button');\n await expect(selectElement).toHaveClass(/hydrated/);\n await expect(btnElement).toBeVisible();\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n await btnElement.click();\n const inputValue = await page.getByTestId('input').inputValue();\n\n expect(inputValue).toBe('');\n});\n\ntest('pass object as value and check if it is selectable', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select>\n <ix-select-item label=\"Item 1\">Test</ix-select-item>\n <ix-select-item label=\"Item 2\">Test</ix-select-item>\n <ix-select-item label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n const selectElement = page.locator('ix-select');\n await expect(selectElement).toHaveClass(/hydrated/);\n\n async function setSelectItemValue(index: number): Promise<void> {\n await page\n .locator('ix-select-item')\n .nth(index)\n .evaluate((e: HTMLIxSelectItemElement, index) => {\n e.value = `${index}`;\n });\n }\n\n for (let index = 0; index < 3; index++) {\n await setSelectItemValue(index);\n }\n\n await page.locator('[data-select-dropdown]').click();\n await page.locator('ix-select-item').last().click();\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();\n await expect(\n page.getByRole('button', { name: 'Item 3' }).locator('ix-icon')\n ).toBeVisible();\n});\n\ntest('form-ready', async ({ mount, page }) => {\n await mount(`\n <form>\n <ix-select name=\"my-custom-entry\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n </form>\n `);\n\n const select = page.locator('ix-select');\n const formElement = page.locator('form');\n await preventFormSubmission(formElement);\n await page.locator('[data-select-dropdown]').click();\n await page.locator('ix-select-item').nth(1).click();\n\n const inputValue = await select.locator('input').inputValue();\n expect(inputValue).toEqual('Item 2');\n\n const formData = await getFormValue(formElement, 'my-custom-entry', page);\n expect(formData).toEqual('2');\n});\n\ntest('form-ready - with initial value', async ({ mount, page }) => {\n await mount(`\n <form>\n <ix-select name=\"my-custom-entry\" value=\"some other\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"some other\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n </form>\n `);\n\n const formElement = page.locator('form');\n await preventFormSubmission(formElement);\n const formData = await getFormValue(formElement, 'my-custom-entry', page);\n expect(formData).toEqual('some other');\n});\n\ntest.describe('Events', () => {\n test('value change', async ({ mount, page }) => {\n await mount(`<ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n const valueChanged = select.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('valueChange', (e: Event) =>\n resolve((e as CustomEvent).detail)\n );\n });\n });\n\n await page.locator('ix-icon-button').click();\n await page.locator('ix-select-item').click();\n\n await expect(select).toHaveClass(/hydrated/);\n expect(await valueChanged).toBe('1');\n });\n\n test('add item', async ({ mount, page }) => {\n const itemText = 'test';\n await mount(`<ix-select editable></ix-select>`);\n const select = page.locator('ix-select');\n const itemAdded = select.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('addItem', (e: Event) =>\n resolve((e as CustomEvent).detail)\n );\n });\n });\n const input = page.locator('input');\n await input.focus();\n await input.fill(itemText);\n await page.keyboard.press('Enter');\n\n await expect(select).toHaveClass(/hydrated/);\n expect(await itemAdded).toBe(itemText);\n });\n\n test.describe('prevent default', () => {\n test('value change', async ({ mount, page }) => {\n await mount(`<ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\"></ix-select-item>\n </ix-select>`);\n const select = page.locator('ix-select');\n await select.evaluate((i) =>\n i.addEventListener('vauleChange', (e) => e.preventDefault())\n );\n await page.locator('ix-icon-button').click();\n const item = page.locator('ix-select-item');\n await item.click();\n await expect(item).not.toHaveClass('selected');\n });\n\n test('add item', async ({ mount, page }) => {\n await mount(`<ix-select editable></ix-select>`);\n const select = page.locator('ix-select');\n await select.evaluate((i) =>\n i.addEventListener('addItem', (e) => e.preventDefault())\n );\n const input = page.locator('input');\n await input.focus();\n await input.fill('test');\n await page.keyboard.press('Enter');\n const count = await page.locator('ix-select-item').count();\n await expect(count).toBe(0);\n });\n });\n});\n\ntest('async set content and check input value', async ({ mount, page }) => {\n await mount(`<ix-select value=\"1\"></ix-select>`);\n\n await page.evaluate(async () => {\n const select = document.querySelector('ix-select');\n if (select) {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n select.innerHTML = `\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n `;\n }\n });\n\n const input = page.locator('input');\n await expect(input).toHaveValue('Item 1');\n});\n\ntest.describe('Enter selection with non-existing and existing items', () => {\n test('editable', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const selectElement = page.locator('ix-select');\n const input = selectElement.locator('input');\n\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n\n await expect(input).toHaveValue('Item 1');\n\n await input.fill('Item 3');\n await page.keyboard.press('Enter');\n\n await expect(input).toHaveValue('Item 3');\n });\n\n test('non-editable', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const selectElement = page.locator('ix-select');\n const input = selectElement.locator('input');\n\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n\n await expect(input).toHaveValue('Item 1');\n\n await input.fill('Item 3');\n await page.keyboard.press('Enter');\n\n await expect(input).toHaveValue('Item 1');\n });\n});\n\ntest.describe('Dropdown width', () => {\n test('should be 25rem when dropdown-width is set to 35rem and dropdown-max-width to 25rem', async ({\n mount,\n page,\n }) => {\n await mount(`<ix-select value=\"1\" dropdown-width=\"35rem\" dropdown-max-width=\"25rem\">\n <ix-select-item label=\"this is an example for a very long selection option. this is an example for a very long selection option.\" value=\"1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const box = await dropdown.boundingBox();\n expect(box?.width).toBe(16 * 25);\n });\n\n test('should be 25rem when dropdown-width is set to 25 and dropdown-max-width to 35rem', async ({\n mount,\n page,\n }) => {\n await mount(`<ix-select value=\"1\" dropdown-width=\"25rem\" dropdown-max-width=\"35rem\">\n <ix-select-item label=\"this is an example for a very long selection option. this is an example for a very long selection option.\" value=\"1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const box = await dropdown.boundingBox();\n expect(box?.width).toBe(16 * 25);\n });\n\n test('should be 25rem when dropdown-width is set to 25 and dropdown-max-width is not set', async ({\n mount,\n page,\n }) => {\n await mount(`<ix-select value=\"1\" dropdown-width=\"25rem\">\n <ix-select-item label=\"this is an example for a very long selection option. this is an example for a very long selection option.\" value=\"1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const box = await dropdown.boundingBox();\n expect(box?.width).toBe(16 * 25);\n });\n\n test('should be 35rem when dropdown-width is not set and dropdown-max-width is set to 35rem', async ({\n mount,\n page,\n }) => {\n await mount(`<ix-select value=\"1\" dropdown-max-width=\"35rem\">\n <ix-select-item label=\"this is an example for a very long selection option. this is an example for a very long selection option.\" value=\"1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const box = await dropdown.boundingBox();\n expect(box?.width).toBe(16 * 35);\n });\n\n test('should be 100% when dropdown-width and dropdown-max-width are not set', async ({\n mount,\n page,\n }) => {\n await mount(`<ix-select value=\"1\">\n <ix-select-item label=\"this is an example for a very long selection option. this is an example for a very long selection option. this is an example for a very long selection option. this is an example for a very long selection option. this is an example for a very long selection option.\" value=\"1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const box = await dropdown.boundingBox();\n const pageWidth = page.viewportSize()?.width;\n\n expect(box?.width).toBe(pageWidth);\n });\n});\n\ntest('should be 100% when dropdown-max-width is greater than the viewport width', async ({\n mount,\n page,\n}) => {\n await mount(`<ix-select value=\"1\" dropdown-max-width=\"10000rem\">\n <ix-select-item label=\"this is an example for a very long selection option. this is an example for a very long selection option. this is an example for a very long selection option. this is an example for a very long selection option. this is an example for a very long selection option.\" value=\"1\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const box = await dropdown.boundingBox();\n const pageWidth = page.viewportSize()?.width;\n\n expect(box?.width).toBe(pageWidth);\n});\n\ntest('dropdown can be opened after clearing select in editable mode', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select editable allow-clear>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n`);\n\n const selectElement = page.locator('ix-select');\n await expect(selectElement).toHaveClass(/hydrated/);\n await page.locator('[data-select-dropdown]').click();\n\n await page.locator('ix-select-item').nth(1).click();\n await expect(selectElement.locator('input')).toHaveValue('Item 2');\n\n const clearButton = page.locator('ix-icon-button.clear.btn-icon-16');\n await expect(clearButton).toBeVisible();\n await clearButton.click();\n\n await page.locator('[data-select-dropdown]').click();\n const dropdown = selectElement.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n});\n\ntest('should not show add icon when spaces are entered at the start of input', async ({\n mount,\n page,\n}) => {\n await mount(`<ix-select editable>\n <ix-select-item label=\"Item 1\" value=\"1\"></ix-select-item>\n <ix-select-item label=\"Item 2\" value=\"2\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n const input = select.locator('input');\n\n await input.fill(' Item 1');\n\n const addItem = select.locator('.add-item');\n await expect(addItem).toHaveCount(0);\n});\n\ntest('should not show add icon when only spaces are entered in input', async ({\n mount,\n page,\n}) => {\n await mount(`<ix-select editable>\n <ix-select-item label=\"Item 1\" value=\"1\"></ix-select-item>\n <ix-select-item label=\"Item 2\" value=\"2\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n const input = select.locator('input');\n\n await input.fill(' ');\n\n const addItem = select.locator('.add-item');\n await expect(addItem).toHaveCount(0);\n});\n\ntest('should trim the value before saving', async ({ mount, page }) => {\n await mount(`<ix-select editable>\n <ix-select-item label=\"Item 1\" value=\"1\"></ix-select-item>\n <ix-select-item label=\"Item 7\" value=\"7\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n const input = select.locator('Input');\n\n await input.fill(' Item 7 ');\n await input.press('Enter');\n\n await expect(input).toHaveValue('Item 7');\n});\n\ntest('should preserve spaces within input and show add icon', async ({\n mount,\n page,\n}) => {\n await mount(`<ix-select editable>\n <ix-select-item label=\"Item 1\" value=\"1\"></ix-select-item>\n <ix-select-item label=\"Item 7\" value=\"7\"></ix-select-item>\n </ix-select>`);\n\n const select = page.locator('ix-select');\n const input = select.locator('input');\n\n const itemText = 'Item 1';\n await input.fill(itemText);\n\n const addItem = select.locator('.add-item');\n await expect(addItem).toHaveCount(1);\n await expect(input).toHaveValue(itemText);\n});\n\ntest('last select item can be accessed via scrolling', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select>\n ${Array.from(\n {\n length: 20,\n },\n (_, i) =>\n `<ix-select-item value=\"${i + 1}\" label=\"Item ${i + 1}\">Item ${\n i + 1\n }</ix-select-item>`\n ).join('')}\n </ix-select>\n `);\n\n const select = page.locator('ix-select');\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const lastItem = page.locator('ix-select-item').last();\n await lastItem.evaluate((item) => {\n item.scrollIntoView();\n });\n await expect(lastItem).toBeVisible();\n});\n\ntest('last select item can be accessed via scrolling when select placed at center of the page', async ({\n mount,\n page,\n}) => {\n await mount(`\n <div style=\"height:calc(50vh-1px)\"></div>\n <ix-select>\n ${Array.from(\n { length: 20 },\n (_, i) =>\n `<ix-select-item value=\"${i + 1}\" label=\"Item ${i + 1}\">Item ${\n i + 1\n }</ix-select-item>`\n ).join('')}\n </ix-select>\n `);\n\n const select = page.locator('ix-select');\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = select.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n const lastItem = page.locator('ix-select-item').last();\n await lastItem.evaluate((item) => {\n item.scrollIntoView();\n });\n await expect(lastItem).toBeVisible();\n});\n"]}
|
|
@@ -1,65 +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 { expect } from "@playwright/test";
|
|
10
|
-
import { regressionTest } from "../../../tests/utils/test/index";
|
|
11
|
-
regressionTest('renders', async ({ page, mount }) => {
|
|
12
|
-
await mount(`<ix-slider></ix-slider>`);
|
|
13
|
-
const slider = page.locator('ix-slider');
|
|
14
|
-
await expect(slider).toHaveClass(/hydrated/);
|
|
15
|
-
});
|
|
16
|
-
regressionTest('should show tooltip by focus', async ({ page, mount }) => {
|
|
17
|
-
var _a, _b;
|
|
18
|
-
await mount(`<ix-slider value="20"></ix-slider>`);
|
|
19
|
-
const slider = page.locator('ix-slider');
|
|
20
|
-
await expect(slider).toHaveClass(/hydrated/);
|
|
21
|
-
const input = slider.locator('input');
|
|
22
|
-
const tooltip = slider.locator('ix-tooltip');
|
|
23
|
-
await input.focus();
|
|
24
|
-
await expect(tooltip).toHaveClass(/visible/);
|
|
25
|
-
const left = (_a = (await tooltip.locator('dialog').boundingBox())) === null || _a === void 0 ? void 0 : _a.x;
|
|
26
|
-
if (!left) {
|
|
27
|
-
throw new Error('Tooltip bounding box is x is undefined.');
|
|
28
|
-
}
|
|
29
|
-
await input.press('ArrowRight');
|
|
30
|
-
await input.press('ArrowRight');
|
|
31
|
-
await page.waitForTimeout(500);
|
|
32
|
-
await expect(tooltip).toHaveClass(/visible/);
|
|
33
|
-
const leftAfterKeyboardNavigation = (_b = (await tooltip.locator('dialog').boundingBox())) === null || _b === void 0 ? void 0 : _b.x;
|
|
34
|
-
expect(leftAfterKeyboardNavigation).toBeGreaterThan(left);
|
|
35
|
-
await input.blur();
|
|
36
|
-
await page.waitForTimeout(500);
|
|
37
|
-
await expect(tooltip).not.toHaveClass(/visible/);
|
|
38
|
-
});
|
|
39
|
-
regressionTest('should show tooltip while mouse drags slider handle', async ({ page, mount }) => {
|
|
40
|
-
await mount(`<ix-slider value="20"></ix-slider>`);
|
|
41
|
-
const slider = page.locator('ix-slider');
|
|
42
|
-
await expect(slider).toHaveClass(/hydrated/);
|
|
43
|
-
const tooltip = slider.locator('ix-tooltip');
|
|
44
|
-
await expect(tooltip).not.toHaveClass(/visible/);
|
|
45
|
-
const box = await slider.boundingBox();
|
|
46
|
-
if (box) {
|
|
47
|
-
await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);
|
|
48
|
-
await page.mouse.down();
|
|
49
|
-
await page.mouse.move(box.x + box.width / 3, box.y + box.height / 3);
|
|
50
|
-
await expect(tooltip).toHaveClass(/visible/);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
throw new Error('Slider bounding box is null.');
|
|
54
|
-
}
|
|
55
|
-
await page.mouse.up();
|
|
56
|
-
await expect(tooltip).not.toHaveClass(/visible/);
|
|
57
|
-
});
|
|
58
|
-
regressionTest('should not change value - prevent default', async ({ page, mount }) => {
|
|
59
|
-
await mount(`<ix-slider value="20"></ix-slider>`);
|
|
60
|
-
const slider = page.locator('ix-slider');
|
|
61
|
-
await slider.evaluate((s) => s.addEventListener('valueChange', (e) => e.preventDefault()));
|
|
62
|
-
await page.mouse.click(100, 16);
|
|
63
|
-
await expect(slider).toHaveAttribute('value', '20');
|
|
64
|
-
});
|
|
65
|
-
//# sourceMappingURL=slider.ct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slider.ct.js","sourceRoot":"","sources":["../../../../src/components/slider/test/slider.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 */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ page, mount }) => {\n await mount(`<ix-slider></ix-slider>`);\n\n const slider = page.locator('ix-slider');\n await expect(slider).toHaveClass(/hydrated/);\n});\n\nregressionTest('should show tooltip by focus', async ({ page, mount }) => {\n await mount(`<ix-slider value=\"20\"></ix-slider>`);\n\n const slider = page.locator('ix-slider');\n await expect(slider).toHaveClass(/hydrated/);\n\n const input = slider.locator('input');\n\n const tooltip = slider.locator('ix-tooltip');\n await input.focus();\n await expect(tooltip).toHaveClass(/visible/);\n const left = (await tooltip.locator('dialog').boundingBox())?.x;\n\n if (!left) {\n throw new Error('Tooltip bounding box is x is undefined.');\n }\n\n await input.press('ArrowRight');\n await input.press('ArrowRight');\n\n await page.waitForTimeout(500);\n await expect(tooltip).toHaveClass(/visible/);\n const leftAfterKeyboardNavigation = (\n await tooltip.locator('dialog').boundingBox()\n )?.x;\n\n expect(leftAfterKeyboardNavigation).toBeGreaterThan(left);\n\n await input.blur();\n await page.waitForTimeout(500);\n await expect(tooltip).not.toHaveClass(/visible/);\n});\n\nregressionTest(\n 'should show tooltip while mouse drags slider handle',\n async ({ page, mount }) => {\n await mount(`<ix-slider value=\"20\"></ix-slider>`);\n\n const slider = page.locator('ix-slider');\n await expect(slider).toHaveClass(/hydrated/);\n\n const tooltip = slider.locator('ix-tooltip');\n\n await expect(tooltip).not.toHaveClass(/visible/);\n\n const box = await slider.boundingBox();\n\n if (box) {\n await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);\n await page.mouse.down();\n await page.mouse.move(box.x + box.width / 3, box.y + box.height / 3);\n await expect(tooltip).toHaveClass(/visible/);\n } else {\n throw new Error('Slider bounding box is null.');\n }\n\n await page.mouse.up();\n await expect(tooltip).not.toHaveClass(/visible/);\n }\n);\n\nregressionTest(\n 'should not change value - prevent default',\n async ({ page, mount }) => {\n await mount(`<ix-slider value=\"20\"></ix-slider>`);\n const slider = page.locator('ix-slider');\n await slider.evaluate((s) =>\n s.addEventListener('valueChange', (e) => e.preventDefault())\n );\n await page.mouse.click(100, 16);\n await expect(slider).toHaveAttribute('value', '20');\n }\n);\n"]}
|
|
@@ -1,134 +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
|
-
regressionTest('renders', async ({ mount, page }) => {
|
|
12
|
-
await mount(`
|
|
13
|
-
<ix-tabs>
|
|
14
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
15
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
16
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
17
|
-
</ix-tabs>
|
|
18
|
-
`);
|
|
19
|
-
const tabs = page.locator('ix-tabs');
|
|
20
|
-
const tab = page.locator('ix-tab-item').nth(0);
|
|
21
|
-
await expect(tabs).toHaveClass(/hydrated/);
|
|
22
|
-
await expect(tab).toHaveClass(/selected/);
|
|
23
|
-
});
|
|
24
|
-
regressionTest('should change tab', async ({ mount, page }) => {
|
|
25
|
-
await mount(`
|
|
26
|
-
<ix-tabs>
|
|
27
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
28
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
29
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
30
|
-
</ix-tabs>
|
|
31
|
-
`);
|
|
32
|
-
const tabs = page.locator('ix-tabs');
|
|
33
|
-
const tab = page.locator('ix-tab-item').nth(2);
|
|
34
|
-
await tab.click();
|
|
35
|
-
await expect(tabs).toHaveClass(/hydrated/);
|
|
36
|
-
await expect(tab).toHaveClass(/selected/);
|
|
37
|
-
});
|
|
38
|
-
regressionTest('should not change tab by tab click event', async ({ mount, page }) => {
|
|
39
|
-
await mount(`
|
|
40
|
-
<ix-tabs>
|
|
41
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
42
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
43
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
44
|
-
</ix-tabs>
|
|
45
|
-
`);
|
|
46
|
-
const tabs = page.locator('ix-tabs');
|
|
47
|
-
const firstTab = page.locator('ix-tab-item').nth(0);
|
|
48
|
-
const lastTab = page.locator('ix-tab-item').nth(2);
|
|
49
|
-
lastTab.evaluate((tabElement) => {
|
|
50
|
-
tabElement.addEventListener('tabClick', (event) => event.preventDefault());
|
|
51
|
-
});
|
|
52
|
-
await lastTab.click();
|
|
53
|
-
await expect(tabs).toHaveClass(/hydrated/);
|
|
54
|
-
await expect(firstTab).toHaveClass(/selected/);
|
|
55
|
-
await expect(lastTab).not.toHaveClass(/selected/);
|
|
56
|
-
});
|
|
57
|
-
regressionTest('should not change tab by native click event on prevent default', async ({ mount, page }) => {
|
|
58
|
-
await mount(`
|
|
59
|
-
<ix-tabs>
|
|
60
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
61
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
62
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
63
|
-
</ix-tabs>
|
|
64
|
-
`);
|
|
65
|
-
const tabs = page.locator('ix-tabs');
|
|
66
|
-
const firstTab = page.locator('ix-tab-item').nth(0);
|
|
67
|
-
const secondTab = page.locator('ix-tab-item').nth(1);
|
|
68
|
-
const lastTab = page.locator('ix-tab-item').nth(2);
|
|
69
|
-
await lastTab.evaluate((lastTabElement) => {
|
|
70
|
-
lastTabElement.addEventListener('click', (event) => {
|
|
71
|
-
event.preventDefault();
|
|
72
|
-
}, true);
|
|
73
|
-
});
|
|
74
|
-
await expect(tabs).toHaveClass(/hydrated/);
|
|
75
|
-
await expect(firstTab).toHaveClass(/selected/);
|
|
76
|
-
await secondTab.click();
|
|
77
|
-
await lastTab.click();
|
|
78
|
-
await expect(secondTab).toHaveClass(/selected/);
|
|
79
|
-
await expect(lastTab).not.toHaveClass(/selected/);
|
|
80
|
-
});
|
|
81
|
-
regressionTest('should not change tab by tabs event', async ({ mount, page }) => {
|
|
82
|
-
await mount(`
|
|
83
|
-
<ix-tabs>
|
|
84
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
85
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
86
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
87
|
-
</ix-tabs>
|
|
88
|
-
`);
|
|
89
|
-
const tabs = page.locator('ix-tabs');
|
|
90
|
-
const firstTab = page.locator('ix-tab-item').nth(0);
|
|
91
|
-
const lastTab = page.locator('ix-tab-item').nth(2);
|
|
92
|
-
tabs.evaluate((tabElement) => {
|
|
93
|
-
tabElement.addEventListener('selectedChange', (event) => event.preventDefault());
|
|
94
|
-
});
|
|
95
|
-
await lastTab.click();
|
|
96
|
-
await expect(tabs).toHaveClass(/hydrated/);
|
|
97
|
-
await expect(firstTab).toHaveClass(/selected/);
|
|
98
|
-
await expect(lastTab).not.toHaveClass(/selected/);
|
|
99
|
-
});
|
|
100
|
-
regressionTest('should update layout on resize', async ({ mount, page }) => {
|
|
101
|
-
await mount(`
|
|
102
|
-
<ix-tabs>
|
|
103
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
104
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
105
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
106
|
-
</ix-tabs>
|
|
107
|
-
`);
|
|
108
|
-
const tabs = page.locator('ix-tabs');
|
|
109
|
-
await page.setViewportSize({ width: 200, height: 100 });
|
|
110
|
-
const arrowNext = tabs.locator('.arrow.right');
|
|
111
|
-
await expect(arrowNext).toBeVisible();
|
|
112
|
-
await page.setViewportSize({ width: 1000, height: 100 });
|
|
113
|
-
await expect(arrowNext).not.toBeVisible();
|
|
114
|
-
});
|
|
115
|
-
regressionTest('should scroll selected tab into view', async ({ mount, page }) => {
|
|
116
|
-
await mount(`
|
|
117
|
-
<ix-tabs>
|
|
118
|
-
<ix-tab-item>Item 1</ix-tab-item>
|
|
119
|
-
<ix-tab-item>Item 2</ix-tab-item>
|
|
120
|
-
<ix-tab-item>Item 3</ix-tab-item>
|
|
121
|
-
<ix-tab-item>Item 4</ix-tab-item>
|
|
122
|
-
<ix-tab-item>Item 5</ix-tab-item>
|
|
123
|
-
<ix-tab-item>Item 6</ix-tab-item>
|
|
124
|
-
</ix-tabs>
|
|
125
|
-
`);
|
|
126
|
-
await page.setViewportSize({ width: 300, height: 100 });
|
|
127
|
-
const clickedTab = page.locator('ix-tab-item').nth(3);
|
|
128
|
-
const lastTab = page.locator('ix-tab-item').last();
|
|
129
|
-
await clickedTab.click();
|
|
130
|
-
await page.waitForTimeout(500);
|
|
131
|
-
await expect(clickedTab).toBeInViewport();
|
|
132
|
-
await expect(lastTab).not.toBeInViewport();
|
|
133
|
-
});
|
|
134
|
-
//# sourceMappingURL=tabs.ct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.ct.js","sourceRoot":"","sources":["../../../../src/components/tabs/test/tabs.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 { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n </ix-tabs>\n `);\n const tabs = page.locator('ix-tabs');\n const tab = page.locator('ix-tab-item').nth(0);\n\n await expect(tabs).toHaveClass(/hydrated/);\n await expect(tab).toHaveClass(/selected/);\n});\n\nregressionTest('should change tab', async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n </ix-tabs>\n `);\n const tabs = page.locator('ix-tabs');\n const tab = page.locator('ix-tab-item').nth(2);\n\n await tab.click();\n\n await expect(tabs).toHaveClass(/hydrated/);\n await expect(tab).toHaveClass(/selected/);\n});\n\nregressionTest(\n 'should not change tab by tab click event',\n async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n </ix-tabs>\n `);\n const tabs = page.locator('ix-tabs');\n const firstTab = page.locator('ix-tab-item').nth(0);\n const lastTab = page.locator('ix-tab-item').nth(2);\n\n lastTab.evaluate((tabElement) => {\n tabElement.addEventListener('tabClick', (event) =>\n event.preventDefault()\n );\n });\n\n await lastTab.click();\n\n await expect(tabs).toHaveClass(/hydrated/);\n await expect(firstTab).toHaveClass(/selected/);\n await expect(lastTab).not.toHaveClass(/selected/);\n }\n);\n\nregressionTest(\n 'should not change tab by native click event on prevent default',\n async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n </ix-tabs>\n `);\n const tabs = page.locator('ix-tabs');\n const firstTab = page.locator('ix-tab-item').nth(0);\n const secondTab = page.locator('ix-tab-item').nth(1);\n const lastTab = page.locator('ix-tab-item').nth(2);\n\n await lastTab.evaluate((lastTabElement) => {\n lastTabElement.addEventListener(\n 'click',\n (event) => {\n event.preventDefault();\n },\n true\n );\n });\n\n await expect(tabs).toHaveClass(/hydrated/);\n await expect(firstTab).toHaveClass(/selected/);\n\n await secondTab.click();\n await lastTab.click();\n\n await expect(secondTab).toHaveClass(/selected/);\n await expect(lastTab).not.toHaveClass(/selected/);\n }\n);\n\nregressionTest(\n 'should not change tab by tabs event',\n async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n </ix-tabs>\n `);\n const tabs = page.locator('ix-tabs');\n const firstTab = page.locator('ix-tab-item').nth(0);\n const lastTab = page.locator('ix-tab-item').nth(2);\n\n tabs.evaluate((tabElement) => {\n tabElement.addEventListener('selectedChange', (event) =>\n event.preventDefault()\n );\n });\n\n await lastTab.click();\n\n await expect(tabs).toHaveClass(/hydrated/);\n await expect(firstTab).toHaveClass(/selected/);\n await expect(lastTab).not.toHaveClass(/selected/);\n }\n);\n\nregressionTest('should update layout on resize', async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n </ix-tabs>\n `);\n const tabs = page.locator('ix-tabs');\n await page.setViewportSize({ width: 200, height: 100 });\n const arrowNext = tabs.locator('.arrow.right');\n await expect(arrowNext).toBeVisible();\n\n await page.setViewportSize({ width: 1000, height: 100 });\n await expect(arrowNext).not.toBeVisible();\n});\n\nregressionTest(\n 'should scroll selected tab into view',\n async ({ mount, page }) => {\n await mount(`\n <ix-tabs>\n <ix-tab-item>Item 1</ix-tab-item>\n <ix-tab-item>Item 2</ix-tab-item>\n <ix-tab-item>Item 3</ix-tab-item>\n <ix-tab-item>Item 4</ix-tab-item>\n <ix-tab-item>Item 5</ix-tab-item>\n <ix-tab-item>Item 6</ix-tab-item>\n </ix-tabs>\n `);\n await page.setViewportSize({ width: 300, height: 100 });\n const clickedTab = page.locator('ix-tab-item').nth(3);\n const lastTab = page.locator('ix-tab-item').last();\n await clickedTab.click();\n await page.waitForTimeout(500);\n await expect(clickedTab).toBeInViewport();\n await expect(lastTab).not.toBeInViewport();\n }\n);\n"]}
|
|
@@ -1,62 +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.describe('time input tests', () => {
|
|
12
|
-
regressionTest.beforeEach(async ({ mount }) => {
|
|
13
|
-
await mount(`<ix-time-input
|
|
14
|
-
value="09:10:11"
|
|
15
|
-
format="HH:mm:ss"
|
|
16
|
-
>
|
|
17
|
-
</ix-time-input>`);
|
|
18
|
-
});
|
|
19
|
-
regressionTest('input updates should reflect in the picker', async ({ page }) => {
|
|
20
|
-
await page
|
|
21
|
-
.locator('ix-icon-button[data-testid="open-time-picker"]')
|
|
22
|
-
.click();
|
|
23
|
-
await page.locator('input').fill('10:30:45');
|
|
24
|
-
const hourElement = await page.locator('ix-time-picker [data-element-container-id="hour-10"]');
|
|
25
|
-
const minuteElement = await page.locator('ix-time-picker [data-element-container-id="minute-30"]');
|
|
26
|
-
const secondElement = await page.locator('ix-time-picker [data-element-container-id="second-45"]');
|
|
27
|
-
await expect(hourElement).toHaveClass(/selected/);
|
|
28
|
-
await expect(minuteElement).toHaveClass(/selected/);
|
|
29
|
-
await expect(secondElement).toHaveClass(/selected/);
|
|
30
|
-
});
|
|
31
|
-
regressionTest('clock icon click should open the dropdown', async ({ page }) => {
|
|
32
|
-
await expect(page.locator('ix-dropdown[data-testid="time-dropdown"]')).not.toHaveClass(/show/);
|
|
33
|
-
await page
|
|
34
|
-
.locator('ix-icon-button[data-testid="open-time-picker"]')
|
|
35
|
-
.click();
|
|
36
|
-
await expect(page.locator('ix-dropdown[data-testid="time-dropdown"]')).toHaveClass(/show/);
|
|
37
|
-
await expect(page.locator('ix-time-picker')).toBeVisible();
|
|
38
|
-
});
|
|
39
|
-
regressionTest('invalid time should show error state', async ({ page }) => {
|
|
40
|
-
await page.locator('input').fill('invalid-time');
|
|
41
|
-
await expect(page.locator('input')).toHaveClass(/is-invalid/);
|
|
42
|
-
await expect(page.locator('ix-field-wrapper')).toContainText('Time is not valid');
|
|
43
|
-
});
|
|
44
|
-
regressionTest('selecting time in dropdown should update input value', async ({ page }) => {
|
|
45
|
-
await page
|
|
46
|
-
.locator('ix-icon-button[data-testid="open-time-picker"]')
|
|
47
|
-
.click();
|
|
48
|
-
await page
|
|
49
|
-
.locator('ix-time-picker [data-element-container-id="hour-12"]')
|
|
50
|
-
.click();
|
|
51
|
-
await page
|
|
52
|
-
.locator('ix-time-picker [data-element-container-id="minute-30"]')
|
|
53
|
-
.click();
|
|
54
|
-
await page
|
|
55
|
-
.locator('ix-time-picker [data-element-container-id="second-45"]')
|
|
56
|
-
.click();
|
|
57
|
-
await page.locator('ix-time-picker ix-button').click();
|
|
58
|
-
await expect(page.locator('ix-dropdown[data-testid="time-dropdown"]')).not.toHaveClass(/show/);
|
|
59
|
-
await expect(page.locator('input')).toHaveValue('12:30:45');
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=time-input.ct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time-input.ct.js","sourceRoot":"","sources":["../../../../src/components/time-input/test/time-input.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC/C,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5C,MAAM,KAAK,CACT;;;;uBAIiB,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,cAAc,CACZ,4CAA4C,EAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,IAAI;aACP,OAAO,CAAC,gDAAgD,CAAC;aACzD,KAAK,EAAE,CAAC;QAEX,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CACpC,sDAAsD,CACvD,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CACtC,wDAAwD,CACzD,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CACtC,wDAAwD,CACzD,CAAC;QAEF,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;IAEF,cAAc,CACZ,2CAA2C,EAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,MAAM,CACV,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CACzD,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,IAAI;aACP,OAAO,CAAC,gDAAgD,CAAC;aACzD,KAAK,EAAE,CAAC;QAEX,MAAM,MAAM,CACV,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CACzD,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC,CACF,CAAC;IAEF,cAAc,CAAC,sCAAsC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACxE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjD,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAE9D,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAC1D,mBAAmB,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,cAAc,CACZ,sDAAsD,EACtD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,IAAI;aACP,OAAO,CAAC,gDAAgD,CAAC;aACzD,KAAK,EAAE,CAAC;QAEX,MAAM,IAAI;aACP,OAAO,CAAC,sDAAsD,CAAC;aAC/D,KAAK,EAAE,CAAC;QACX,MAAM,IAAI;aACP,OAAO,CAAC,wDAAwD,CAAC;aACjE,KAAK,EAAE,CAAC;QACX,MAAM,IAAI;aACP,OAAO,CAAC,wDAAwD,CAAC;aACjE,KAAK,EAAE,CAAC;QAEX,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEvD,MAAM,MAAM,CACV,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CACzD,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;AACJ,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 */\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('time input tests', () => {\n regressionTest.beforeEach(async ({ mount }) => {\n await mount(\n `<ix-time-input\n value=\"09:10:11\"\n format=\"HH:mm:ss\"\n >\n </ix-time-input>`\n );\n });\n\n regressionTest(\n 'input updates should reflect in the picker',\n async ({ page }) => {\n await page\n .locator('ix-icon-button[data-testid=\"open-time-picker\"]')\n .click();\n\n await page.locator('input').fill('10:30:45');\n\n const hourElement = await page.locator(\n 'ix-time-picker [data-element-container-id=\"hour-10\"]'\n );\n const minuteElement = await page.locator(\n 'ix-time-picker [data-element-container-id=\"minute-30\"]'\n );\n const secondElement = await page.locator(\n 'ix-time-picker [data-element-container-id=\"second-45\"]'\n );\n\n await expect(hourElement).toHaveClass(/selected/);\n await expect(minuteElement).toHaveClass(/selected/);\n await expect(secondElement).toHaveClass(/selected/);\n }\n );\n\n regressionTest(\n 'clock icon click should open the dropdown',\n async ({ page }) => {\n await expect(\n page.locator('ix-dropdown[data-testid=\"time-dropdown\"]')\n ).not.toHaveClass(/show/);\n\n await page\n .locator('ix-icon-button[data-testid=\"open-time-picker\"]')\n .click();\n\n await expect(\n page.locator('ix-dropdown[data-testid=\"time-dropdown\"]')\n ).toHaveClass(/show/);\n\n await expect(page.locator('ix-time-picker')).toBeVisible();\n }\n );\n\n regressionTest('invalid time should show error state', async ({ page }) => {\n await page.locator('input').fill('invalid-time');\n\n await expect(page.locator('input')).toHaveClass(/is-invalid/);\n\n await expect(page.locator('ix-field-wrapper')).toContainText(\n 'Time is not valid'\n );\n });\n\n regressionTest(\n 'selecting time in dropdown should update input value',\n async ({ page }) => {\n await page\n .locator('ix-icon-button[data-testid=\"open-time-picker\"]')\n .click();\n\n await page\n .locator('ix-time-picker [data-element-container-id=\"hour-12\"]')\n .click();\n await page\n .locator('ix-time-picker [data-element-container-id=\"minute-30\"]')\n .click();\n await page\n .locator('ix-time-picker [data-element-container-id=\"second-45\"]')\n .click();\n\n await page.locator('ix-time-picker ix-button').click();\n\n await expect(\n page.locator('ix-dropdown[data-testid=\"time-dropdown\"]')\n ).not.toHaveClass(/show/);\n\n await expect(page.locator('input')).toHaveValue('12:30:45');\n }\n );\n});\n"]}
|
|
@@ -1,172 +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
|
-
const TIME_PICKER_SELECTOR = 'ix-time-picker';
|
|
12
|
-
const getTimeObjs = async (page) => {
|
|
13
|
-
return await page.$$eval(TIME_PICKER_SELECTOR, (elements) => {
|
|
14
|
-
return Promise.all(elements.map((elem) => elem.getCurrentTime()));
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
regressionTest('renders', async ({ mount, page }) => {
|
|
18
|
-
await mount(`<ix-time-picker></ix-time-picker>`);
|
|
19
|
-
const datePicker = page.locator(TIME_PICKER_SELECTOR);
|
|
20
|
-
await expect(datePicker).toHaveClass(/hydrated/);
|
|
21
|
-
});
|
|
22
|
-
regressionTest.describe('time picker tests', () => {
|
|
23
|
-
regressionTest.beforeEach(async ({ mount }) => {
|
|
24
|
-
await mount(`<ix-time-picker
|
|
25
|
-
time="09:10:11"
|
|
26
|
-
format="hh:mm:ss"
|
|
27
|
-
>
|
|
28
|
-
</ix-time-picker>
|
|
29
|
-
<ix-time-picker
|
|
30
|
-
time="10:11:12 AM"
|
|
31
|
-
format="hh:mm:ss a"
|
|
32
|
-
>
|
|
33
|
-
</ix-time-picker>`);
|
|
34
|
-
});
|
|
35
|
-
regressionTest('should get correct time', async ({ page }) => {
|
|
36
|
-
expect(await getTimeObjs(page)).toEqual(['09:10:11', '10:11:12 AM']);
|
|
37
|
-
});
|
|
38
|
-
regressionTest('should change time selection by clicking', async ({ page }) => {
|
|
39
|
-
await page.waitForSelector('ix-date-time-card');
|
|
40
|
-
// First time picker - select 12 hour
|
|
41
|
-
await page
|
|
42
|
-
.locator('ix-time-picker')
|
|
43
|
-
.first()
|
|
44
|
-
.locator('[data-element-container-id="hour-12"]')
|
|
45
|
-
.click();
|
|
46
|
-
// Select 12 minute
|
|
47
|
-
await page
|
|
48
|
-
.locator('ix-time-picker')
|
|
49
|
-
.first()
|
|
50
|
-
.locator('[data-element-container-id="minute-12"]')
|
|
51
|
-
.click();
|
|
52
|
-
// Select 30 second
|
|
53
|
-
await page
|
|
54
|
-
.locator('ix-time-picker')
|
|
55
|
-
.first()
|
|
56
|
-
.locator('[data-element-container-id="second-30"]')
|
|
57
|
-
.click();
|
|
58
|
-
// Switch AM to PM in the second time picker
|
|
59
|
-
await page
|
|
60
|
-
.locator('ix-time-picker')
|
|
61
|
-
.nth(1)
|
|
62
|
-
.locator('[data-am-pm-id="PM"]')
|
|
63
|
-
.click();
|
|
64
|
-
expect(await getTimeObjs(page)).toEqual(['12:12:30', '10:11:12 PM']);
|
|
65
|
-
});
|
|
66
|
-
regressionTest('should fire timeChange event when time is changed', async ({ page }) => {
|
|
67
|
-
await page.waitForSelector('ix-date-time-card');
|
|
68
|
-
// Set up a listener for the timeChange event on the first time picker
|
|
69
|
-
const timeChangePromise = page.evaluate(() => {
|
|
70
|
-
return new Promise((resolve) => {
|
|
71
|
-
const timePicker = document.querySelector('ix-time-picker');
|
|
72
|
-
timePicker === null || timePicker === void 0 ? void 0 : timePicker.addEventListener('timeChange', (event) => {
|
|
73
|
-
resolve(event.detail);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
// Make a change to the first time picker
|
|
78
|
-
await page
|
|
79
|
-
.locator('ix-time-picker')
|
|
80
|
-
.first()
|
|
81
|
-
.locator('[data-element-container-id="hour-10"]')
|
|
82
|
-
.click();
|
|
83
|
-
// Wait for the event to be fired and get the event detail
|
|
84
|
-
const eventDetail = await timeChangePromise;
|
|
85
|
-
// Verify that we received the event with the correct time
|
|
86
|
-
expect(eventDetail).toBe('10:10:11');
|
|
87
|
-
});
|
|
88
|
-
regressionTest('should change time selection when updating time attribute from outside', async ({ page }) => {
|
|
89
|
-
await page.waitForSelector('ix-date-time-card');
|
|
90
|
-
await page.$eval(TIME_PICKER_SELECTOR, (el) => {
|
|
91
|
-
el.time = '10:11:15';
|
|
92
|
-
});
|
|
93
|
-
await page.$eval(TIME_PICKER_SELECTOR, (el) => {
|
|
94
|
-
el.time = '11:12:15';
|
|
95
|
-
});
|
|
96
|
-
expect(['11:12:15', '10:11:12 AM']).toEqual(await getTimeObjs(page));
|
|
97
|
-
});
|
|
98
|
-
regressionTest('should fire timeSelect event when confirm button is clicked', async ({ page }) => {
|
|
99
|
-
await page.waitForSelector('ix-date-time-card');
|
|
100
|
-
// Set up a listener for the timeSelect event on the first time picker
|
|
101
|
-
const timeSelectPromise = page.evaluate(() => {
|
|
102
|
-
return new Promise((resolve) => {
|
|
103
|
-
const timePicker = document.querySelector('ix-time-picker');
|
|
104
|
-
timePicker === null || timePicker === void 0 ? void 0 : timePicker.addEventListener('timeSelect', (event) => {
|
|
105
|
-
resolve(event.detail);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
// Click the "Confirm" button on the first time picker
|
|
110
|
-
await page.locator('ix-time-picker').first().locator('ix-button').click();
|
|
111
|
-
// Wait for the event to be fired and get the event detail
|
|
112
|
-
const eventDetail = await timeSelectPromise;
|
|
113
|
-
expect(eventDetail).toBe('09:10:11');
|
|
114
|
-
});
|
|
115
|
-
regressionTest('keyboard navigation should work correctly in the time picker', async ({ page }) => {
|
|
116
|
-
await page.waitForSelector('ix-date-time-card');
|
|
117
|
-
// Focus on the hour element in the second time picker
|
|
118
|
-
const secondPicker = page.locator('ix-time-picker').nth(1);
|
|
119
|
-
await secondPicker
|
|
120
|
-
.locator('[data-element-container-id="hour-10"]')
|
|
121
|
-
.focus();
|
|
122
|
-
// Change hour
|
|
123
|
-
await page.keyboard.press('ArrowDown');
|
|
124
|
-
await page.keyboard.press('Enter');
|
|
125
|
-
// Change minutes
|
|
126
|
-
await page.keyboard.press('ArrowRight');
|
|
127
|
-
await page.keyboard.press('ArrowDown');
|
|
128
|
-
await page.keyboard.press('Enter');
|
|
129
|
-
// Change seconds
|
|
130
|
-
await page.keyboard.press('ArrowRight');
|
|
131
|
-
await page.keyboard.press('ArrowDown');
|
|
132
|
-
await page.keyboard.press('Enter');
|
|
133
|
-
// Change time ref
|
|
134
|
-
await page.keyboard.press('Tab');
|
|
135
|
-
await page.keyboard.press('Tab');
|
|
136
|
-
await page.keyboard.press('Enter');
|
|
137
|
-
expect(await getTimeObjs(page)).toEqual(['09:10:11', '11:12:13 PM']);
|
|
138
|
-
});
|
|
139
|
-
regressionTest('should update scroll position when time value is selected', async ({ page }) => {
|
|
140
|
-
await page.waitForSelector('ix-date-time-card');
|
|
141
|
-
// Get the first time picker
|
|
142
|
-
const firstPicker = page.locator('ix-time-picker').first();
|
|
143
|
-
// Get the initial scroll position of the hour list
|
|
144
|
-
const initialScrollTop = await firstPicker
|
|
145
|
-
.locator('[data-element-list-id="hour"]')
|
|
146
|
-
.evaluate((el) => el.scrollTop);
|
|
147
|
-
await firstPicker.locator('[data-element-container-id="hour-6"]').click();
|
|
148
|
-
// wait for scroll
|
|
149
|
-
await page.waitForTimeout(500);
|
|
150
|
-
const newScrollTop = await firstPicker
|
|
151
|
-
.locator('[data-element-list-id="hour"]')
|
|
152
|
-
.evaluate((el) => el.scrollTop);
|
|
153
|
-
expect(newScrollTop).not.toEqual(initialScrollTop);
|
|
154
|
-
// Verify the scroll follows the scrollPosition calculation
|
|
155
|
-
const isScrollPositionCorrect = await firstPicker
|
|
156
|
-
.locator('[data-element-list-id="hour"]')
|
|
157
|
-
.evaluate((container) => {
|
|
158
|
-
const selectedElement = container.querySelector('[data-element-container-id="hour-6"]');
|
|
159
|
-
const containerHeight = container.clientHeight;
|
|
160
|
-
const elementHeight = selectedElement.clientHeight;
|
|
161
|
-
// This should match the calculation in the elementListScrollToTop method
|
|
162
|
-
const expectedScrollPosition = selectedElement.offsetTop -
|
|
163
|
-
containerHeight / 2 +
|
|
164
|
-
elementHeight / 2 -
|
|
165
|
-
13;
|
|
166
|
-
// Allow small differences due to rounding/margin
|
|
167
|
-
return Math.abs(container.scrollTop - expectedScrollPosition) < 5;
|
|
168
|
-
});
|
|
169
|
-
expect(isScrollPositionCorrect).toBe(true);
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
//# sourceMappingURL=time-picker.ct.js.map
|