@scania/tegel 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/tds-dropdown.cjs.entry.js +17 -13
- package/dist/cjs/tds-header-cell.cjs.entry.js +2 -2
- package/dist/cjs/tds-icon.cjs.entry.js +3 -2
- package/dist/cjs/tds-modal.cjs.entry.js +1 -1
- package/dist/cjs/tegel.cjs.js +1 -1
- package/dist/collection/components/dropdown/dropdown.css +1 -0
- package/dist/collection/components/dropdown/dropdown.js +16 -12
- package/dist/collection/components/icon/icon.js +23 -5
- package/dist/collection/components/modal/modal.css +1 -1
- package/dist/collection/components/table/table-header-cell/table-header-cell.js +13 -10
- package/dist/components/icon.js +4 -2
- package/dist/components/tds-dropdown.js +17 -13
- package/dist/components/tds-header-cell.js +2 -2
- package/dist/components/tds-modal.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/tds-dropdown.entry.js +17 -13
- package/dist/esm/tds-header-cell.entry.js +2 -2
- package/dist/esm/tds-icon.entry.js +3 -2
- package/dist/esm/tds-modal.entry.js +1 -1
- package/dist/esm/tegel.js +1 -1
- package/dist/tegel/p-15f8ac46.entry.js +1 -0
- package/dist/tegel/p-3b597a64.entry.js +1 -0
- package/dist/tegel/{p-6dc8f2dd.entry.js → p-78853c02.entry.js} +1 -1
- package/dist/tegel/p-7d93c35b.entry.js +1 -0
- package/dist/tegel/tegel.esm.js +1 -1
- package/dist/types/components/dropdown/dropdown.d.ts +2 -0
- package/dist/types/components/icon/icon.d.ts +6 -3
- package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +14 -8
- package/dist/types/components.d.ts +20 -12
- package/package.json +1 -1
- package/dist/collection/components/accordion/accordion.stories.js +0 -100
- package/dist/collection/components/accordion/test/basic/accordion.e2e.js +0 -19
- package/dist/collection/components/accordion/test/disabled/accordion.e2e.js +0 -19
- package/dist/collection/components/accordion/test/expanded/accordion.e2e.js +0 -24
- package/dist/collection/components/accordion/test/padding-reset/accordion.e2e.js +0 -24
- package/dist/collection/components/badge/badge.stories.js +0 -106
- package/dist/collection/components/badge/test/basic/badge.e2e.js +0 -10
- package/dist/collection/components/badge/test/value/badge.e2e.js +0 -11
- package/dist/collection/components/banner/banner.stories.js +0 -92
- package/dist/collection/components/banner/test/basic/banner.e2e.js +0 -15
- package/dist/collection/components/banner/test/default/banner.e2e.js +0 -37
- package/dist/collection/components/banner/test/error/banner.e2e.js +0 -15
- package/dist/collection/components/banner/test/information/banner.e2e.js +0 -15
- package/dist/collection/components/block/block.stories.js +0 -49
- package/dist/collection/components/breadcrumbs/breadcrumbs.stories.js +0 -36
- package/dist/collection/components/breadcrumbs/test/default/breadcrumbs.e2e.js +0 -33
- package/dist/collection/components/button/button.stories.js +0 -185
- package/dist/collection/components/button/test/basic/button.e2e.js +0 -35
- package/dist/collection/components/button/test/danger/button.e2e.js +0 -18
- package/dist/collection/components/button/test/disabled/button.e2e.js +0 -24
- package/dist/collection/components/button/test/ghost/button.e2e.js +0 -18
- package/dist/collection/components/button/test/icon/button.e2e.js +0 -38
- package/dist/collection/components/button/test/secondary/button.e2e.js +0 -18
- package/dist/collection/components/card/card.stories.js +0 -163
- package/dist/collection/components/card/test/basic/card.e2e.js +0 -10
- package/dist/collection/components/card/test/clickable/card.e2e.js +0 -21
- package/dist/collection/components/card/test/default/card.e2e.js +0 -33
- package/dist/collection/components/checkbox/checkbox.stories.js +0 -93
- package/dist/collection/components/chip/chip.stories.js +0 -230
- package/dist/collection/components/datetime/datetime.stories.js +0 -219
- package/dist/collection/components/divider/divider.stories.js +0 -62
- package/dist/collection/components/dropdown/dropdown.stories.js +0 -260
- package/dist/collection/components/dropdown/test/basic/dropdown.e2e.js +0 -41
- package/dist/collection/components/dropdown/test/default/dropdown.e2e.js +0 -76
- package/dist/collection/components/dropdown/test/error/dropdown.e2e.js +0 -36
- package/dist/collection/components/dropdown/test/filter/dropdown.e2e.js +0 -56
- package/dist/collection/components/dropdown/test/filter/hide-no-result-message/dropdown.e2e.js +0 -23
- package/dist/collection/components/dropdown/test/filter/normalize-text-false/dropdown.e2e.js +0 -43
- package/dist/collection/components/dropdown/test/multiselect/dropdown.e2e.js +0 -81
- package/dist/collection/components/footer/footer.stories.js +0 -145
- package/dist/collection/components/footer/test/default/footer.e2e.js +0 -34
- package/dist/collection/components/header/header.stories.js +0 -82
- package/dist/collection/components/header/test/default/header.e2e.js +0 -44
- package/dist/collection/components/icon/icon.stories.js +0 -48
- package/dist/collection/components/link/link.stories.js +0 -59
- package/dist/collection/components/message/message.stories.js +0 -109
- package/dist/collection/components/message/test/basic/message.e2e.js +0 -16
- package/dist/collection/components/message/test/error/message.e2e.js +0 -28
- package/dist/collection/components/message/test/information/message.e2e.js +0 -10
- package/dist/collection/components/message/test/success/message.e2e.js +0 -10
- package/dist/collection/components/message/test/warning/message.e2e.js +0 -10
- package/dist/collection/components/modal/modal.stories.js +0 -119
- package/dist/collection/components/modal/test/default/modal.e2e.js +0 -28
- package/dist/collection/components/modal/test/open-close/modal.e2e.js +0 -63
- package/dist/collection/components/modal/test/prevent-true/modal.e2e.js +0 -13
- package/dist/collection/components/popover-canvas/popover-canvas.stories.js +0 -92
- package/dist/collection/components/popover-canvas/test/default/popover-canvas.e2e.js +0 -30
- package/dist/collection/components/popover-canvas/test/show-false/popover-canvas.e2e.js +0 -30
- package/dist/collection/components/popover-canvas/test/show-true/popover-canvas.e2e.js +0 -30
- package/dist/collection/components/popover-menu/popover-menu.stories.js +0 -146
- package/dist/collection/components/popover-menu/test/default/popover-menu.e2e.js +0 -60
- package/dist/collection/components/popover-menu/test/icons-fluid/popover-menu.e2e.js +0 -27
- package/dist/collection/components/popover-menu/test/show/popover-menu.e2e.js +0 -20
- package/dist/collection/components/popover-menu/test/show-false/popover-menu.e2e.js +0 -20
- package/dist/collection/components/radio-button/radio-button.stories.js +0 -91
- package/dist/collection/components/side-menu/side-menu.stories.js +0 -224
- package/dist/collection/components/side-menu/test/collapsible/side-menu.e2e.js +0 -28
- package/dist/collection/components/side-menu/test/default/side-menu.e2e.js +0 -38
- package/dist/collection/components/slider/slider.stories.js +0 -243
- package/dist/collection/components/spinner/spinner.stories.js +0 -61
- package/dist/collection/components/stepper/stepper.stories.js +0 -95
- package/dist/collection/components/table/table/test/batch/table.e2e.js +0 -24
- package/dist/collection/components/table/table/test/default/table.e2e.js +0 -46
- package/dist/collection/components/table/table/test/expandable-row/table.e2e.js +0 -64
- package/dist/collection/components/table/table/test/filtering/table.e2e.js +0 -41
- package/dist/collection/components/table/table/test/multiselect/table.e2e.js +0 -47
- package/dist/collection/components/table/table/test/pagination/table.e2e.js +0 -53
- package/dist/collection/components/table/table/test/sorting/table.e2e.js +0 -36
- package/dist/collection/components/table/table-component-basic.stories.js +0 -184
- package/dist/collection/components/table/table-component-batch-actions.stories.js +0 -188
- package/dist/collection/components/table/table-component-custom-width.stories.js +0 -174
- package/dist/collection/components/table/table-component-expandable-rows.stories.js +0 -160
- package/dist/collection/components/table/table-component-filtering.stories.js +0 -195
- package/dist/collection/components/table/table-component-multiselect.stories.js +0 -211
- package/dist/collection/components/table/table-component-pagination.stories.js +0 -196
- package/dist/collection/components/table/table-component-sorting.stories.js +0 -240
- package/dist/collection/components/tabs/folder-tabs/folder-tabs.stories.js +0 -105
- package/dist/collection/components/tabs/inline-tabs/inline-tabs.stories.js +0 -99
- package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.stories.js +0 -101
- package/dist/collection/components/text-field/text-field.stories.js +0 -247
- package/dist/collection/components/textarea/test/basic/textarea.e2e.js +0 -26
- package/dist/collection/components/textarea/test/default/textarea.e2e.js +0 -34
- package/dist/collection/components/textarea/test/read-only/textarea.e2e.js +0 -26
- package/dist/collection/components/textarea/textarea.stories.js +0 -188
- package/dist/collection/components/toast/toast.stories.js +0 -90
- package/dist/collection/components/toggle/toggle.stories.js +0 -95
- package/dist/collection/components/tooltip/tooltip.stories.js +0 -126
- package/dist/collection/stories/Installation/angular.stories.js +0 -111
- package/dist/collection/stories/Installation/javascript.stories.js +0 -99
- package/dist/collection/stories/Installation/react.stories.js +0 -117
- package/dist/collection/stories/announcements/announce-tegel.stories.js +0 -262
- package/dist/collection/stories/announcements/prefix-change.stories.js +0 -93
- package/dist/collection/stories/formatHtmlPreview.js +0 -10
- package/dist/collection/stories/foundations/color/color-brand.stories.js +0 -38
- package/dist/collection/stories/foundations/color/color-scales.stories.js +0 -71
- package/dist/collection/stories/foundations/color/color-semantic.stories.js +0 -40
- package/dist/collection/stories/foundations/grid/grid.stories.js +0 -386
- package/dist/collection/stories/foundations/spacing/spacing-element.stories.js +0 -100
- package/dist/collection/stories/foundations/spacing/spacing-layout.stories.js +0 -94
- package/dist/collection/stories/foundations/typography/typography-body.stories.js +0 -16
- package/dist/collection/stories/foundations/typography/typography-detail.stories.js +0 -17
- package/dist/collection/stories/foundations/typography/typography-headline.stories.js +0 -39
- package/dist/collection/stories/foundations/typography/typography-paragraph.stories.js +0 -12
- package/dist/collection/stories/patterns/navigation/navigation-basic.stories.js +0 -85
- package/dist/collection/stories/patterns/navigation/navigation-fewitems.stories.js +0 -259
- package/dist/collection/stories/patterns/navigation/navigation-manyitems.stories.js +0 -247
- package/dist/collection/stories/patterns/navigation/navigation-user-menu.stories.js +0 -140
- package/dist/collection/stories/tegel.stories.js +0 -283
- package/dist/collection/stories/utility/color/background-color.stories.js +0 -96
- package/dist/collection/stories/utility/color/text-color.stories.js +0 -94
- package/dist/tegel/p-556600b1.entry.js +0 -1
- package/dist/tegel/p-c6553022.entry.js +0 -1
- package/dist/tegel/p-f801cf0e.entry.js +0 -1
- package/dist/types/components/accordion/accordion.stories.d.ts +0 -77
- package/dist/types/components/badge/badge.stories.d.ts +0 -73
- package/dist/types/components/banner/banner.stories.d.ts +0 -69
- package/dist/types/components/block/block.stories.d.ts +0 -32
- package/dist/types/components/breadcrumbs/breadcrumbs.stories.d.ts +0 -16
- package/dist/types/components/button/button.stories.d.ts +0 -147
- package/dist/types/components/card/card.stories.d.ts +0 -128
- package/dist/types/components/checkbox/checkbox.stories.d.ts +0 -65
- package/dist/types/components/chip/chip.stories.d.ts +0 -99
- package/dist/types/components/datetime/datetime.stories.d.ts +0 -151
- package/dist/types/components/divider/divider.stories.d.ts +0 -58
- package/dist/types/components/dropdown/dropdown.stories.d.ts +0 -205
- package/dist/types/components/footer/footer.stories.d.ts +0 -44
- package/dist/types/components/header/header.stories.d.ts +0 -32
- package/dist/types/components/icon/icon.stories.d.ts +0 -36
- package/dist/types/components/link/link.stories.d.ts +0 -44
- package/dist/types/components/message/message.stories.d.ts +0 -88
- package/dist/types/components/modal/modal.stories.d.ts +0 -78
- package/dist/types/components/popover-canvas/popover-canvas.stories.d.ts +0 -27
- package/dist/types/components/popover-menu/popover-menu.stories.d.ts +0 -51
- package/dist/types/components/radio-button/radio-button.stories.d.ts +0 -39
- package/dist/types/components/side-menu/side-menu.stories.d.ts +0 -65
- package/dist/types/components/slider/slider.stories.d.ts +0 -235
- package/dist/types/components/spinner/spinner.stories.d.ts +0 -46
- package/dist/types/components/stepper/stepper.stories.d.ts +0 -80
- package/dist/types/components/table/table-component-basic.stories.d.ts +0 -144
- package/dist/types/components/table/table-component-batch-actions.stories.d.ts +0 -139
- package/dist/types/components/table/table-component-custom-width.stories.d.ts +0 -131
- package/dist/types/components/table/table-component-expandable-rows.stories.d.ts +0 -131
- package/dist/types/components/table/table-component-filtering.stories.d.ts +0 -131
- package/dist/types/components/table/table-component-multiselect.stories.d.ts +0 -147
- package/dist/types/components/table/table-component-pagination.stories.d.ts +0 -131
- package/dist/types/components/table/table-component-sorting.stories.d.ts +0 -183
- package/dist/types/components/tabs/folder-tabs/folder-tabs.stories.d.ts +0 -69
- package/dist/types/components/tabs/inline-tabs/inline-tabs.stories.d.ts +0 -61
- package/dist/types/components/tabs/navigation-tabs/navigation-tabs.stories.d.ts +0 -61
- package/dist/types/components/text-field/text-field.stories.d.ts +0 -201
- package/dist/types/components/textarea/textarea.stories.d.ts +0 -139
- package/dist/types/components/toast/toast.stories.d.ts +0 -64
- package/dist/types/components/toggle/toggle.stories.d.ts +0 -74
- package/dist/types/components/tooltip/tooltip.stories.d.ts +0 -66
- package/dist/types/stories/Installation/angular.stories.d.ts +0 -6
- package/dist/types/stories/Installation/javascript.stories.d.ts +0 -7
- package/dist/types/stories/Installation/react.stories.d.ts +0 -6
- package/dist/types/stories/announcements/announce-tegel.stories.d.ts +0 -6
- package/dist/types/stories/announcements/prefix-change.stories.d.ts +0 -6
- package/dist/types/stories/formatHtmlPreview.d.ts +0 -2
- package/dist/types/stories/foundations/color/color-brand.stories.d.ts +0 -13
- package/dist/types/stories/foundations/color/color-scales.stories.d.ts +0 -30
- package/dist/types/stories/foundations/color/color-semantic.stories.d.ts +0 -13
- package/dist/types/stories/foundations/grid/grid.stories.d.ts +0 -35
- package/dist/types/stories/foundations/spacing/spacing-element.stories.d.ts +0 -8
- package/dist/types/stories/foundations/spacing/spacing-layout.stories.d.ts +0 -8
- package/dist/types/stories/foundations/typography/typography-body.stories.d.ts +0 -8
- package/dist/types/stories/foundations/typography/typography-detail.stories.d.ts +0 -8
- package/dist/types/stories/foundations/typography/typography-headline.stories.d.ts +0 -21
- package/dist/types/stories/foundations/typography/typography-paragraph.stories.d.ts +0 -8
- package/dist/types/stories/patterns/navigation/navigation-basic.stories.d.ts +0 -23
- package/dist/types/stories/patterns/navigation/navigation-fewitems.stories.d.ts +0 -23
- package/dist/types/stories/patterns/navigation/navigation-manyitems.stories.d.ts +0 -38
- package/dist/types/stories/patterns/navigation/navigation-user-menu.stories.d.ts +0 -33
- package/dist/types/stories/tegel.stories.d.ts +0 -6
- package/dist/types/stories/utility/color/background-color.stories.d.ts +0 -64
- package/dist/types/stories/utility/color/text-color.stories.d.ts +0 -64
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import readme from "./readme.md";
|
|
2
|
-
import readmeDropdownOption from "./dropdown-option/readme.md";
|
|
3
|
-
import formatHtmlPreview from "../../stories/formatHtmlPreview";
|
|
4
|
-
import { ComponentsFolder } from "../../utils/constants";
|
|
5
|
-
export default {
|
|
6
|
-
title: `${ComponentsFolder}/Dropdown`,
|
|
7
|
-
parameters: {
|
|
8
|
-
layout: 'centered',
|
|
9
|
-
notes: { 'Dropdown': readme, 'Dropdown option': readmeDropdownOption },
|
|
10
|
-
design: [
|
|
11
|
-
{
|
|
12
|
-
name: 'Figma',
|
|
13
|
-
type: 'figma',
|
|
14
|
-
url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9754%3A22916&t=M7Ova7xZaoeMwb5e-1',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: 'Link',
|
|
18
|
-
type: 'link',
|
|
19
|
-
url: 'https://www.figma.com/file/d8bTgEx7h694MSesi2CTLF/Tegel-UI-Library?node-id=9754%3A22916&t=M7Ova7xZaoeMwb5e-1',
|
|
20
|
-
},
|
|
21
|
-
],
|
|
22
|
-
},
|
|
23
|
-
argTypes: {
|
|
24
|
-
modeVariant: {
|
|
25
|
-
name: 'Mode variant',
|
|
26
|
-
description: 'Mode variant of the component.',
|
|
27
|
-
control: {
|
|
28
|
-
type: 'radio',
|
|
29
|
-
},
|
|
30
|
-
options: ['Inherit from parent', 'Primary', 'Secondary'],
|
|
31
|
-
table: {
|
|
32
|
-
defaultValue: { summary: 'Inherit from parent' },
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
error: {
|
|
36
|
-
name: 'Error',
|
|
37
|
-
description: 'Sets the Dropdown in an error state.',
|
|
38
|
-
control: {
|
|
39
|
-
type: 'boolean',
|
|
40
|
-
},
|
|
41
|
-
table: {
|
|
42
|
-
defaultValue: { summary: 'false' },
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
filter: {
|
|
46
|
-
name: 'Filter',
|
|
47
|
-
description: 'Adds filter functionality to the Dropdown.',
|
|
48
|
-
control: {
|
|
49
|
-
type: 'boolean',
|
|
50
|
-
},
|
|
51
|
-
table: {
|
|
52
|
-
defaultValue: { summary: 'false' },
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
normalizeText: {
|
|
56
|
-
name: 'Normalize text',
|
|
57
|
-
description: 'Should search be normalized',
|
|
58
|
-
control: {
|
|
59
|
-
type: 'boolean',
|
|
60
|
-
},
|
|
61
|
-
table: {
|
|
62
|
-
defaultValue: { summary: 'true' },
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
multiselect: {
|
|
66
|
-
name: 'Multiselect',
|
|
67
|
-
description: 'Adds multiselect functionality to the Dropdown.',
|
|
68
|
-
control: {
|
|
69
|
-
type: 'boolean',
|
|
70
|
-
},
|
|
71
|
-
table: {
|
|
72
|
-
defaultValue: { summary: 'false' },
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
size: {
|
|
76
|
-
name: 'Size',
|
|
77
|
-
description: 'Size of the Dropdown.',
|
|
78
|
-
control: {
|
|
79
|
-
type: 'radio',
|
|
80
|
-
},
|
|
81
|
-
options: ['Large', 'Medium', 'Small'],
|
|
82
|
-
table: {
|
|
83
|
-
defaultValue: { summary: 'lg' },
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
labelText: {
|
|
87
|
-
name: 'Label text',
|
|
88
|
-
control: 'text',
|
|
89
|
-
description: 'Label text helps to describe what the Dropdown contains',
|
|
90
|
-
if: { arg: 'labelPosition', neq: 'None' },
|
|
91
|
-
},
|
|
92
|
-
labelPosition: {
|
|
93
|
-
name: 'Label position',
|
|
94
|
-
description: 'Label text position',
|
|
95
|
-
control: {
|
|
96
|
-
type: 'radio',
|
|
97
|
-
},
|
|
98
|
-
options: ['Outside', 'Inside', 'None'],
|
|
99
|
-
table: {
|
|
100
|
-
defaultValue: { summary: 'null' },
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
helperText: {
|
|
104
|
-
name: 'Helper text',
|
|
105
|
-
description: 'Helper text assists the user with additional information about the Dropdown.',
|
|
106
|
-
control: 'text',
|
|
107
|
-
},
|
|
108
|
-
placeholder: {
|
|
109
|
-
name: 'Placeholder',
|
|
110
|
-
type: 'string',
|
|
111
|
-
description: 'Placeholder text when no option is selected',
|
|
112
|
-
},
|
|
113
|
-
noResultText: {
|
|
114
|
-
name: 'No result message',
|
|
115
|
-
type: 'string',
|
|
116
|
-
description: 'Message that appears when no results match criteria in filter feature',
|
|
117
|
-
table: {
|
|
118
|
-
defaultValue: { summary: 'No result' },
|
|
119
|
-
},
|
|
120
|
-
control: 'text',
|
|
121
|
-
if: { arg: 'filter', eq: true },
|
|
122
|
-
},
|
|
123
|
-
disabled: {
|
|
124
|
-
name: 'Disabled',
|
|
125
|
-
description: 'Disables the component',
|
|
126
|
-
control: {
|
|
127
|
-
type: 'boolean',
|
|
128
|
-
},
|
|
129
|
-
table: {
|
|
130
|
-
defaultValue: { summary: 'false' },
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
openDirection: {
|
|
134
|
-
name: 'Open direction',
|
|
135
|
-
description: 'The direction the Dropdown will open.',
|
|
136
|
-
control: {
|
|
137
|
-
type: 'radio',
|
|
138
|
-
},
|
|
139
|
-
options: ['Auto', 'Up', 'Down'],
|
|
140
|
-
table: {
|
|
141
|
-
summary: {
|
|
142
|
-
defaultValue: 'auto',
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
defaultOption: {
|
|
147
|
-
name: 'Default options',
|
|
148
|
-
description: 'Sets a pre-selected option.',
|
|
149
|
-
control: {
|
|
150
|
-
type: 'radio',
|
|
151
|
-
},
|
|
152
|
-
options: ['No default', 'Option 1', 'Option 2', 'Option 3'],
|
|
153
|
-
if: { arg: 'multiselect', eq: false },
|
|
154
|
-
},
|
|
155
|
-
multiDefaultOption: {
|
|
156
|
-
name: 'Default options',
|
|
157
|
-
description: 'Sets a pre-selected option.',
|
|
158
|
-
control: {
|
|
159
|
-
type: 'check',
|
|
160
|
-
},
|
|
161
|
-
options: ['Option 1', 'Option 2', 'Option 3', 'Option 4'],
|
|
162
|
-
if: { arg: 'multiselect', eq: true },
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
args: {
|
|
166
|
-
modeVariant: 'Inherit from parent',
|
|
167
|
-
error: false,
|
|
168
|
-
filter: false,
|
|
169
|
-
noResultText: 'No result',
|
|
170
|
-
normalizeText: true,
|
|
171
|
-
multiselect: false,
|
|
172
|
-
size: 'Large',
|
|
173
|
-
labelText: 'Label text',
|
|
174
|
-
labelPosition: 'Outside',
|
|
175
|
-
helperText: 'Helper text',
|
|
176
|
-
placeholder: 'Placeholder',
|
|
177
|
-
disabled: false,
|
|
178
|
-
openDirection: 'Auto',
|
|
179
|
-
defaultOption: 'No default',
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
const sizeLookUp = {
|
|
183
|
-
Large: 'lg',
|
|
184
|
-
Medium: 'md',
|
|
185
|
-
Small: 'sm',
|
|
186
|
-
};
|
|
187
|
-
const defaultOptionLookUp = {
|
|
188
|
-
'Option 1': 'option-1',
|
|
189
|
-
'Option 2': 'option-2',
|
|
190
|
-
'Option 3': 'option-3',
|
|
191
|
-
'Option 4': 'option-4',
|
|
192
|
-
'îles Åland': 'iles-aland',
|
|
193
|
-
};
|
|
194
|
-
const getMultiselectDefaultValue = (multiDefaultOption) => multiDefaultOption.map((item) => defaultOptionLookUp[item]);
|
|
195
|
-
const Template = ({ placeholder, labelText, labelPosition, helperText, size, error, filter, normalizeText, multiselect, openDirection, modeVariant, disabled, defaultOption, multiDefaultOption, noResultText, }) => formatHtmlPreview(`
|
|
196
|
-
<style>
|
|
197
|
-
/* demo-wrapper is for demonstration purposes only*/
|
|
198
|
-
.demo-wrapper {
|
|
199
|
-
width: 300px;
|
|
200
|
-
height:200px;
|
|
201
|
-
}
|
|
202
|
-
.hej {
|
|
203
|
-
margin-top: 79px;
|
|
204
|
-
}
|
|
205
|
-
</style>
|
|
206
|
-
|
|
207
|
-
<div class="demo-wrapper">
|
|
208
|
-
<tds-dropdown
|
|
209
|
-
${defaultOption && defaultOption !== 'No default'
|
|
210
|
-
? `default-value="${defaultOptionLookUp[defaultOption]}"`
|
|
211
|
-
: ''}
|
|
212
|
-
${multiDefaultOption
|
|
213
|
-
? `default-value="${getMultiselectDefaultValue(multiDefaultOption)}"`
|
|
214
|
-
: ''}
|
|
215
|
-
${modeVariant !== 'Inherit from parent' ? `mode-variant="${modeVariant.toLowerCase()}"` : ''}
|
|
216
|
-
name="dropdown"
|
|
217
|
-
label="${labelText}"
|
|
218
|
-
${labelPosition && labelPosition !== 'None'
|
|
219
|
-
? `label-position="${labelPosition.toLowerCase()}"`
|
|
220
|
-
: ''}
|
|
221
|
-
placeholder="${placeholder}"
|
|
222
|
-
helper="${helperText}"
|
|
223
|
-
size="${sizeLookUp[size]}"
|
|
224
|
-
${error ? 'error' : ''}
|
|
225
|
-
${filter ? 'filter' : ''}
|
|
226
|
-
${filter ? `no-result-text="${noResultText}"` : ''}
|
|
227
|
-
${normalizeText ? '' : `normalize-text="false"`}
|
|
228
|
-
${multiselect ? 'multiselect' : ''}
|
|
229
|
-
${disabled ? 'disabled' : ''}
|
|
230
|
-
open-direction="${openDirection.toLowerCase()}"
|
|
231
|
-
>
|
|
232
|
-
<tds-dropdown-option value="option-1">
|
|
233
|
-
Option 1
|
|
234
|
-
</tds-dropdown-option>
|
|
235
|
-
<tds-dropdown-option disabled value="option-2">
|
|
236
|
-
Option 2
|
|
237
|
-
</tds-dropdown-option>
|
|
238
|
-
<tds-dropdown-option value="option-3">
|
|
239
|
-
Option 3
|
|
240
|
-
</tds-dropdown-option>
|
|
241
|
-
<tds-dropdown-option value="option-4">
|
|
242
|
-
Option 4
|
|
243
|
-
</tds-dropdown-option>
|
|
244
|
-
<tds-dropdown-option value="iles-aland">
|
|
245
|
-
îles Åland
|
|
246
|
-
</tds-dropdown-option>
|
|
247
|
-
</tds-dropdown>
|
|
248
|
-
</div>
|
|
249
|
-
|
|
250
|
-
<script>
|
|
251
|
-
dropdown = document.querySelector('tds-dropdown')
|
|
252
|
-
|
|
253
|
-
dropdown.addEventListener('tdsChange', (event) => {
|
|
254
|
-
console.log(event)
|
|
255
|
-
})
|
|
256
|
-
|
|
257
|
-
</script>
|
|
258
|
-
|
|
259
|
-
`);
|
|
260
|
-
export const Default = Template.bind({});
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/basic/index.html';
|
|
4
|
-
test.describe('tds-dropdown-basic', () => {
|
|
5
|
-
test('renders basic dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* check diff in screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('should find label and not exist', async ({ page }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
const labelText = page.getByText(/Label text/);
|
|
15
|
-
await expect(labelText).toHaveCount(0);
|
|
16
|
-
});
|
|
17
|
-
test('find helper text and check not exist', async ({ page }) => {
|
|
18
|
-
await page.goto(componentTestPath);
|
|
19
|
-
const helperText = page.getByText(/Helper text/);
|
|
20
|
-
await expect(helperText).toHaveCount(0);
|
|
21
|
-
});
|
|
22
|
-
test('have the button to be visible', async ({ page }) => {
|
|
23
|
-
await page.goto(componentTestPath);
|
|
24
|
-
const dropdownButton = page.getByRole('button').first();
|
|
25
|
-
await expect(dropdownButton).toBeVisible();
|
|
26
|
-
});
|
|
27
|
-
test('clicking the dropdown button opens the dropdown-list', async ({ page }) => {
|
|
28
|
-
await page.goto(componentTestPath);
|
|
29
|
-
const dropdownButton = page.getByRole('button').first();
|
|
30
|
-
const dropdownListElementOne = page
|
|
31
|
-
.locator('tds-dropdown-option')
|
|
32
|
-
.filter({ hasText: 'Option 1' });
|
|
33
|
-
await expect(dropdownListElementOne).toBeHidden();
|
|
34
|
-
await dropdownButton.click();
|
|
35
|
-
/* before clicking dropdownlist should not be visible, the button should be */
|
|
36
|
-
await expect(dropdownButton).toBeVisible();
|
|
37
|
-
await expect(dropdownListElementOne).toBeVisible();
|
|
38
|
-
/* checks diff on screenshot */
|
|
39
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
40
|
-
});
|
|
41
|
-
});
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/default/index.html';
|
|
4
|
-
test.describe('tds-dropdown-default', () => {
|
|
5
|
-
test('renders default dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* check diff in screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('should find label and be visible', async ({ page }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
const labelText = page.getByText(/Label text/);
|
|
15
|
-
await expect(labelText).toBeVisible();
|
|
16
|
-
});
|
|
17
|
-
test('find helper text and check if visible', async ({ page }) => {
|
|
18
|
-
await page.goto(componentTestPath);
|
|
19
|
-
const helperText = page.getByText(/Helper text/);
|
|
20
|
-
await expect(helperText).toBeVisible();
|
|
21
|
-
});
|
|
22
|
-
test('have the placeholder="Placeholder" text', async ({ page }) => {
|
|
23
|
-
await page.goto(componentTestPath);
|
|
24
|
-
const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
|
|
25
|
-
await expect(dropdownButton).toBeVisible();
|
|
26
|
-
});
|
|
27
|
-
test('clicking the dropdown button opens the dropdown-list', async ({ page }) => {
|
|
28
|
-
await page.goto(componentTestPath);
|
|
29
|
-
const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
|
|
30
|
-
const dropdownListElementOne = page
|
|
31
|
-
.locator('tds-dropdown-option')
|
|
32
|
-
.filter({ hasText: 'Option 1' });
|
|
33
|
-
await expect(dropdownListElementOne).toBeHidden();
|
|
34
|
-
await dropdownButton.click();
|
|
35
|
-
/* before clicking dropdownlist should not be visible, the button should be */
|
|
36
|
-
await expect(dropdownButton).toBeVisible();
|
|
37
|
-
await expect(dropdownListElementOne).toBeVisible();
|
|
38
|
-
/* checks diff on screenshot */
|
|
39
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
40
|
-
});
|
|
41
|
-
test('clicking the dropdown opens the dropdown-list, then click Option 1', async ({ page }) => {
|
|
42
|
-
await page.goto(componentTestPath);
|
|
43
|
-
/* click the dropdown button */
|
|
44
|
-
const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
|
|
45
|
-
await dropdownButton.click();
|
|
46
|
-
/* Click the Option 1 button */
|
|
47
|
-
const dropdownListElementOneButton = page
|
|
48
|
-
.locator('tds-dropdown-option')
|
|
49
|
-
.filter({ hasText: /Option 1/ })
|
|
50
|
-
.getByRole('button');
|
|
51
|
-
await dropdownListElementOneButton.click();
|
|
52
|
-
await expect(dropdownListElementOneButton).toBeHidden();
|
|
53
|
-
const dropdownButtonWithOption1 = page.getByRole('button', { name: 'Option 1' });
|
|
54
|
-
await expect(dropdownButtonWithOption1.first()).toBeVisible();
|
|
55
|
-
/* also check screenshot diff to make sure it says Option 1 */
|
|
56
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
57
|
-
});
|
|
58
|
-
test('clicking the dropdown opens the dropdown-list, then click an option 2 that is disabled should not close it', async ({ page, }) => {
|
|
59
|
-
await page.goto(componentTestPath);
|
|
60
|
-
const dropdownListElementTwoButton = page
|
|
61
|
-
.locator('tds-dropdown-option')
|
|
62
|
-
.filter({ hasText: /Option 2/ });
|
|
63
|
-
const dropdownButtonElement = page.getByRole('button', { name: 'Placeholder' });
|
|
64
|
-
/* before clicking dropdownlist should not be visible, the button should be */
|
|
65
|
-
await expect(dropdownButtonElement).toBeVisible();
|
|
66
|
-
await expect(dropdownListElementTwoButton).toBeHidden();
|
|
67
|
-
/* after clicking dropdownlist should be visible, the button should also be */
|
|
68
|
-
await dropdownButtonElement.click();
|
|
69
|
-
await expect(dropdownButtonElement).toBeVisible();
|
|
70
|
-
await expect(dropdownListElementTwoButton).toBeVisible();
|
|
71
|
-
/* after clicking option 2 that is disabled list should be visible and also button should be */
|
|
72
|
-
await dropdownListElementTwoButton.click();
|
|
73
|
-
await expect(dropdownButtonElement).toBeVisible();
|
|
74
|
-
await expect(dropdownListElementTwoButton).toBeVisible();
|
|
75
|
-
});
|
|
76
|
-
});
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/error/index.html';
|
|
4
|
-
test.describe('tds-dropdown-error', () => {
|
|
5
|
-
test('renders error dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* Check diff on screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('find helper text and check if visible and have icon', async ({ page }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
const helperText = page.getByText(/Helper text/);
|
|
15
|
-
await expect(helperText).toBeVisible();
|
|
16
|
-
const helperTextIcon = helperText.getByRole('img');
|
|
17
|
-
await expect(helperTextIcon).toHaveCount(1);
|
|
18
|
-
});
|
|
19
|
-
test('clicking the dropdown opens the dropdown-list', async ({ page }) => {
|
|
20
|
-
await page.goto(componentTestPath);
|
|
21
|
-
const dropdownListElementOneButton = page
|
|
22
|
-
.locator('tds-dropdown-option')
|
|
23
|
-
.filter({ hasText: /Option 1/ })
|
|
24
|
-
.getByRole('button');
|
|
25
|
-
const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
|
|
26
|
-
/* before clicking dropdownlist should not be visible, the button should be */
|
|
27
|
-
await expect(dropdownButton).toBeVisible();
|
|
28
|
-
await expect(dropdownListElementOneButton).toBeHidden();
|
|
29
|
-
await dropdownButton.click();
|
|
30
|
-
/* after clicking dropdownlist should be visible, the button should also be */
|
|
31
|
-
await expect(dropdownButton).toBeVisible();
|
|
32
|
-
await expect(dropdownListElementOneButton).toBeVisible();
|
|
33
|
-
/* check diff on screenshot */
|
|
34
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
35
|
-
});
|
|
36
|
-
});
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/filter/index.html';
|
|
4
|
-
test.describe('tds-dropdown-filter', () => {
|
|
5
|
-
test('renders filter dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* Check diff on screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('clicking the dropdown opens the dropdown-list, then start typing "iles" to only show that option in the dropdown list', async ({ page, }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
const inputElement = page.getByRole('textbox');
|
|
15
|
-
const dropdownListElementOneButton = page
|
|
16
|
-
.locator('tds-dropdown-option')
|
|
17
|
-
.filter({ hasText: /Option 1/ });
|
|
18
|
-
const dropdownListElementTwoButton = page
|
|
19
|
-
.locator('tds-dropdown-option')
|
|
20
|
-
.filter({ hasText: /Option 2/ });
|
|
21
|
-
const dropdownListElementThreeButton = page
|
|
22
|
-
.locator('tds-dropdown-option')
|
|
23
|
-
.filter({ hasText: /Option 3/ });
|
|
24
|
-
const dropdownListElementFourButton = page
|
|
25
|
-
.locator('tds-dropdown-option')
|
|
26
|
-
.filter({ hasText: /Option 4/ });
|
|
27
|
-
const dropdownListElementFiveButton = page
|
|
28
|
-
.locator('tds-dropdown-option')
|
|
29
|
-
.filter({ hasText: /îles Åland/ });
|
|
30
|
-
/* before clicking dropdownlist should not be visible, the button should be */
|
|
31
|
-
await expect(inputElement).toBeVisible();
|
|
32
|
-
await expect(dropdownListElementOneButton).toBeHidden();
|
|
33
|
-
await expect(dropdownListElementTwoButton).toBeHidden();
|
|
34
|
-
await expect(dropdownListElementThreeButton).toBeHidden();
|
|
35
|
-
await expect(dropdownListElementFourButton).toBeHidden();
|
|
36
|
-
await expect(dropdownListElementFiveButton).toBeHidden();
|
|
37
|
-
/* Clicking the input element should show the dropdown list and all its content */
|
|
38
|
-
await inputElement.click();
|
|
39
|
-
await expect(inputElement).toBeVisible();
|
|
40
|
-
await expect(dropdownListElementOneButton).toBeVisible();
|
|
41
|
-
await expect(dropdownListElementTwoButton).toBeVisible();
|
|
42
|
-
await expect(dropdownListElementThreeButton).toBeVisible();
|
|
43
|
-
await expect(dropdownListElementFourButton).toBeVisible();
|
|
44
|
-
await expect(dropdownListElementFiveButton).toBeVisible();
|
|
45
|
-
/* Add text and only Option 1 should be visible */
|
|
46
|
-
await inputElement.fill('iles');
|
|
47
|
-
await expect(inputElement).toBeVisible();
|
|
48
|
-
await expect(dropdownListElementOneButton).toBeHidden();
|
|
49
|
-
await expect(dropdownListElementTwoButton).toBeHidden();
|
|
50
|
-
await expect(dropdownListElementThreeButton).toBeHidden();
|
|
51
|
-
await expect(dropdownListElementFourButton).toBeHidden();
|
|
52
|
-
await expect(dropdownListElementFiveButton).toBeVisible();
|
|
53
|
-
/* Check diff on screenshot after adding text */
|
|
54
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
55
|
-
});
|
|
56
|
-
});
|
package/dist/collection/components/dropdown/test/filter/hide-no-result-message/dropdown.e2e.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/filter/hide-no-result-message/index.html';
|
|
4
|
-
test.describe('tds-dropdown-filter', () => {
|
|
5
|
-
test('renders filter dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* Check diff on screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('typing non existing value does not show "No results!" message', async ({ page }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
const inputElement = page.getByRole('textbox');
|
|
15
|
-
/* Add text and only Option 1 should be visible */
|
|
16
|
-
await inputElement.fill('Johnny looks for no results message');
|
|
17
|
-
await expect(inputElement).toBeVisible();
|
|
18
|
-
const noResult = page.getByText('No result');
|
|
19
|
-
await expect(noResult).toBeHidden();
|
|
20
|
-
/* Check diff on screenshot after adding text */
|
|
21
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
22
|
-
});
|
|
23
|
-
});
|
package/dist/collection/components/dropdown/test/filter/normalize-text-false/dropdown.e2e.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/filter/normalize-text-false/index.html';
|
|
4
|
-
test.describe('tds-dropdown-filter', () => {
|
|
5
|
-
test('renders filter dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* Check diff on screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('typing "iles" should not show anything in dropdown with normalize text set to false', async ({ page, }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
const inputElement = page.getByRole('textbox');
|
|
15
|
-
const dropdownListElementOneButton = page
|
|
16
|
-
.locator('tds-dropdown-option')
|
|
17
|
-
.filter({ hasText: /Option 1/ });
|
|
18
|
-
const dropdownListElementTwoButton = page
|
|
19
|
-
.locator('tds-dropdown-option')
|
|
20
|
-
.filter({ hasText: /Option 2/ });
|
|
21
|
-
const dropdownListElementThreeButton = page
|
|
22
|
-
.locator('tds-dropdown-option')
|
|
23
|
-
.filter({ hasText: /Option 3/ });
|
|
24
|
-
const dropdownListElementFourButton = page
|
|
25
|
-
.locator('tds-dropdown-option')
|
|
26
|
-
.filter({ hasText: /Option 4/ });
|
|
27
|
-
const dropdownListElementFiveButton = page
|
|
28
|
-
.locator('tds-dropdown-option')
|
|
29
|
-
.filter({ hasText: /îles Åland/ });
|
|
30
|
-
/* Add text and only Option 1 should be visible */
|
|
31
|
-
await inputElement.fill('iles');
|
|
32
|
-
await expect(inputElement).toBeVisible();
|
|
33
|
-
await expect(dropdownListElementOneButton).toBeHidden();
|
|
34
|
-
await expect(dropdownListElementTwoButton).toBeHidden();
|
|
35
|
-
await expect(dropdownListElementThreeButton).toBeHidden();
|
|
36
|
-
await expect(dropdownListElementFourButton).toBeHidden();
|
|
37
|
-
await expect(dropdownListElementFiveButton).toBeHidden();
|
|
38
|
-
const noResult = page.getByText('No result');
|
|
39
|
-
await expect(noResult).toBeVisible();
|
|
40
|
-
/* Check diff on screenshot after adding text */
|
|
41
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
42
|
-
});
|
|
43
|
-
});
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { test } from "stencil-playwright";
|
|
2
|
-
import { expect } from "@playwright/test";
|
|
3
|
-
const componentTestPath = 'src/components/dropdown/test/multiselect/index.html';
|
|
4
|
-
test.describe('tds-dropdown-multiselect', () => {
|
|
5
|
-
test('renders multiselect dropdown correctly', async ({ page }) => {
|
|
6
|
-
await page.goto(componentTestPath);
|
|
7
|
-
const dropdown = page.getByTestId('tds-dropdown-testid');
|
|
8
|
-
await expect(dropdown).toHaveCount(1);
|
|
9
|
-
/* Check diff on screenshot */
|
|
10
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
11
|
-
});
|
|
12
|
-
test('clicking the dropdown opens the dropdown-list, then click Option 1, should not close it', async ({ page, }) => {
|
|
13
|
-
await page.goto(componentTestPath);
|
|
14
|
-
/* click the dropdown button */
|
|
15
|
-
const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
|
|
16
|
-
await dropdownButton.click();
|
|
17
|
-
/* Click the Option 1 button */
|
|
18
|
-
const dropdownListElementOneButton = page
|
|
19
|
-
.locator('tds-dropdown-option')
|
|
20
|
-
.filter({ hasText: /Option 1/ });
|
|
21
|
-
await dropdownListElementOneButton.click();
|
|
22
|
-
await expect(dropdownListElementOneButton).toBeVisible();
|
|
23
|
-
const dropdownButtonWithOption1 = page.getByRole('button', { name: 'Option 1' });
|
|
24
|
-
await expect(dropdownButtonWithOption1.first()).toBeVisible();
|
|
25
|
-
/* also check screenshot diff to make sure it says Option 1 */
|
|
26
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
27
|
-
});
|
|
28
|
-
test('clicking the dropdown opens the dropdown-list, then click on all the options', async ({ page, }) => {
|
|
29
|
-
await page.goto(componentTestPath);
|
|
30
|
-
/* click the button */
|
|
31
|
-
const dropdownButton = page.getByRole('button', { name: 'Placeholder' });
|
|
32
|
-
await dropdownButton.click();
|
|
33
|
-
/* get all checkboxes */
|
|
34
|
-
const dropdownListElementOneButton = page
|
|
35
|
-
.getByText(/Option 1/)
|
|
36
|
-
.filter({ has: page.getByRole('checkbox') });
|
|
37
|
-
const dropdownListElementTwoButton = page
|
|
38
|
-
.getByText(/Option 2/)
|
|
39
|
-
.filter({ has: page.getByRole('checkbox') });
|
|
40
|
-
const dropdownListElementThreeButton = page
|
|
41
|
-
.getByText(/Option 3/)
|
|
42
|
-
.filter({ has: page.getByRole('checkbox') });
|
|
43
|
-
const dropdownListElementFourButton = page
|
|
44
|
-
.getByText(/Option 4/)
|
|
45
|
-
.filter({ has: page.getByRole('checkbox') });
|
|
46
|
-
await expect(dropdownListElementOneButton).toHaveCount(1);
|
|
47
|
-
await expect(dropdownListElementTwoButton).toHaveCount(1);
|
|
48
|
-
await expect(dropdownListElementThreeButton).toHaveCount(1);
|
|
49
|
-
await expect(dropdownListElementFourButton).toHaveCount(1);
|
|
50
|
-
/* check each one and see that it updates correctly */
|
|
51
|
-
await dropdownListElementOneButton.click();
|
|
52
|
-
await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
|
|
53
|
-
await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
|
|
54
|
-
await expect(dropdownListElementThreeButton).not.toHaveAttribute('aria-selected');
|
|
55
|
-
await expect(dropdownListElementFourButton).not.toHaveAttribute('aria-selected');
|
|
56
|
-
const inputText = page.getByRole('button', { name: /Option 1/ });
|
|
57
|
-
await expect(inputText).toHaveCount(1);
|
|
58
|
-
await dropdownListElementTwoButton.click();
|
|
59
|
-
await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
|
|
60
|
-
await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
|
|
61
|
-
await expect(dropdownListElementThreeButton).not.toHaveAttribute('aria-selected');
|
|
62
|
-
await expect(dropdownListElementFourButton).not.toHaveAttribute('aria-selected');
|
|
63
|
-
await expect(inputText).toHaveCount(1);
|
|
64
|
-
await dropdownListElementThreeButton.click();
|
|
65
|
-
await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
|
|
66
|
-
await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
|
|
67
|
-
await expect(dropdownListElementThreeButton).toHaveAttribute('aria-selected');
|
|
68
|
-
await expect(dropdownListElementFourButton).not.toHaveAttribute('aria-selected');
|
|
69
|
-
const inputText2 = page.getByRole('button', { name: /Option 1,Option 3/ });
|
|
70
|
-
await expect(inputText2).toHaveCount(1);
|
|
71
|
-
await dropdownListElementFourButton.click();
|
|
72
|
-
await expect(dropdownListElementOneButton).toHaveAttribute('aria-selected');
|
|
73
|
-
await expect(dropdownListElementTwoButton).not.toHaveAttribute('aria-selected');
|
|
74
|
-
await expect(dropdownListElementThreeButton).toHaveAttribute('aria-selected');
|
|
75
|
-
await expect(dropdownListElementFourButton).toHaveAttribute('aria-selected');
|
|
76
|
-
const inputText3 = page.getByRole('button', { name: /Option 1,Option 3,Option 4/ });
|
|
77
|
-
await expect(inputText3).toHaveCount(1);
|
|
78
|
-
/* also check screenshot diff to make sure */
|
|
79
|
-
await expect(page).toHaveScreenshot({ maxDiffPixels: 0 });
|
|
80
|
-
});
|
|
81
|
-
});
|