xmlui 0.10.18 → 0.10.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/lib/{apiInterceptorWorker-DPgtUtdA.mjs → apiInterceptorWorker-QiltRtq1.mjs} +1 -1
  2. package/dist/lib/{index-Cy6Emsex.mjs → index-Ckhnrf1F.mjs} +1093 -714
  3. package/dist/lib/index.css +1 -1
  4. package/dist/{metadata/initMock-D0wDKF_I.mjs → lib/initMock-qnCFw6Zc.mjs} +25 -15
  5. package/dist/lib/language-server-web-worker.mjs +1 -1
  6. package/dist/lib/language-server.mjs +1 -1
  7. package/dist/lib/{metadata-utils-CtY0QcvH.mjs → metadata-utils-BTIt1_wE.mjs} +1 -1
  8. package/dist/lib/{server-common-Cine5nRR.mjs → server-common-DYZtsdM7.mjs} +51 -14
  9. package/dist/lib/{transform-bHBjkKSL.mjs → transform-Tooy42EB.mjs} +16 -18
  10. package/dist/lib/xmlui-parser.mjs +2 -2
  11. package/dist/lib/{xmlui-serializer-DB6BLiXK.mjs → xmlui-serializer-uCYa8_tZ.mjs} +1 -1
  12. package/dist/lib/xmlui.d.ts +11 -3
  13. package/dist/lib/xmlui.mjs +2 -2
  14. package/dist/metadata/{apiInterceptorWorker-BmKP8bnq.mjs → apiInterceptorWorker-Dql7QGw2.mjs} +1 -1
  15. package/dist/metadata/{collectedComponentMetadata-CB63ngkU.mjs → collectedComponentMetadata-Dg7P-zOz.mjs} +1071 -701
  16. package/dist/{lib/initMock-B-rmnC-t.mjs → metadata/initMock-ZyyFNOpL.mjs} +25 -15
  17. package/dist/metadata/style.css +1 -1
  18. package/dist/metadata/xmlui-metadata.mjs +1 -1
  19. package/dist/metadata/xmlui-metadata.umd.js +3 -3
  20. package/dist/scripts/package.json +1 -1
  21. package/dist/scripts/src/components/Animation/AnimationNative.js +28 -28
  22. package/dist/scripts/src/components/App/App.spec.js +17 -17
  23. package/dist/scripts/src/components/AppState/AppState.js +3 -2
  24. package/dist/scripts/src/components/AppState/AppState.spec.js +26 -2
  25. package/dist/scripts/src/components/AppState/AppStateNative.js +3 -4
  26. package/dist/scripts/src/components/AutoComplete/AutoComplete.js +15 -10
  27. package/dist/scripts/src/components/AutoComplete/AutoComplete.spec.js +25 -4
  28. package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +4 -4
  29. package/dist/scripts/src/components/Carousel/Carousel.spec.js +214 -0
  30. package/dist/scripts/src/components/Checkbox/Checkbox.spec.js +5 -0
  31. package/dist/scripts/src/components/CodeBlock/CodeBlockNative.js +1 -1
  32. package/dist/scripts/src/components/ContentSeparator/ContentSeparator.js +2 -0
  33. package/dist/scripts/src/components/ContentSeparator/ContentSeparator.spec.js +193 -0
  34. package/dist/scripts/src/components/DateInput/DateInput.spec.js +28 -23
  35. package/dist/scripts/src/components/DatePicker/DatePicker.js +14 -9
  36. package/dist/scripts/src/components/DatePicker/DatePicker.spec.js +21 -18
  37. package/dist/scripts/src/components/DatePicker/DatePickerNative.js +24 -21
  38. package/dist/scripts/src/components/DropdownMenu/DropdownMenu.spec.js +3 -3
  39. package/dist/scripts/src/components/FileInput/FileInput.spec.js +7 -0
  40. package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZoneNative.js +4 -13
  41. package/dist/scripts/src/components/Form/Form.spec.js +25 -9
  42. package/dist/scripts/src/components/Form/FormNative.js +7 -4
  43. package/dist/scripts/src/components/FormItem/FormItem.js +3 -1
  44. package/dist/scripts/src/components/FormItem/FormItem.spec.js +5 -14
  45. package/dist/scripts/src/components/FormItem/FormItemNative.js +12 -8
  46. package/dist/scripts/src/components/FormItem/Validations.js +2 -2
  47. package/dist/scripts/src/components/Icon/Icon.js +1 -1
  48. package/dist/scripts/src/components/IconRegistryContext.js +1 -1
  49. package/dist/scripts/src/components/List/ListNative.js +2 -2
  50. package/dist/scripts/src/components/ModalDialog/ConfirmationModalContextProvider.js +3 -12
  51. package/dist/scripts/src/components/ModalDialog/ModalDialog.js +2 -2
  52. package/dist/scripts/src/components/ModalDialog/ModalDialogNative.js +6 -3
  53. package/dist/scripts/src/components/NestedApp/AppWithCodeViewNative.js +1 -1
  54. package/dist/scripts/src/components/NestedApp/NestedAppNative.js +3 -3
  55. package/dist/scripts/src/components/NumberBox/NumberBox.spec.js +7 -2
  56. package/dist/scripts/src/components/Pagination/Pagination.spec.js +5 -0
  57. package/dist/scripts/src/components/Pagination/PaginationNative.js +1 -3
  58. package/dist/scripts/src/components/Queue/Queue.spec.js +45 -47
  59. package/dist/scripts/src/components/Queue/QueueNative.js +1 -1
  60. package/dist/scripts/src/components/RadioGroup/RadioGroup.spec.js +14 -5
  61. package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapterNative.js +1 -1
  62. package/dist/scripts/src/components/Select/MultiSelectOption.js +42 -0
  63. package/dist/scripts/src/components/Select/Select.js +3 -3
  64. package/dist/scripts/src/components/Select/Select.spec.js +286 -217
  65. package/dist/scripts/src/components/Select/SelectContext.js +8 -1
  66. package/dist/scripts/src/components/Select/SelectNative.js +134 -142
  67. package/dist/scripts/src/components/Select/SelectOption.js +34 -0
  68. package/dist/scripts/src/components/Select/SimpleSelect.js +57 -0
  69. package/dist/scripts/src/components/Slider/Slider.spec.js +7 -0
  70. package/dist/scripts/src/components/Spinner/Spinner.spec.js +1 -1
  71. package/dist/scripts/src/components/Switch/Switch.spec.js +24 -17
  72. package/dist/scripts/src/components/Table/Table.js +11 -1
  73. package/dist/scripts/src/components/Table/Table.spec.js +272 -0
  74. package/dist/scripts/src/components/Table/TableNative.js +162 -5
  75. package/dist/scripts/src/components/Table/useRowSelection.js +14 -23
  76. package/dist/scripts/src/components/TextArea/TextArea.spec.js +59 -8
  77. package/dist/scripts/src/components/TextBox/TextBox.spec.js +7 -0
  78. package/dist/scripts/src/components/Theme/Theme.js +2 -1
  79. package/dist/scripts/src/components/Theme/Theme.spec.js +266 -0
  80. package/dist/scripts/src/components/Theme/ThemeNative.js +8 -1
  81. package/dist/scripts/src/components/TimeInput/TimeInput.spec.js +47 -40
  82. package/dist/scripts/src/components/TimeInput/TimeInputNative.js +6 -20
  83. package/dist/scripts/src/components/Toggle/Toggle.js +3 -1
  84. package/dist/scripts/src/components/Tree/TreeNative.js +9 -11
  85. package/dist/scripts/src/components-core/InspectorContext.js +1 -1
  86. package/dist/scripts/src/components-core/StandaloneApp.js +6 -8
  87. package/dist/scripts/src/components-core/action/FileUploadAction.js +1 -1
  88. package/dist/scripts/src/components-core/behaviors/BehaviorContext.js +50 -0
  89. package/dist/scripts/src/components-core/behaviors/CoreBehaviors.js +6 -1
  90. package/dist/scripts/src/components-core/interception/ApiInterceptor.js +9 -11
  91. package/dist/scripts/src/components-core/interception/ApiInterceptorProvider.js +3 -3
  92. package/dist/scripts/src/components-core/interception/Backend.js +1 -1
  93. package/dist/scripts/src/components-core/interception/IndexedDb.js +64 -66
  94. package/dist/scripts/src/components-core/interception/apiInterceptorWorker.js +2 -2
  95. package/dist/scripts/src/components-core/loader/DataLoader.js +6 -14
  96. package/dist/scripts/src/components-core/loader/Loader.js +11 -11
  97. package/dist/scripts/src/components-core/loader/MockLoaderRenderer.js +4 -2
  98. package/dist/scripts/src/components-core/loader/PageableLoader.js +10 -9
  99. package/dist/scripts/src/components-core/rendering/AppContent.js +1 -7
  100. package/dist/scripts/src/components-core/rendering/ErrorBoundary.js +1 -1
  101. package/dist/scripts/src/components-core/script-runner/bannedFunctions.js +1 -1
  102. package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +180 -186
  103. package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +6 -6
  104. package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +2 -2
  105. package/dist/scripts/src/components-core/utils/actionUtils.js +1 -1
  106. package/dist/scripts/src/components-core/utils/hooks.js +1 -1
  107. package/dist/scripts/src/components-core/utils/misc.js +4 -4
  108. package/dist/scripts/src/components-core/xmlui-parser.js +47 -31
  109. package/dist/scripts/src/language-server/server-common.js +25 -24
  110. package/dist/scripts/src/language-server/services/common/lsp-utils.js +2 -2
  111. package/dist/scripts/src/language-server/services/completion.js +20 -2
  112. package/dist/scripts/src/language-server/services/diagnostic.js +1 -1
  113. package/dist/scripts/src/language-server/services/hover.js +2 -2
  114. package/dist/scripts/src/parsers/common/utils.js +2 -2
  115. package/dist/scripts/src/parsers/scripting/Lexer.js +21 -15
  116. package/dist/scripts/src/parsers/scripting/Parser.js +8 -9
  117. package/dist/scripts/src/parsers/style-parser/StyleLexer.js +22 -22
  118. package/dist/scripts/src/parsers/style-parser/StyleParser.js +70 -68
  119. package/dist/scripts/src/testing/ComponentDrivers.js +20 -39
  120. package/dist/scripts/src/testing/component-test-helpers.js +34 -50
  121. package/dist/scripts/src/testing/fixtures.js +114 -113
  122. package/dist/scripts/src/testing/themed-app-test-helpers.js +7 -13
  123. package/dist/standalone/xmlui-standalone.es.d.ts +11 -3
  124. package/dist/standalone/xmlui-standalone.umd.js +34 -34
  125. package/package.json +1 -1
@@ -10,21 +10,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const fixtures_1 = require("../../testing/fixtures");
13
- (0, fixtures_1.test)("dynamic options displayed with Items component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver, page, }) {
14
- yield initTestBed(`
15
- <Select>
16
- <Items data="{['One', 'Two', 'Three']}" >
17
- <Option value="{$itemIndex}" label="{$item}" />
18
- </Items>
19
- </Select>`);
20
- const driver = yield createSelectDriver();
21
- yield driver.click();
22
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
23
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
24
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Three" })).toBeVisible();
25
- }));
26
- (0, fixtures_1.test)("changing selected option in form", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver }) {
27
- yield initTestBed(`
13
+ // =============================================================================
14
+ // BASIC FUNCTIONALITY TESTS
15
+ // =============================================================================
16
+ fixtures_1.test.describe("Basic Functionality", () => {
17
+ // --- Component rendering
18
+ (0, fixtures_1.test)("dynamic options displayed with Items component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver, page, }) {
19
+ yield initTestBed(`
20
+ <Select>
21
+ <Items data="{['One', 'Two', 'Three']}" >
22
+ <Option value="{$itemIndex}" label="{$item}" />
23
+ </Items>
24
+ </Select>`);
25
+ const driver = yield createSelectDriver();
26
+ yield driver.click();
27
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
28
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
29
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Three" })).toBeVisible();
30
+ }));
31
+ (0, fixtures_1.test)("changing selected option in form", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver }) {
32
+ yield initTestBed(`
28
33
  <Form data="{{sel: 'opt1'}}">
29
34
  <FormItem testId="mySelect" type="select" bindTo="sel">
30
35
  <Option value="opt1" label="first"/>
@@ -32,14 +37,15 @@ const fixtures_1 = require("../../testing/fixtures");
32
37
  <Option value="opt3" label="third"/>
33
38
  </FormItem>
34
39
  </Form>`);
35
- const driver = yield createSelectDriver("mySelect");
36
- yield (0, fixtures_1.expect)(driver.component.locator("select")).toHaveValue("opt1");
37
- yield driver.toggleOptionsVisibility();
38
- yield driver.selectLabel("second");
39
- yield (0, fixtures_1.expect)(driver.component.locator("select")).toHaveValue("opt2");
40
- }));
41
- (0, fixtures_1.test)("initialValue set to first valid value", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
42
- yield initTestBed(`
40
+ const driver = yield createSelectDriver("mySelect");
41
+ yield (0, fixtures_1.expect)(driver.component.locator("select")).toHaveValue("opt1");
42
+ yield driver.toggleOptionsVisibility();
43
+ yield driver.selectLabel("second");
44
+ yield (0, fixtures_1.expect)(driver.component.locator("select")).toHaveValue("opt2");
45
+ }));
46
+ // --- initialValue prop
47
+ (0, fixtures_1.test)("initialValue set to first valid value", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
48
+ yield initTestBed(`
43
49
  <Fragment>
44
50
  <Select id="mySelect" initialValue="{0}">
45
51
  <Option value="{0}" label="Zero"/>
@@ -49,12 +55,12 @@ const fixtures_1 = require("../../testing/fixtures");
49
55
  <Text testId="text">Selected value: {mySelect.value}</Text>
50
56
  </Fragment>
51
57
  `);
52
- yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
53
- yield (0, fixtures_1.expect)(page.getByText("Zero", { exact: true })).toBeVisible();
54
- yield (0, fixtures_1.expect)(page.getByText("One", { exact: true })).not.toBeVisible();
55
- }));
56
- (0, fixtures_1.test)("initialValue set to non-existant option", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
57
- yield initTestBed(`
58
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
59
+ yield (0, fixtures_1.expect)(page.getByText("Zero", { exact: true })).toBeVisible();
60
+ yield (0, fixtures_1.expect)(page.getByText("One", { exact: true })).not.toBeVisible();
61
+ }));
62
+ (0, fixtures_1.test)("initialValue set to non-existant option", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
63
+ yield initTestBed(`
58
64
  <Fragment>
59
65
  <Select id="mySelect" initialValue="{42}">
60
66
  <Option value="{0}" label="Zero"/>
@@ -64,10 +70,10 @@ const fixtures_1 = require("../../testing/fixtures");
64
70
  <Text testId="text">Selected value: {mySelect.value}</Text>
65
71
  </Fragment>
66
72
  `);
67
- yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 42");
68
- }));
69
- (0, fixtures_1.test)("reset works with initialValue", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
70
- yield initTestBed(`
73
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 42");
74
+ }));
75
+ (0, fixtures_1.test)("reset works with initialValue", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
76
+ yield initTestBed(`
71
77
  <Fragment>
72
78
  <Select id="mySelect" initialValue="{0}">
73
79
  <Option value="{0}" label="Zero"/>
@@ -77,17 +83,17 @@ const fixtures_1 = require("../../testing/fixtures");
77
83
  <Button id="resetBtn" label="reset" onClick="mySelect.reset()"/>
78
84
  <Text testId="text">Selected value: {mySelect.value}</Text>
79
85
  </Fragment>
80
- `);
81
- const selectDrv = yield createSelectDriver("mySelect");
82
- yield selectDrv.toggleOptionsVisibility();
83
- yield selectDrv.selectLabel("One");
84
- yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1");
85
- const btnDriver = yield createButtonDriver("resetBtn");
86
- yield btnDriver.click();
87
- yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
88
- }));
89
- (0, fixtures_1.test)("reset works with no intialValue", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
90
- yield initTestBed(`
86
+ `);
87
+ const selectDrv = yield createSelectDriver("mySelect");
88
+ yield selectDrv.toggleOptionsVisibility();
89
+ yield selectDrv.selectLabel("One");
90
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1");
91
+ const btnDriver = yield createButtonDriver("resetBtn");
92
+ yield btnDriver.click();
93
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
94
+ }));
95
+ (0, fixtures_1.test)("reset works with no intialValue", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
96
+ yield initTestBed(`
91
97
  <Fragment>
92
98
  <Select id="mySelect">
93
99
  <Option value="{0}" label="Zero"/>
@@ -97,88 +103,90 @@ const fixtures_1 = require("../../testing/fixtures");
97
103
  <Button id="resetBtn" label="reset" onClick="mySelect.reset()"/>
98
104
  <Text testId="text">Selected value: {mySelect.value}</Text>
99
105
  </Fragment>
100
- `);
101
- const selectDrv = yield createSelectDriver("mySelect");
102
- yield selectDrv.toggleOptionsVisibility();
103
- yield selectDrv.selectLabel("One");
104
- yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1");
105
- const btnDriver = yield createButtonDriver("resetBtn");
106
- yield btnDriver.click();
107
- yield (0, fixtures_1.expect)(page.getByTestId("text")).not.toContainText("1");
108
- }));
109
- (0, fixtures_1.test)("disabled Select cannot be opened", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, createSelectDriver, initTestBed }) {
110
- yield initTestBed(`
106
+ `);
107
+ const selectDrv = yield createSelectDriver("mySelect");
108
+ yield selectDrv.toggleOptionsVisibility();
109
+ yield selectDrv.selectLabel("One");
110
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1");
111
+ const btnDriver = yield createButtonDriver("resetBtn");
112
+ yield btnDriver.click();
113
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).not.toContainText("1");
114
+ }));
115
+ // --- enabled prop
116
+ (0, fixtures_1.test)("disabled Select cannot be opened", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, createSelectDriver, initTestBed }) {
117
+ yield initTestBed(`
111
118
  <Select enabled="{false}">
112
119
  <Option value="1" label="One"/>
113
120
  <Option value="2" label="Two"/>
114
121
  </Select>
115
- `);
116
- const driver = yield createSelectDriver();
117
- yield driver.click({ force: true });
118
- yield (0, fixtures_1.expect)(page.getByText("One")).not.toBeVisible();
119
- }));
120
- (0, fixtures_1.test)("readOnly Select shows options, but value cannot be changed", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
121
- yield initTestBed(`
122
+ `);
123
+ const driver = yield createSelectDriver();
124
+ yield driver.click({ force: true });
125
+ yield (0, fixtures_1.expect)(page.getByText("One")).not.toBeVisible();
126
+ }));
127
+ // --- readOnly prop
128
+ (0, fixtures_1.test)("readOnly Select shows options, but value cannot be changed", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
129
+ yield initTestBed(`
122
130
  <Select readOnly initialValue="1">
123
131
  <Option value="1" label="One"/>
124
132
  <Option value="2" label="Two"/>
125
133
  </Select>
126
- `);
127
- const driver = yield createSelectDriver();
128
- yield (0, fixtures_1.expect)(page.getByText("Two")).not.toBeVisible();
129
- yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
130
- yield driver.toggleOptionsVisibility();
131
- yield driver.selectLabel("Two");
132
- yield (0, fixtures_1.expect)(page.getByText("Two")).not.toBeVisible();
133
- yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
134
- // verify dropdown is not visible but value is shown
135
- }));
136
- (0, fixtures_1.test)("readOnly multi-Select shows options, but value cannot be changed", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
137
- yield initTestBed(`
134
+ `);
135
+ const driver = yield createSelectDriver();
136
+ yield (0, fixtures_1.expect)(page.getByText("Two")).not.toBeVisible();
137
+ yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
138
+ yield driver.toggleOptionsVisibility();
139
+ yield driver.selectLabel("Two");
140
+ yield (0, fixtures_1.expect)(page.getByText("Two")).not.toBeVisible();
141
+ yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
142
+ // verify dropdown is not visible but value is shown
143
+ }));
144
+ (0, fixtures_1.test)("readOnly multi-Select shows options, but value cannot be changed", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
145
+ yield initTestBed(`
138
146
  <Select readOnly initialValue="{[1, 2]}" multiSelect>
139
147
  <Option value="1" label="One"/>
140
148
  <Option value="2" label="Two"/>
141
149
  <Option value="3" label="Three"/>
142
150
  </Select>
143
- `);
144
- const driver = yield createSelectDriver();
145
- yield (0, fixtures_1.expect)(page.getByText("Three")).not.toBeVisible();
146
- yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
147
- yield (0, fixtures_1.expect)(page.getByText("Two")).toBeVisible();
148
- yield driver.toggleOptionsVisibility();
149
- yield driver.selectLabel("Three");
150
- yield (0, fixtures_1.expect)(page.getByText("Three")).not.toBeVisible();
151
- yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
152
- yield (0, fixtures_1.expect)(page.getByText("Two")).toBeVisible();
153
- }));
154
- (0, fixtures_1.test)("disabled Option cannot be selected", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver, page }) {
155
- yield initTestBed(`
151
+ `);
152
+ const driver = yield createSelectDriver();
153
+ yield (0, fixtures_1.expect)(page.getByText("Three")).not.toBeVisible();
154
+ yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
155
+ yield (0, fixtures_1.expect)(page.getByText("Two")).toBeVisible();
156
+ yield driver.toggleOptionsVisibility();
157
+ yield driver.selectLabel("Three");
158
+ yield (0, fixtures_1.expect)(page.getByText("Three")).not.toBeVisible();
159
+ yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
160
+ yield (0, fixtures_1.expect)(page.getByText("Two")).toBeVisible();
161
+ }));
162
+ (0, fixtures_1.test)("disabled Option cannot be selected", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver, page }) {
163
+ yield initTestBed(`
156
164
  <Select>
157
165
  <Option value="1" label="One"/>
158
166
  <Option value="2" label="Two" enabled="{false}"/>
159
167
  </Select>
160
- `);
161
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).not.toBeVisible();
162
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).not.toBeVisible();
163
- const driver = yield createSelectDriver();
164
- yield driver.toggleOptionsVisibility();
165
- yield driver.selectLabel("Two");
166
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
167
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
168
- }));
169
- (0, fixtures_1.test)("clicking label brings up the options", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
170
- yield initTestBed(`
168
+ `);
169
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).not.toBeVisible();
170
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).not.toBeVisible();
171
+ const driver = yield createSelectDriver();
172
+ yield driver.toggleOptionsVisibility();
173
+ yield driver.selectLabel("Two");
174
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
175
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
176
+ }));
177
+ (0, fixtures_1.test)("clicking label brings up the options", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
178
+ yield initTestBed(`
171
179
  <Select label="Choose an option">
172
180
  <Option value="1" label="One"/>
173
181
  <Option value="2" label="Two"/>
174
182
  </Select>
175
183
  `);
176
- yield page.getByLabel("Choose an option").click();
177
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
178
- yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
179
- }));
180
- (0, fixtures_1.test)("label displayed for selected numeric value", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
181
- yield initTestBed(`
184
+ yield page.getByLabel("Choose an option").click();
185
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
186
+ yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
187
+ }));
188
+ (0, fixtures_1.test)("label displayed for selected numeric value", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
189
+ yield initTestBed(`
182
190
  <Fragment>
183
191
  <Select initialValue="{0}" >
184
192
  <Option value="{0}" label="Zero"/>
@@ -187,10 +195,11 @@ const fixtures_1 = require("../../testing/fixtures");
187
195
  </Select>
188
196
  </Fragment>
189
197
  `);
190
- yield (0, fixtures_1.expect)(page.getByText("Zero")).toBeVisible();
191
- }));
192
- (0, fixtures_1.test)("autoFocus brings the focus to component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
193
- yield initTestBed(`
198
+ yield (0, fixtures_1.expect)(page.getByText("Zero")).toBeVisible();
199
+ }));
200
+ // --- autoFocus prop
201
+ (0, fixtures_1.test)("autoFocus brings the focus to component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
202
+ yield initTestBed(`
194
203
  <Select>
195
204
  <Option value="1" label="One"/>
196
205
  <Option value="2" label="Two"/>
@@ -199,12 +208,13 @@ const fixtures_1 = require("../../testing/fixtures");
199
208
  <Option value="1" label="One"/>
200
209
  <Option value="2" label="Two"/>
201
210
  </Select>
202
- `);
203
- const driver = yield createSelectDriver("focused-select");
204
- yield (0, fixtures_1.expect)(driver.component).toBeFocused();
205
- }));
206
- (0, fixtures_1.test)("emptyListTemplate shown when wrapped inside an App component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
207
- yield initTestBed(`
211
+ `);
212
+ const driver = yield createSelectDriver("focused-select");
213
+ yield (0, fixtures_1.expect)(driver.component).toBeFocused();
214
+ }));
215
+ // --- Templates
216
+ (0, fixtures_1.test)("emptyListTemplate shown when wrapped inside an App component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
217
+ yield initTestBed(`
208
218
  <App>
209
219
  <Select testId="mySelect">
210
220
  <property name="emptyListTemplate">
@@ -212,13 +222,13 @@ const fixtures_1 = require("../../testing/fixtures");
212
222
  </property>
213
223
  </Select>
214
224
  </App>
215
- `);
216
- const driver = yield createSelectDriver("mySelect");
217
- yield driver.click();
218
- yield (0, fixtures_1.expect)(page.getByText("Nothing to see here!", { exact: true })).toBeVisible();
219
- }));
220
- (0, fixtures_1.test)("optionTemplate is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
221
- yield initTestBed(`
225
+ `);
226
+ const driver = yield createSelectDriver("mySelect");
227
+ yield driver.click();
228
+ yield (0, fixtures_1.expect)(page.getByText("Nothing to see here!", { exact: true })).toBeVisible();
229
+ }));
230
+ (0, fixtures_1.test)("optionTemplate is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
231
+ yield initTestBed(`
222
232
  <Select>
223
233
  <Items items="{[
224
234
  { value: 'opt1', label: 'first' },
@@ -230,66 +240,90 @@ const fixtures_1 = require("../../testing/fixtures");
230
240
  </Option>
231
241
  </Items>
232
242
  </Select>
233
- `);
234
- const driver = yield createSelectDriver();
235
- yield driver.click();
236
- yield (0, fixtures_1.expect)(page.getByText("Template for value opt1")).toBeVisible();
237
- yield (0, fixtures_1.expect)(page.getByText("Template for value opt2")).toBeVisible();
238
- yield (0, fixtures_1.expect)(page.getByText("Template for value opt3")).toBeVisible();
239
- }));
240
- (0, fixtures_1.test)("labelBreak prop defaults to false", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
241
- yield page.setViewportSize({ width: 300, height: 720 });
242
- yield initTestBed(`
243
+ `);
244
+ const driver = yield createSelectDriver();
245
+ yield driver.click();
246
+ yield (0, fixtures_1.expect)(page.getByText("Template for value opt1")).toBeVisible();
247
+ yield (0, fixtures_1.expect)(page.getByText("Template for value opt2")).toBeVisible();
248
+ yield (0, fixtures_1.expect)(page.getByText("Template for value opt3")).toBeVisible();
249
+ }));
250
+ // --- placeholder prop
251
+ (0, fixtures_1.test)("placeholder is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
252
+ yield initTestBed(`
253
+ <Select placeholder="Please select an item">
254
+ <Option value="opt1" label="first"/>
255
+ <Option value="opt2" label="second"/>
256
+ <Option value="opt3" label="third"/>
257
+ </Select>
258
+ `);
259
+ yield (0, fixtures_1.expect)(page.getByText("Please select an item")).toBeVisible();
260
+ }));
261
+ (0, fixtures_1.test)("Option without label and value is not rendered", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
262
+ yield initTestBed(`
263
+ <Select placeholder="Please select an item">
264
+ <Option />
265
+ <Option />
266
+ <Option />
267
+ </Select>
268
+ `);
269
+ const driver = yield createSelectDriver();
270
+ yield driver.click();
271
+ yield (0, fixtures_1.expect)(page.getByRole("option")).not.toBeVisible();
272
+ }));
273
+ (0, fixtures_1.test)("Option value defaults to label", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
274
+ yield initTestBed(`
275
+ <Fragment>
276
+ <Select id="mySelect">
277
+ <Option label="Zero"/>
278
+ <Option label="One"/>
279
+ <Option label="Two"/>
280
+ </Select>
281
+ <Text testId="text">Selected value: {mySelect.value}</Text>
282
+ </Fragment>
283
+ `);
284
+ const driver = yield createSelectDriver("mySelect");
285
+ yield driver.toggleOptionsVisibility();
286
+ yield driver.selectLabel("Zero");
287
+ yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: Zero");
288
+ }));
289
+ });
290
+ // =============================================================================
291
+ // LABEL POSITIONING TESTS
292
+ // =============================================================================
293
+ fixtures_1.test.describe("Label", () => {
294
+ (0, fixtures_1.test)("labelBreak prop defaults to false", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
295
+ yield page.setViewportSize({ width: 300, height: 720 });
296
+ yield initTestBed(`
243
297
  <Select
244
298
  label="Dignissimos esse quasi esse cupiditate qui qui. Ut provident ad voluptatem tenetur sit consequuntur. Aliquam nisi fugit ut temporibus itaque ducimus rerum. Dolorem reprehenderit qui adipisci. Ullam harum atque ipsa."
245
299
  >
246
300
  <Option value="1" label="One"/>
247
301
  <Option value="2" label="Two"/>
248
302
  </Select>
249
- `);
250
- const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
251
- const select = page.getByRole("button").or(page.getByRole("combobox")).first();
252
- const { width: selectWidth } = yield select.boundingBox();
253
- (0, fixtures_1.expect)(labelWidth).toBe(selectWidth);
254
- }));
255
- (0, fixtures_1.test)("placeholder is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
256
- yield initTestBed(`
257
- <Select placeholder="Please select an item">
258
- <Option value="opt1" label="first"/>
259
- <Option value="opt2" label="second"/>
260
- <Option value="opt3" label="third"/>
261
- </Select>
262
- `);
263
- yield (0, fixtures_1.expect)(page.getByText("Please select an item")).toBeVisible();
264
- }));
265
- (0, fixtures_1.test)("Option without label and value is not rendered", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
266
- yield initTestBed(`
267
- <Select placeholder="Please select an item">
268
- <Option />
269
- <Option />
270
- <Option />
271
- </Select>
272
- `);
273
- const driver = yield createSelectDriver();
274
- yield driver.click();
275
- yield (0, fixtures_1.expect)(page.getByRole("option")).not.toBeVisible();
276
- }));
277
- (0, fixtures_1.test)("Option value defaults to label", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
278
- yield initTestBed(`
279
- <Fragment>
280
- <Select id="mySelect">
281
- <Option label="Zero"/>
282
- <Option label="One"/>
283
- <Option label="Two"/>
303
+ `);
304
+ const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
305
+ const select = page.getByRole("button").or(page.getByRole("combobox")).first();
306
+ const { width: selectWidth } = yield select.boundingBox();
307
+ (0, fixtures_1.expect)(labelWidth).toBe(selectWidth);
308
+ }));
309
+ (0, fixtures_1.test)('labelWidth applies with labelPosition="start"', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
310
+ yield page.setViewportSize({ width: 300, height: 720 });
311
+ yield initTestBed(`
312
+ <Select label="Dignissimos esse quasi" labelWidth="200px" labelPosition="start" >
313
+ <Option value="opt1" label="first"/>
314
+ <Option value="opt2" label="second"/>
315
+ <Option value="opt3" label="third"/>
316
+ <Option value="opt4" label="fourth"/>
317
+ <Option value="opt5" label="fifth"/>
284
318
  </Select>
285
- <Text testId="text">Selected value: {mySelect.value}</Text>
286
- </Fragment>
287
- `);
288
- const driver = yield createSelectDriver("mySelect");
289
- yield driver.toggleOptionsVisibility();
290
- yield driver.selectLabel("Zero");
291
- yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: Zero");
292
- }));
319
+ `);
320
+ const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
321
+ (0, fixtures_1.expect)(labelWidth).toBeGreaterThanOrEqual(200);
322
+ }));
323
+ });
324
+ // =============================================================================
325
+ // SEARCHABLE SELECT TESTS
326
+ // =============================================================================
293
327
  fixtures_1.test.describe("searchable select", () => {
294
328
  (0, fixtures_1.test)("placeholder is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
295
329
  yield initTestBed(`
@@ -341,20 +375,9 @@ fixtures_1.test.describe("searchable select", () => {
341
375
  yield (0, fixtures_1.expect)(options[0]).toHaveText("second");
342
376
  }));
343
377
  });
344
- (0, fixtures_1.test)('labelWidth applies with labelPosition="start"', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
345
- yield page.setViewportSize({ width: 300, height: 720 });
346
- yield initTestBed(`
347
- <Select label="Dignissimos esse quasi" labelWidth="200px" labelPosition="start" >
348
- <Option value="opt1" label="first"/>
349
- <Option value="opt2" label="second"/>
350
- <Option value="opt3" label="third"/>
351
- <Option value="opt4" label="fourth"/>
352
- <Option value="opt5" label="fifth"/>
353
- </Select>
354
- `);
355
- const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
356
- (0, fixtures_1.expect)(labelWidth).toBeGreaterThanOrEqual(200);
357
- }));
378
+ // =============================================================================
379
+ // MULTISELECT TESTS
380
+ // =============================================================================
358
381
  fixtures_1.test.describe("multiSelect", () => {
359
382
  (0, fixtures_1.test)("initialValue='{[0]}' works", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
360
383
  yield initTestBed(`
@@ -382,7 +405,7 @@ fixtures_1.test.describe("multiSelect", () => {
382
405
  `);
383
406
  yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0,1");
384
407
  }));
385
- (0, fixtures_1.test)("select multiple items without closing listbox", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
408
+ (0, fixtures_1.test)("select multiple items without closing listbox", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
386
409
  const { testStateDriver } = yield initTestBed(`
387
410
  <Fragment>
388
411
  <Select id="mySelect" multiSelect>
@@ -425,7 +448,7 @@ fixtures_1.test.describe("multiSelect", () => {
425
448
  const { width: selectWidth } = yield select.boundingBox();
426
449
  (0, fixtures_1.expect)(labelWidth).toBe(selectWidth);
427
450
  }));
428
- (0, fixtures_1.test)('labelPosition="start" is left in ltr language', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, }) {
451
+ (0, fixtures_1.test)('labelPosition="start" is left in ltr language', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
429
452
  yield initTestBed(`
430
453
  <Select multiSelect label="hi there" labelPosition="start" labelBreak="false">
431
454
  <Option value="1" label="One"/>
@@ -437,7 +460,7 @@ fixtures_1.test.describe("multiSelect", () => {
437
460
  const { x: selectX } = yield select.boundingBox();
438
461
  (0, fixtures_1.expect)(labelX).toBeLessThan(selectX);
439
462
  }));
440
- (0, fixtures_1.test)('labelPosition="start" is right in rtl language', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, }) {
463
+ (0, fixtures_1.test)('labelPosition="start" is right in rtl language', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
441
464
  yield initTestBed(`
442
465
  <VStack direction="rtl">
443
466
  <Select multiSelect label="hi there" labelPosition="start" labelBreak="false">
@@ -492,6 +515,9 @@ fixtures_1.test.describe("multiSelect", () => {
492
515
  yield (0, fixtures_1.expect)(page.getByText("opt1=first", { exact: true })).not.toBeVisible();
493
516
  }));
494
517
  });
518
+ // =============================================================================
519
+ // SEARCHABLE MULTISELECT TESTS
520
+ // =============================================================================
495
521
  fixtures_1.test.describe("searchable multiselect", { tag: "@smoke" }, () => {
496
522
  (0, fixtures_1.test)("searching for and selecting 2 items works", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
497
523
  yield initTestBed(`
@@ -511,6 +537,47 @@ fixtures_1.test.describe("searchable multiselect", { tag: "@smoke" }, () => {
511
537
  yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1,2");
512
538
  }));
513
539
  });
540
+ // =============================================================================
541
+ // EVENT HANDLING TESTS
542
+ // =============================================================================
543
+ fixtures_1.test.describe("Event Handling", () => {
544
+ (0, fixtures_1.test)("gotFocus event fires on focus", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
545
+ const { testStateDriver } = yield initTestBed(`
546
+ <Select onGotFocus="testState = 'focused'">
547
+ <Option value="1" label="One"/>
548
+ <Option value="2" label="Two"/>
549
+ </Select>
550
+ `);
551
+ const selectButton = page.getByRole("combobox");
552
+ yield selectButton.focus();
553
+ yield fixtures_1.expect.poll(testStateDriver.testState).toBe("focused");
554
+ }));
555
+ (0, fixtures_1.test)("gotFocus event fires on label click", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
556
+ const { testStateDriver } = yield initTestBed(`
557
+ <Select label="Choose" onGotFocus="testState = 'focused'">
558
+ <Option value="1" label="One"/>
559
+ <Option value="2" label="Two"/>
560
+ </Select>
561
+ `);
562
+ yield page.getByText("Choose").click();
563
+ yield fixtures_1.expect.poll(testStateDriver.testState).toBe("focused");
564
+ }));
565
+ (0, fixtures_1.test)("lostFocus event fires on blur", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
566
+ const { testStateDriver } = yield initTestBed(`
567
+ <Select onLostFocus="testState = 'blurred'">
568
+ <Option value="1" label="One"/>
569
+ <Option value="2" label="Two"/>
570
+ </Select>
571
+ `);
572
+ const selectButton = page.getByRole("combobox");
573
+ yield selectButton.focus();
574
+ yield selectButton.blur();
575
+ yield fixtures_1.expect.poll(testStateDriver.testState).toBe("blurred");
576
+ }));
577
+ });
578
+ // =============================================================================
579
+ // FORM INTEGRATION TESTS
580
+ // =============================================================================
514
581
  //this is an upstream issue: https://github.com/radix-ui/primitives/issues/3135
515
582
  (0, fixtures_1.test)("initialValue honored when used within Form", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
516
583
  yield initTestBed(`
@@ -527,29 +594,31 @@ fixtures_1.test.describe("searchable multiselect", { tag: "@smoke" }, () => {
527
594
  // =============================================================================
528
595
  // VISUAL STATE TESTS
529
596
  // =============================================================================
530
- (0, fixtures_1.test)("input has correct width in px", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
531
- yield initTestBed(`<Select width="200px" testId="test"/>`, {});
532
- const input = page.getByTestId("test");
533
- const { width } = yield input.boundingBox();
534
- (0, fixtures_1.expect)(width).toBe(200);
535
- }));
536
- (0, fixtures_1.test)("input with label has correct width in px", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
537
- yield initTestBed(`<Select width="200px" label="test" testId="test"/>`, {});
538
- const input = page.getByTestId("test");
539
- const { width } = yield input.boundingBox();
540
- (0, fixtures_1.expect)(width).toBe(200);
541
- }));
542
- (0, fixtures_1.test)("input has correct width in %", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
543
- yield page.setViewportSize({ width: 400, height: 300 });
544
- yield initTestBed(`<Select width="50%" testId="test"/>`, {});
545
- const input = page.getByTestId("test");
546
- const { width } = yield input.boundingBox();
547
- (0, fixtures_1.expect)(width).toBe(200);
548
- }));
549
- (0, fixtures_1.test)("input with label has correct width in %", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
550
- yield page.setViewportSize({ width: 400, height: 300 });
551
- yield initTestBed(`<Select width="50%" label="test" testId="test"/>`, {});
552
- const input = page.getByTestId("test");
553
- const { width } = yield input.boundingBox();
554
- (0, fixtures_1.expect)(width).toBe(200);
555
- }));
597
+ fixtures_1.test.describe("Visual State", () => {
598
+ (0, fixtures_1.test)("input has correct width in px", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
599
+ yield initTestBed(`<Select width="200px" testId="test"/>`, {});
600
+ const input = page.getByTestId("test");
601
+ const { width } = yield input.boundingBox();
602
+ (0, fixtures_1.expect)(width).toBe(200);
603
+ }));
604
+ (0, fixtures_1.test)("input with label has correct width in px", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
605
+ yield initTestBed(`<Select width="200px" label="test" testId="test"/>`, {});
606
+ const input = page.getByTestId("test");
607
+ const { width } = yield input.boundingBox();
608
+ (0, fixtures_1.expect)(width).toBe(200);
609
+ }));
610
+ (0, fixtures_1.test)("input has correct width in %", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
611
+ yield page.setViewportSize({ width: 400, height: 300 });
612
+ yield initTestBed(`<Select width="50%" testId="test"/>`, {});
613
+ const input = page.getByTestId("test");
614
+ const { width } = yield input.boundingBox();
615
+ (0, fixtures_1.expect)(width).toBe(200);
616
+ }));
617
+ (0, fixtures_1.test)("input with label has correct width in %", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
618
+ yield page.setViewportSize({ width: 400, height: 300 });
619
+ yield initTestBed(`<Select width="50%" label="test" testId="test"/>`, {});
620
+ const input = page.getByTestId("test");
621
+ const { width } = yield input.boundingBox();
622
+ (0, fixtures_1.expect)(width).toBe(200);
623
+ }));
624
+ });