@taiga-ui/testing 3.491.1-canary.d27927b → 4.0.0-rc.1

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 (181) hide show
  1. package/LICENSE +190 -0
  2. package/core/accordion.harness.d.ts +0 -1
  3. package/core/avatar.harness.d.ts +1 -1
  4. package/core/badge.harness.d.ts +3 -3
  5. package/core/{primitive-calender.harness.d.ts → calendar-sheet.harness.d.ts} +1 -1
  6. package/core/{primitive-year-month-pagination.harness.d.ts → calendar-spin.harness.d.ts} +1 -1
  7. package/core/{primitive-year-picker.harness.d.ts → calendar-year.harness.d.ts} +1 -1
  8. package/core/calendar.harness.d.ts +3 -3
  9. package/core/card.harness.d.ts +0 -6
  10. package/core/dialog.harness.d.ts +6 -0
  11. package/core/{hosted-dropdown.harness.d.ts → dropdown-open.harness.d.ts} +1 -1
  12. package/core/index.d.ts +6 -6
  13. package/core/island.harness.d.ts +1 -1
  14. package/core/select.harness.d.ts +1 -1
  15. package/core/{primitive-spin-button.harness.d.ts → spin-button.harness.d.ts} +1 -1
  16. package/core/tag.harness.d.ts +2 -3
  17. package/esm2022/core/accordion-item.harness.mjs +32 -0
  18. package/esm2022/core/accordion.harness.mjs +6 -0
  19. package/esm2022/core/avatar.harness.mjs +9 -0
  20. package/esm2022/core/badge.harness.mjs +15 -0
  21. package/esm2022/core/button.harness.mjs +17 -0
  22. package/esm2022/core/calendar-sheet.harness.mjs +30 -0
  23. package/esm2022/core/calendar-spin.harness.mjs +33 -0
  24. package/esm2022/core/calendar-year.harness.mjs +23 -0
  25. package/esm2022/core/calendar.harness.mjs +51 -0
  26. package/esm2022/core/card.harness.mjs +15 -0
  27. package/esm2022/core/dialog.harness.mjs +12 -0
  28. package/esm2022/core/dropdown-open.harness.mjs +13 -0
  29. package/esm2022/core/index.mjs +21 -0
  30. package/esm2022/core/island.harness.mjs +39 -0
  31. package/esm2022/core/loader.harness.mjs +20 -0
  32. package/esm2022/core/primitive-textfield.harness.mjs +12 -0
  33. package/esm2022/core/select.harness.mjs +17 -0
  34. package/esm2022/core/spin-button.harness.mjs +13 -0
  35. package/esm2022/core/svg.harness.mjs +18 -0
  36. package/esm2022/core/tag.harness.mjs +26 -0
  37. package/esm2022/core/textfield.harness.mjs +9 -0
  38. package/esm2022/mocks/event.mjs +14 -0
  39. package/esm2022/mocks/sanitizer.mjs +13 -0
  40. package/esm2022/setup-jest/index.mjs +119 -0
  41. package/esm2022/utils/active-element.mjs +12 -0
  42. package/esm2022/utils/configure-test-suite.mjs +32 -0
  43. package/esm2022/utils/date.mjs +18 -0
  44. package/esm2022/utils/helpers.mjs +34 -0
  45. package/esm2022/utils/input/cleaner.unit-common.mjs +79 -0
  46. package/esm2022/utils/input/filler.unit-common.mjs +48 -0
  47. package/esm2022/utils/input/form-control-state.unit-common.mjs +36 -0
  48. package/{esm2015/utils/input/placeholder.unit-common.js → esm2022/utils/input/placeholder.unit-common.mjs} +17 -17
  49. package/esm2022/utils/input/tooltip.unit-common.mjs +46 -0
  50. package/esm2022/utils/keyboard-event.mjs +9 -0
  51. package/esm2022/utils/native-input.page-object.mjs +53 -0
  52. package/esm2022/utils/page-object.mjs +25 -0
  53. package/esm2022/utils/replace-nbsp.mjs +5 -0
  54. package/{esm2015/utils/viewport.js → esm2022/utils/viewport.mjs} +5 -5
  55. package/fesm2022/taiga-ui-testing-core.mjs +365 -0
  56. package/fesm2022/taiga-ui-testing-core.mjs.map +1 -0
  57. package/{fesm2015/taiga-ui-testing-exceptions.js → fesm2022/taiga-ui-testing-exceptions.mjs} +1 -1
  58. package/fesm2022/taiga-ui-testing-exceptions.mjs.map +1 -0
  59. package/{fesm2015/taiga-ui-testing-mocks.js → fesm2022/taiga-ui-testing-mocks.mjs} +5 -3
  60. package/fesm2022/taiga-ui-testing-mocks.mjs.map +1 -0
  61. package/{fesm2015/taiga-ui-testing-setup-jest.js → fesm2022/taiga-ui-testing-setup-jest.mjs} +21 -21
  62. package/fesm2022/taiga-ui-testing-setup-jest.mjs.map +1 -0
  63. package/{fesm2015/taiga-ui-testing-utils.js → fesm2022/taiga-ui-testing-utils.mjs} +94 -104
  64. package/fesm2022/taiga-ui-testing-utils.mjs.map +1 -0
  65. package/{fesm2015/taiga-ui-testing.js → fesm2022/taiga-ui-testing.mjs} +1 -1
  66. package/fesm2022/taiga-ui-testing.mjs.map +1 -0
  67. package/mocks/sanitizer.d.ts +1 -1
  68. package/package.json +49 -13
  69. package/utils/active-element.d.ts +1 -1
  70. package/utils/configure-test-suite.d.ts +2 -1
  71. package/utils/helpers.d.ts +2 -1
  72. package/utils/input/cleaner.unit-common.d.ts +6 -6
  73. package/utils/input/filler.unit-common.d.ts +6 -6
  74. package/utils/input/form-control-state.unit-common.d.ts +5 -5
  75. package/utils/input/placeholder.unit-common.d.ts +5 -5
  76. package/utils/input/tooltip.unit-common.d.ts +5 -5
  77. package/utils/native-input.page-object.d.ts +4 -5
  78. package/utils/page-object.d.ts +2 -2
  79. package/bundles/taiga-ui-testing-core.umd.js +0 -1388
  80. package/bundles/taiga-ui-testing-core.umd.js.map +0 -1
  81. package/bundles/taiga-ui-testing-cypress.umd.js +0 -484
  82. package/bundles/taiga-ui-testing-cypress.umd.js.map +0 -1
  83. package/bundles/taiga-ui-testing-exceptions.umd.js +0 -351
  84. package/bundles/taiga-ui-testing-exceptions.umd.js.map +0 -1
  85. package/bundles/taiga-ui-testing-mocks.umd.js +0 -369
  86. package/bundles/taiga-ui-testing-mocks.umd.js.map +0 -1
  87. package/bundles/taiga-ui-testing-setup-jest.umd.js +0 -135
  88. package/bundles/taiga-ui-testing-setup-jest.umd.js.map +0 -1
  89. package/bundles/taiga-ui-testing-utils.umd.js +0 -933
  90. package/bundles/taiga-ui-testing-utils.umd.js.map +0 -1
  91. package/bundles/taiga-ui-testing.umd.js +0 -46
  92. package/bundles/taiga-ui-testing.umd.js.map +0 -1
  93. package/core/action.harness.d.ts +0 -7
  94. package/core/marker-icon.harness.d.ts +0 -4
  95. package/core/package.json +0 -10
  96. package/core/taiga-ui-testing-core.d.ts +0 -5
  97. package/core/toggle.harness.d.ts +0 -8
  98. package/cypress/assertions/be-in-viewport.d.ts +0 -14
  99. package/cypress/assertions/index.d.ts +0 -1
  100. package/cypress/commands/wait-all-img-inside.command.d.ts +0 -2
  101. package/cypress/index.d.ts +0 -4
  102. package/cypress/package.json +0 -10
  103. package/cypress/snapshot/command.d.ts +0 -16
  104. package/cypress/snapshot/plugin.d.ts +0 -9
  105. package/cypress/taiga-ui-testing-cypress.d.ts +0 -5
  106. package/esm2015/core/accordion-item.harness.js +0 -49
  107. package/esm2015/core/accordion.harness.js +0 -11
  108. package/esm2015/core/action.harness.js +0 -16
  109. package/esm2015/core/avatar.harness.js +0 -11
  110. package/esm2015/core/badge.harness.js +0 -21
  111. package/esm2015/core/button.harness.js +0 -21
  112. package/esm2015/core/calendar.harness.js +0 -84
  113. package/esm2015/core/card.harness.js +0 -25
  114. package/esm2015/core/hosted-dropdown.harness.js +0 -17
  115. package/esm2015/core/index.js +0 -21
  116. package/esm2015/core/island.harness.js +0 -53
  117. package/esm2015/core/loader.harness.js +0 -25
  118. package/esm2015/core/marker-icon.harness.js +0 -5
  119. package/esm2015/core/primitive-calender.harness.js +0 -40
  120. package/esm2015/core/primitive-spin-button.harness.js +0 -17
  121. package/esm2015/core/primitive-textfield.harness.js +0 -16
  122. package/esm2015/core/primitive-year-month-pagination.harness.js +0 -49
  123. package/esm2015/core/primitive-year-picker.harness.js +0 -29
  124. package/esm2015/core/select.harness.js +0 -21
  125. package/esm2015/core/svg.harness.js +0 -27
  126. package/esm2015/core/tag.harness.js +0 -39
  127. package/esm2015/core/textfield.harness.js +0 -11
  128. package/esm2015/core/toggle.harness.js +0 -21
  129. package/esm2015/cypress/assertions/be-in-viewport.js +0 -28
  130. package/esm2015/cypress/assertions/index.js +0 -2
  131. package/esm2015/cypress/commands/wait-all-img-inside.command.js +0 -62
  132. package/esm2015/cypress/index.js +0 -5
  133. package/esm2015/cypress/snapshot/command.js +0 -25
  134. package/esm2015/cypress/snapshot/plugin.js +0 -26
  135. package/esm2015/cypress/taiga-ui-testing-cypress.js +0 -5
  136. package/esm2015/mocks/event.js +0 -12
  137. package/esm2015/mocks/sanitizer.js +0 -13
  138. package/esm2015/setup-jest/index.js +0 -119
  139. package/esm2015/utils/active-element.js +0 -14
  140. package/esm2015/utils/configure-test-suite.js +0 -32
  141. package/esm2015/utils/date.js +0 -18
  142. package/esm2015/utils/helpers.js +0 -36
  143. package/esm2015/utils/input/cleaner.unit-common.js +0 -79
  144. package/esm2015/utils/input/filler.unit-common.js +0 -50
  145. package/esm2015/utils/input/form-control-state.unit-common.js +0 -37
  146. package/esm2015/utils/input/tooltip.unit-common.js +0 -46
  147. package/esm2015/utils/keyboard-event.js +0 -9
  148. package/esm2015/utils/native-input.page-object.js +0 -58
  149. package/esm2015/utils/page-object.js +0 -25
  150. package/esm2015/utils/replace-nbsp.js +0 -6
  151. package/exceptions/package.json +0 -10
  152. package/exceptions/taiga-ui-testing-exceptions.d.ts +0 -5
  153. package/fesm2015/taiga-ui-testing-core.js +0 -557
  154. package/fesm2015/taiga-ui-testing-core.js.map +0 -1
  155. package/fesm2015/taiga-ui-testing-cypress.js +0 -145
  156. package/fesm2015/taiga-ui-testing-cypress.js.map +0 -1
  157. package/fesm2015/taiga-ui-testing-exceptions.js.map +0 -1
  158. package/fesm2015/taiga-ui-testing-mocks.js.map +0 -1
  159. package/fesm2015/taiga-ui-testing-setup-jest.js.map +0 -1
  160. package/fesm2015/taiga-ui-testing-utils.js.map +0 -1
  161. package/fesm2015/taiga-ui-testing.js.map +0 -1
  162. package/mocks/package.json +0 -10
  163. package/mocks/taiga-ui-testing-mocks.d.ts +0 -5
  164. package/setup-jest/package.json +0 -10
  165. package/setup-jest/taiga-ui-testing-setup-jest.d.ts +0 -5
  166. package/taiga-ui-testing.d.ts +0 -5
  167. package/utils/package.json +0 -10
  168. package/utils/taiga-ui-testing-utils.d.ts +0 -5
  169. /package/{esm2015/core/taiga-ui-testing-core.js → esm2022/core/taiga-ui-testing-core.mjs} +0 -0
  170. /package/{esm2015/exceptions/element-is-not-input.exception.js → esm2022/exceptions/element-is-not-input.exception.mjs} +0 -0
  171. /package/{esm2015/exceptions/field-not-found.exception.js → esm2022/exceptions/field-not-found.exception.mjs} +0 -0
  172. /package/{esm2015/exceptions/index.js → esm2022/exceptions/index.mjs} +0 -0
  173. /package/{esm2015/exceptions/taiga-ui-testing-exceptions.js → esm2022/exceptions/taiga-ui-testing-exceptions.mjs} +0 -0
  174. /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
  175. /package/{esm2015/mocks/index.js → esm2022/mocks/index.mjs} +0 -0
  176. /package/{esm2015/mocks/switch-ng-dev-mode.js → esm2022/mocks/switch-ng-dev-mode.mjs} +0 -0
  177. /package/{esm2015/mocks/taiga-ui-testing-mocks.js → esm2022/mocks/taiga-ui-testing-mocks.mjs} +0 -0
  178. /package/{esm2015/setup-jest/taiga-ui-testing-setup-jest.js → esm2022/setup-jest/taiga-ui-testing-setup-jest.mjs} +0 -0
  179. /package/{esm2015/taiga-ui-testing.js → esm2022/taiga-ui-testing.mjs} +0 -0
  180. /package/{esm2015/utils/index.js → esm2022/utils/index.mjs} +0 -0
  181. /package/{esm2015/utils/taiga-ui-testing-utils.js → esm2022/utils/taiga-ui-testing-utils.mjs} +0 -0
@@ -1,30 +1,29 @@
1
- import { __awaiter } from 'tslib';
2
1
  import { getTestBed, TestBed } from '@angular/core/testing';
3
- import { tuiIsNumber, CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk';
2
+ import { tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
4
3
  import { HarnessPredicate, ComponentHarness, ContentContainerComponentHarness } from '@angular/cdk/testing';
4
+ import { CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
5
5
 
6
- function tuiCreateKeyboardEvent(key, eventType = `keydown`) {
6
+ function tuiCreateKeyboardEvent(key, eventType = 'keydown') {
7
7
  const event = new KeyboardEvent(eventType, { bubbles: true });
8
8
  delete event.target;
9
- Object.defineProperty(event, `type`, { value: eventType });
9
+ Object.defineProperty(event, 'type', { value: eventType });
10
10
  delete event.key;
11
- Object.defineProperty(event, `key`, { value: key });
11
+ Object.defineProperty(event, 'key', { value: key });
12
12
  return event;
13
13
  }
14
14
 
15
15
  function tuiDispatchOnActive(key, fixture) {
16
- var _a;
17
- (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));
18
- fixture === null || fixture === void 0 ? void 0 : fixture.detectChanges();
16
+ document.activeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, 'keydown'));
17
+ fixture?.detectChanges();
19
18
  }
20
19
  function tuiActiveText() {
21
- var _a, _b, _c;
22
- return (_c = (_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : ``;
20
+ return document.activeElement?.textContent?.trim() ?? '';
23
21
  }
24
22
  function tuiIsActive(element) {
25
23
  return document.activeElement === element;
26
24
  }
27
25
 
26
+ /** deprecated, will be removed in 4.0 */
28
27
  const configureTestSuite = (configureModule) => {
29
28
  const testBedApi = getTestBed();
30
29
  const originReset = TestBed.resetTestingModule;
@@ -34,10 +33,10 @@ const configureTestSuite = (configureModule) => {
34
33
  });
35
34
  // Custom hook
36
35
  if (configureModule) {
37
- beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
36
+ beforeAll(async () => {
38
37
  configureModule();
39
- yield TestBed.compileComponents();
40
- }));
38
+ await TestBed.compileComponents();
39
+ });
41
40
  }
42
41
  afterEach(() => {
43
42
  // @ts-ignore
@@ -86,15 +85,13 @@ function tuiWithPredicate(original) {
86
85
  * to monkey-patch default static 'with' method.
87
86
  */
88
87
  function tuiHarnessWith(hostSelector) {
89
- var _a;
90
- return _a = class extends ComponentHarness {
91
- // @ts-ignore
92
- static with(_options = {}) {
93
- throw new Error(`Hummus`);
94
- }
95
- },
96
- _a.hostSelector = hostSelector,
97
- _a;
88
+ return class extends ComponentHarness {
89
+ static { this.hostSelector = hostSelector; }
90
+ // @ts-ignore
91
+ static with(_options = {}) {
92
+ throw new Error('Hummus');
93
+ }
94
+ };
98
95
  }
99
96
  class TuiComponentHarness extends ComponentHarness {
100
97
  static with(options) {
@@ -107,13 +104,13 @@ class TuiContentContainerComponentHarness extends ContentContainerComponentHarne
107
104
  }
108
105
  }
109
106
 
110
- /// <reference types="jasmine" />
111
- function tuiTestCleaner(context, setValue = `value`, clearValue = null) {
107
+ /// <reference types="jest" />
108
+ function tuiTestCleaner(context, setValue = 'value', clearValue = null) {
112
109
  let pageObject;
113
110
  let fixture;
114
111
  let testComponent;
115
112
  let inputPO;
116
- describe(`Cross for field cleaning`, () => {
113
+ describe('Cross for field cleaning', () => {
117
114
  beforeEach(() => {
118
115
  pageObject = context.pageObject;
119
116
  fixture = context.fixture;
@@ -121,22 +118,22 @@ function tuiTestCleaner(context, setValue = `value`, clearValue = null) {
121
118
  inputPO = context.inputPO;
122
119
  fixture.autoDetectChanges();
123
120
  });
124
- describe(`Cross included`, () => {
121
+ describe('Cross included', () => {
125
122
  beforeEach(() => {
126
123
  testComponent.cleaner = true;
127
124
  });
128
- it(`If no value is specified, the cross is not shown`, () => {
125
+ it('If no value is specified, the cross is not shown', () => {
129
126
  updateValue(clearValue);
130
127
  fixture.detectChanges();
131
128
  expect(getCleaner()).toBeNull();
132
129
  });
133
- it(`If the field is readonly, the cross is not shown`, () => {
130
+ it('If the field is readonly, the cross is not shown', () => {
134
131
  updateValue(setValue);
135
132
  testComponent.readOnly = true;
136
133
  fixture.detectChanges();
137
134
  expect(getCleaner()).toBeNull();
138
135
  });
139
- it(`If the field is disabled, the cross is not shown`, () => {
136
+ it('If the field is disabled, the cross is not shown', () => {
140
137
  updateValue(setValue);
141
138
  if (testComponent.control) {
142
139
  testComponent.control.disable();
@@ -145,17 +142,17 @@ function tuiTestCleaner(context, setValue = `value`, clearValue = null) {
145
142
  fixture.detectChanges();
146
143
  expect(getCleaner()).toBeNull();
147
144
  });
148
- it(`If a value is specified, a cross is shown`, () => {
145
+ it('If a value is specified, a cross is shown', () => {
149
146
  updateValue(setValue);
150
147
  fixture.detectChanges();
151
148
  expect(getCleaner()).not.toBeNull();
152
149
  });
153
- it(`When you click on the cross, the field value is cleared`, () => {
150
+ it('When you click on the cross, the field value is cleared', () => {
154
151
  updateValue(setValue);
155
152
  fixture.detectChanges();
156
153
  getCleaner().nativeElement.click();
157
154
  fixture.detectChanges();
158
- expect(inputPO.value).toBe(``);
155
+ expect(inputPO.value).toBe('');
159
156
  if (testComponent.control !== undefined) {
160
157
  expect(testComponent.control.value).toEqual(clearValue);
161
158
  }
@@ -164,8 +161,8 @@ function tuiTestCleaner(context, setValue = `value`, clearValue = null) {
164
161
  }
165
162
  });
166
163
  });
167
- describe(`Cross disabled`, () => {
168
- it(`The value is set, the cross is not shown`, () => {
164
+ describe('Cross disabled', () => {
165
+ it('The value is set, the cross is not shown', () => {
169
166
  updateValue(setValue);
170
167
  testComponent.cleaner = false;
171
168
  fixture.detectChanges();
@@ -186,12 +183,12 @@ function tuiTestCleaner(context, setValue = `value`, clearValue = null) {
186
183
  }
187
184
  }
188
185
 
189
- function tuiTestFiller(context, setValue = `value`, clearValue = null) {
186
+ function tuiTestFiller(context, setValue = 'value', clearValue = null) {
190
187
  let pageObject;
191
188
  let fixture;
192
189
  let testComponent;
193
190
  let inputPO;
194
- describe(`Filler (mask)`, () => {
191
+ describe('Filler (mask)', () => {
195
192
  beforeEach(() => {
196
193
  pageObject = context.pageObject;
197
194
  fixture = context.fixture;
@@ -199,32 +196,31 @@ function tuiTestFiller(context, setValue = `value`, clearValue = null) {
199
196
  inputPO = context.inputPO;
200
197
  fixture.detectChanges();
201
198
  });
202
- describe(`if there is no value in the field`, () => {
199
+ describe('if there is no value in the field', () => {
203
200
  beforeEach(() => {
204
201
  testComponent.control.setValue(clearValue);
205
202
  fixture.detectChanges();
206
203
  });
207
- it(`not visible`, () => {
204
+ it('not visible', () => {
208
205
  expect(getFiller()).toBeNull();
209
206
  });
210
- it(`when focusing appears`, () => __awaiter(this, void 0, void 0, function* () {
207
+ it('when focusing appears', async () => {
211
208
  inputPO.focus();
212
209
  fixture.detectChanges();
213
- yield fixture.whenStable();
210
+ await fixture.whenStable();
214
211
  expect(getFiller()).not.toBeNull();
215
- }));
212
+ });
216
213
  });
217
- describe(`if the field has a value`, () => {
214
+ describe('if the field has a value', () => {
218
215
  beforeEach(() => {
219
216
  testComponent.control.setValue(setValue);
220
217
  fixture.detectChanges();
221
218
  });
222
- it(`not visible`, () => {
219
+ it('not visible', () => {
223
220
  expect(getFiller()).toBeNull();
224
221
  });
225
- it(`also not visible when focusing`, () => {
226
- var _a;
227
- (_a = inputPO.nativeElement) === null || _a === void 0 ? void 0 : _a.focus();
222
+ it('also not visible when focusing', () => {
223
+ inputPO.nativeElement?.focus();
228
224
  fixture.detectChanges();
229
225
  expect(getFiller()).toBeNull();
230
226
  });
@@ -239,105 +235,105 @@ function tuiTestFormControlState(context) {
239
235
  let fixture;
240
236
  let testComponent;
241
237
  let inputPO;
242
- describe(`FormControl state`, () => {
238
+ describe('FormControl state', () => {
243
239
  beforeEach(() => {
244
240
  fixture = context.fixture;
245
241
  testComponent = context.testComponent;
246
242
  inputPO = context.inputPO;
247
243
  fixture.detectChanges();
248
244
  });
249
- it(`After initializing control dirty === false`, () => {
245
+ it('After initializing control dirty === false', () => {
250
246
  expect(testComponent.control.dirty).toBe(false);
251
247
  });
252
- it(`After control initialization touched === false`, () => {
248
+ it('After control initialization touched === false', () => {
253
249
  expect(testComponent.control.touched).toBe(false);
254
250
  });
255
- it(`After setting value from outside dirty === false`, () => {
256
- testComponent.control.setValue(`123`);
251
+ it('After setting value from outside dirty === false', () => {
252
+ testComponent.control.setValue('123');
257
253
  fixture.detectChanges();
258
254
  expect(testComponent.control.dirty).toBe(false);
259
255
  });
260
- it(`After entering the value dirty === true`, () => {
261
- inputPO.sendText(`123`);
256
+ it('After entering the value dirty === true', () => {
257
+ inputPO.sendText('123');
262
258
  expect(testComponent.control.dirty).toBe(true);
263
259
  });
264
- it(`After setting and de-focusing touched === true`, () => __awaiter(this, void 0, void 0, function* () {
260
+ it('After setting and de-focusing touched === true', async () => {
265
261
  inputPO.focus();
266
262
  inputPO.blur();
267
- yield fixture.whenStable();
263
+ await fixture.whenStable();
268
264
  fixture.detectChanges();
269
265
  expect(testComponent.control.touched).toBe(true);
270
- }));
266
+ });
271
267
  });
272
268
  }
273
269
 
274
- function tuiTestPlaceholder(context, setValue = `value`, clearValue = ``) {
270
+ function tuiTestPlaceholder(context, setValue = 'value', clearValue = '') {
275
271
  let pageObject;
276
272
  let fixture;
277
273
  let testComponent;
278
- describe(`Placeholder`, () => {
274
+ describe('Placeholder', () => {
279
275
  beforeEach(() => {
280
276
  pageObject = context.pageObject;
281
277
  fixture = context.fixture;
282
278
  testComponent = context.testComponent;
283
279
  fixture.autoDetectChanges();
284
280
  });
285
- describe(`in size S`, () => {
281
+ describe('in size S', () => {
286
282
  beforeEach(() => {
287
- testComponent.size = `s`;
283
+ testComponent.size = 's';
288
284
  fixture.detectChanges();
289
285
  });
290
- it(`if no value, then shown`, () => {
286
+ it('if no value, then shown', () => {
291
287
  updateValue(clearValue);
292
288
  fixture.detectChanges();
293
289
  expect(getPlaceholder()).not.toBeNull();
294
290
  });
295
- it(`if specified, not shown`, () => {
291
+ it('if specified, not shown', () => {
296
292
  updateValue(setValue);
297
293
  fixture.detectChanges();
298
294
  expect(getPlaceholder()).toBeNull();
299
295
  });
300
296
  });
301
- describe(`in size M`, () => {
297
+ describe('in size M', () => {
302
298
  beforeEach(() => {
303
- testComponent.size = `m`;
299
+ testComponent.size = 'm';
304
300
  fixture.detectChanges();
305
301
  });
306
- it(`if no value, then shown`, () => {
302
+ it('if no value, then shown', () => {
307
303
  updateValue(clearValue);
308
304
  fixture.detectChanges();
309
305
  expect(getPlaceholder()).not.toBeNull();
310
306
  });
311
- it(`if a value is given, then`, () => {
307
+ it('if a value is given, then', () => {
312
308
  updateValue(setValue);
313
309
  testComponent.labelOutside = false;
314
310
  fixture.detectChanges();
315
311
  expect(getPlaceholder()).not.toBeNull();
316
312
  });
317
- it(`if value is given but label is outside, then not shown`, () => {
313
+ it('if value is given but label is outside, then not shown', () => {
318
314
  updateValue(setValue);
319
315
  testComponent.labelOutside = true;
320
316
  fixture.detectChanges();
321
317
  expect(getPlaceholder()).toBeNull();
322
318
  });
323
319
  });
324
- describe(`in size L`, () => {
320
+ describe('in size L', () => {
325
321
  beforeEach(() => {
326
- testComponent.size = `l`;
322
+ testComponent.size = 'l';
327
323
  fixture.detectChanges();
328
324
  });
329
- it(`if no value, then shown`, () => {
325
+ it('if no value, then shown', () => {
330
326
  updateValue(clearValue);
331
327
  fixture.detectChanges();
332
328
  expect(getPlaceholder()).not.toBeNull();
333
329
  });
334
- it(`if a value is given, then`, () => {
330
+ it('if a value is given, then', () => {
335
331
  updateValue(setValue);
336
332
  testComponent.labelOutside = false;
337
333
  fixture.detectChanges();
338
334
  expect(getPlaceholder()).not.toBeNull();
339
335
  });
340
- it(`if value is given but label is outside, then not shown`, () => {
336
+ it('if value is given but label is outside, then not shown', () => {
341
337
  updateValue(setValue);
342
338
  testComponent.labelOutside = true;
343
339
  fixture.detectChanges();
@@ -362,15 +358,15 @@ function tuiTestTooltip(context) {
362
358
  let pageObject;
363
359
  let fixture;
364
360
  let testComponent;
365
- describe(`Tooltip in a field`, () => {
361
+ describe('Tooltip in a field', () => {
366
362
  beforeEach(() => {
367
363
  pageObject = context.pageObject;
368
364
  fixture = context.fixture;
369
365
  testComponent = context.testComponent;
370
366
  fixture.autoDetectChanges();
371
367
  });
372
- describe(`There is tooltip content`, () => {
373
- it(`if field is disabled, there is no tooltip`, () => {
368
+ describe('There is tooltip content', () => {
369
+ it('if field is disabled, there is no tooltip', () => {
374
370
  testComponent.disabled = true;
375
371
  if (testComponent.control) {
376
372
  testComponent.control.disable();
@@ -378,22 +374,22 @@ function tuiTestTooltip(context) {
378
374
  fixture.detectChanges();
379
375
  expect(getTooltip()).toBeNull();
380
376
  });
381
- it(`if field is not disabled, there is tooltip`, () => {
377
+ it('if field is not disabled, there is tooltip', () => {
382
378
  fixture.detectChanges();
383
379
  expect(getTooltip()).not.toBeNull();
384
380
  });
385
- it(`if field is readonly, there is tooltip`, () => {
381
+ it('if field is readonly, there is tooltip', () => {
386
382
  testComponent.readOnly = true;
387
383
  fixture.detectChanges();
388
384
  expect(getTooltip()).not.toBeNull();
389
385
  });
390
386
  });
391
- describe(`There is no tooltip content`, () => {
387
+ describe('There is no tooltip content', () => {
392
388
  beforeEach(() => {
393
389
  testComponent.hintContent = null;
394
390
  fixture.detectChanges();
395
391
  });
396
- it(`tooltip without content is hidden`, () => {
392
+ it('tooltip without content is hidden', () => {
397
393
  fixture.detectChanges();
398
394
  expect(getTooltip()).toBeNull();
399
395
  });
@@ -409,8 +405,8 @@ class TuiPageObject {
409
405
  this.fixture = fixture;
410
406
  }
411
407
  static getIds({ nativeElement }) {
412
- const attributeValue = nativeElement.getAttribute(`automation-id`);
413
- return attributeValue === null ? [] : attributeValue.split(` `);
408
+ const attributeValue = nativeElement.getAttribute('automation-id');
409
+ return attributeValue === null ? [] : attributeValue.split(' ');
414
410
  }
415
411
  static containsId(debugElement, automationId) {
416
412
  return TuiPageObject.getIds(debugElement).includes(automationId);
@@ -430,24 +426,22 @@ class TuiPageObject {
430
426
  }
431
427
 
432
428
  function tuiReplaceNbsp(content) {
433
- var _a;
434
- return (_a = content === null || content === void 0 ? void 0 : content.replace(new RegExp(CHAR_NO_BREAK_SPACE, `g`), ` `)) !== null && _a !== void 0 ? _a : ``;
429
+ return content?.replace(new RegExp(CHAR_NO_BREAK_SPACE, 'g'), ' ') ?? '';
435
430
  }
436
431
 
437
432
  class TuiNativeInputPO {
438
- constructor(fixture, automationId, hostDebugElement) {
433
+ constructor(fixture, automationIdOrElement) {
439
434
  this.fixture = fixture;
440
- this.automationId = automationId;
441
- this.hostDebugElement = hostDebugElement;
435
+ this.automationIdOrElement = automationIdOrElement;
442
436
  this.pageObject = new TuiPageObject(fixture);
443
437
  }
444
438
  get nativeElement() {
445
- var _a, _b;
446
- return ((_b = (_a = this.pageObject.getByAutomationId(this.automationId, this.hostDebugElement)) === null || _a === void 0 ? void 0 : _a.nativeElement) !== null && _b !== void 0 ? _b : null);
439
+ return typeof this.automationIdOrElement === 'string'
440
+ ? this.pageObject.getByAutomationId(this.automationIdOrElement)?.nativeElement
441
+ : this.automationIdOrElement.nativeElement;
447
442
  }
448
443
  get value() {
449
- var _a, _b;
450
- return tuiReplaceNbsp((_b = (_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ``);
444
+ return tuiReplaceNbsp(this.nativeElement?.value ?? '');
451
445
  }
452
446
  get focused() {
453
447
  return document.activeElement === this.nativeElement;
@@ -457,7 +451,7 @@ class TuiNativeInputPO {
457
451
  const nativeElement = this.nativeElement;
458
452
  if (nativeElement) {
459
453
  nativeElement.value = value;
460
- nativeElement.dispatchEvent(new Event(`input`, { bubbles: true }));
454
+ nativeElement.dispatchEvent(new Event('input', { bubbles: true }));
461
455
  }
462
456
  this.fixture.detectChanges();
463
457
  }
@@ -468,44 +462,40 @@ class TuiNativeInputPO {
468
462
  this.blur();
469
463
  }
470
464
  sendKeydown(key) {
471
- var _a;
472
- (_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.dispatchEvent(tuiCreateKeyboardEvent(key, `keydown`));
465
+ this.nativeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, 'keydown'));
473
466
  this.fixture.detectChanges();
474
467
  }
475
468
  focus() {
476
- var _a;
477
- (_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.focus();
469
+ this.nativeElement?.focus();
478
470
  this.fixture.detectChanges();
479
471
  }
480
472
  blur() {
481
- var _a;
482
- (_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.blur();
473
+ this.nativeElement?.blur();
483
474
  this.fixture.detectChanges();
484
475
  }
485
476
  click() {
486
- var _a;
487
- (_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.click();
477
+ this.nativeElement?.click();
488
478
  this.fixture.detectChanges();
489
479
  }
490
480
  }
491
481
 
492
482
  function tuiTestingViewport(width, height) {
493
- Object.defineProperty(global, `innerWidth`, {
483
+ Object.defineProperty(global, 'innerWidth', {
494
484
  writable: true,
495
485
  configurable: true,
496
486
  value: width,
497
487
  });
498
- Object.defineProperty(global.document.documentElement, `clientWidth`, {
488
+ Object.defineProperty(global.document.documentElement, 'clientWidth', {
499
489
  writable: true,
500
490
  configurable: true,
501
491
  value: width - 15,
502
492
  });
503
- Object.defineProperty(global, `innerHeight`, {
493
+ Object.defineProperty(global, 'innerHeight', {
504
494
  writable: true,
505
495
  configurable: true,
506
496
  value: height,
507
497
  });
508
- Object.defineProperty(global.document.documentElement, `clientHeight`, {
498
+ Object.defineProperty(global.document.documentElement, 'clientHeight', {
509
499
  writable: true,
510
500
  configurable: true,
511
501
  value: height,
@@ -517,4 +507,4 @@ function tuiTestingViewport(width, height) {
517
507
  */
518
508
 
519
509
  export { TuiComponentHarness, TuiContentContainerComponentHarness, TuiNativeInputPO, TuiPageObject, configureTestSuite, tuiActiveText, tuiCreateKeyboardEvent, tuiDispatchOnActive, tuiHarnessWith, tuiIsActive, tuiMockCurrentDate, tuiReplaceNbsp, tuiRestoreRealDate, tuiTestCleaner, tuiTestFiller, tuiTestFormControlState, tuiTestPlaceholder, tuiTestTooltip, tuiTestingViewport, tuiWithPredicate };
520
- //# sourceMappingURL=taiga-ui-testing-utils.js.map
510
+ //# sourceMappingURL=taiga-ui-testing-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-testing-utils.mjs","sources":["../../../projects/testing/utils/keyboard-event.ts","../../../projects/testing/utils/active-element.ts","../../../projects/testing/utils/configure-test-suite.ts","../../../projects/testing/utils/date.ts","../../../projects/testing/utils/helpers.ts","../../../projects/testing/utils/input/cleaner.unit-common.ts","../../../projects/testing/utils/input/filler.unit-common.ts","../../../projects/testing/utils/input/form-control-state.unit-common.ts","../../../projects/testing/utils/input/placeholder.unit-common.ts","../../../projects/testing/utils/input/tooltip.unit-common.ts","../../../projects/testing/utils/page-object.ts","../../../projects/testing/utils/replace-nbsp.ts","../../../projects/testing/utils/native-input.page-object.ts","../../../projects/testing/utils/viewport.ts","../../../projects/testing/utils/taiga-ui-testing-utils.ts"],"sourcesContent":["export function tuiCreateKeyboardEvent(\n key: string,\n eventType = 'keydown',\n): KeyboardEvent {\n const event = new KeyboardEvent(eventType, {bubbles: true});\n\n delete (event as any).target;\n Object.defineProperty(event, 'type', {value: eventType});\n\n delete (event as any).key;\n Object.defineProperty(event, 'key', {value: key});\n\n return event;\n}\n","import type {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\n\nexport function tuiDispatchOnActive<T>(key: string, fixture?: ComponentFixture<T>): void {\n document.activeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, 'keydown'));\n\n fixture?.detectChanges();\n}\n\nexport function tuiActiveText(): string {\n return document.activeElement?.textContent?.trim() ?? '';\n}\n\nexport function tuiIsActive(element: Element): boolean {\n return document.activeElement === element;\n}\n","import type {ComponentFixture} from '@angular/core/testing';\nimport {getTestBed, TestBed} from '@angular/core/testing';\n\n/** deprecated, will be removed in 4.0 */\nexport const configureTestSuite = (configureModule?: () => void): void => {\n const testBedApi = getTestBed();\n const originReset = TestBed.resetTestingModule;\n\n beforeAll(() => {\n TestBed.resetTestingModule();\n TestBed.resetTestingModule = () => TestBed;\n });\n\n // Custom hook\n if (configureModule) {\n beforeAll(async () => {\n configureModule();\n await TestBed.compileComponents();\n });\n }\n\n afterEach(() => {\n // @ts-ignore\n testBedApi._activeFixtures.forEach((fixture: ComponentFixture<unknown>) =>\n fixture.destroy(),\n );\n // reset ViewEngine TestBed\n // @ts-ignore\n testBedApi._instantiated = false;\n // reset Ivy TestBed\n // @ts-ignore\n testBedApi._testModuleRef = null;\n });\n\n afterAll(() => {\n TestBed.resetTestingModule = originReset;\n TestBed.resetTestingModule();\n });\n};\n","import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\n\ndeclare const global: {Date: typeof Date};\n\nconst OriginalDate = global.Date;\n\nexport function tuiMockCurrentDate(dateOrNumber: Date | number): void {\n const date: Date = tuiIsNumber(dateOrNumber)\n ? new OriginalDate(dateOrNumber)\n : dateOrNumber;\n\n class MockDate extends OriginalDate {\n constructor() {\n super();\n\n return date;\n }\n }\n\n global.Date = MockDate as typeof Date;\n}\n\nexport function tuiRestoreRealDate(): void {\n global.Date = OriginalDate;\n}\n","import type {BaseHarnessFilters, ComponentHarnessConstructor} from '@angular/cdk/testing';\nimport {\n ComponentHarness,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/**\n * Decorator to add default static 'with' method.\n * Use in conjunction with {@link tuiHarnessWith} mixin.\n */\nexport function tuiWithPredicate<\n T extends ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n },\n>(original: T): T {\n original.with = (options: BaseHarnessFilters = {}) =>\n new HarnessPredicate(original, options);\n\n return original;\n}\n\n/**\n * Mixin to extend {@link ComponentHarness} and add typed\n * static 'with' method. Use {@link tuiWithPredicate} decorator\n * to monkey-patch default static 'with' method.\n */\nexport function tuiHarnessWith<T>(\n hostSelector: string,\n): ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n} {\n return class extends ComponentHarness {\n public static hostSelector = hostSelector;\n\n // @ts-ignore\n public static with(_options: BaseHarnessFilters = {}): HarnessPredicate<T> {\n throw new Error('Hummus');\n }\n } as unknown as ComponentHarnessConstructor<ComponentHarness> & {\n with: (options?: BaseHarnessFilters) => HarnessPredicate<ComponentHarness>;\n };\n}\n\nexport class TuiComponentHarness extends ComponentHarness {\n public static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\nexport class TuiContentContainerComponentHarness extends ContentContainerComponentHarness {\n public static with<T extends ComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n options: BaseHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n","/// <reference types=\"jest\" />\n\nimport type {DebugElement} from '@angular/core';\nimport type {ComponentFixture} from '@angular/core/testing';\nimport type {FormControl} from '@angular/forms';\n\nimport type {TuiNativeInputPO} from '../native-input.page-object';\nimport type {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: Test;\n}\n\ninterface Test {\n cleaner: boolean;\n control?: FormControl;\n disabled?: boolean;\n readOnly: boolean;\n value?: unknown;\n}\n\nexport function tuiTestCleaner(\n context: TestParams,\n setValue: any = 'value',\n clearValue: any = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: Test;\n let inputPO: TuiNativeInputPO;\n\n describe('Cross for field cleaning', () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.autoDetectChanges();\n });\n\n describe('Cross included', () => {\n beforeEach(() => {\n testComponent.cleaner = true;\n });\n\n it('If no value is specified, the cross is not shown', () => {\n updateValue(clearValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it('If the field is readonly, the cross is not shown', () => {\n updateValue(setValue);\n\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it('If the field is disabled, the cross is not shown', () => {\n updateValue(setValue);\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n testComponent.disabled = true;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n\n it('If a value is specified, a cross is shown', () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n expect(getCleaner()).not.toBeNull();\n });\n\n it('When you click on the cross, the field value is cleared', () => {\n updateValue(setValue);\n\n fixture.detectChanges();\n\n getCleaner()!.nativeElement.click();\n fixture.detectChanges();\n\n expect(inputPO.value).toBe('');\n\n if (testComponent.control !== undefined) {\n expect(testComponent.control.value).toEqual(clearValue);\n }\n\n if (testComponent.value !== undefined) {\n expect(testComponent.value).toEqual(clearValue);\n }\n });\n });\n\n describe('Cross disabled', () => {\n it('The value is set, the cross is not shown', () => {\n updateValue(setValue);\n\n testComponent.cleaner = false;\n fixture.detectChanges();\n\n expect(getCleaner()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getCleaner(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}cleaner`);\n }\n}\n","import type {DebugElement} from '@angular/core';\nimport type {ComponentFixture} from '@angular/core/testing';\nimport type {FormControl} from '@angular/forms';\n\nimport type {TuiNativeInputPO} from '../native-input.page-object';\nimport type {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: Test;\n}\n\ninterface Test {\n control: FormControl;\n}\n\nexport function tuiTestFiller(\n context: TestParams,\n setValue: unknown = 'value',\n clearValue: unknown = null,\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: Test;\n let inputPO: TuiNativeInputPO;\n\n describe('Filler (mask)', () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n describe('if there is no value in the field', () => {\n beforeEach(() => {\n testComponent.control.setValue(clearValue);\n fixture.detectChanges();\n });\n\n it('not visible', () => {\n expect(getFiller()).toBeNull();\n });\n\n it('when focusing appears', async () => {\n inputPO.focus();\n fixture.detectChanges();\n await fixture.whenStable();\n expect(getFiller()).not.toBeNull();\n });\n });\n\n describe('if the field has a value', () => {\n beforeEach(() => {\n testComponent.control.setValue(setValue);\n fixture.detectChanges();\n });\n\n it('not visible', () => {\n expect(getFiller()).toBeNull();\n });\n\n it('also not visible when focusing', () => {\n inputPO.nativeElement?.focus();\n fixture.detectChanges();\n\n expect(getFiller()).toBeNull();\n });\n });\n });\n\n function getFiller(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}filler`);\n }\n}\n","import type {ComponentFixture} from '@angular/core/testing';\nimport type {FormControl} from '@angular/forms';\n\nimport type {TuiNativeInputPO} from '../native-input.page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n inputPO: TuiNativeInputPO;\n testComponent: Test;\n}\n\ninterface Test {\n control: FormControl;\n}\n\nexport function tuiTestFormControlState(context: TestParams): void {\n let fixture: ComponentFixture<unknown>;\n let testComponent: Test;\n let inputPO: TuiNativeInputPO;\n\n describe('FormControl state', () => {\n beforeEach(() => {\n fixture = context.fixture;\n testComponent = context.testComponent;\n inputPO = context.inputPO;\n\n fixture.detectChanges();\n });\n\n it('After initializing control dirty === false', () => {\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it('After control initialization touched === false', () => {\n expect(testComponent.control.touched).toBe(false);\n });\n\n it('After setting value from outside dirty === false', () => {\n testComponent.control.setValue('123');\n fixture.detectChanges();\n\n expect(testComponent.control.dirty).toBe(false);\n });\n\n it('After entering the value dirty === true', () => {\n inputPO.sendText('123');\n\n expect(testComponent.control.dirty).toBe(true);\n });\n\n it('After setting and de-focusing touched === true', async () => {\n inputPO.focus();\n inputPO.blur();\n\n await fixture.whenStable();\n\n fixture.detectChanges();\n expect(testComponent.control.touched).toBe(true);\n });\n });\n}\n","import type {DebugElement} from '@angular/core';\nimport type {ComponentFixture} from '@angular/core/testing';\nimport type {FormControl} from '@angular/forms';\n\nimport type {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: Test;\n}\n\ninterface Test {\n control?: FormControl;\n labelOutside: boolean;\n size: 'l' | 'm' | 's';\n value?: unknown;\n}\n\nexport function tuiTestPlaceholder(\n context: TestParams,\n setValue: unknown = 'value',\n clearValue: unknown = '',\n): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: Test;\n\n describe('Placeholder', () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe('in size S', () => {\n beforeEach(() => {\n testComponent.size = 's';\n fixture.detectChanges();\n });\n\n it('if no value, then shown', () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it('if specified, not shown', () => {\n updateValue(setValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe('in size M', () => {\n beforeEach(() => {\n testComponent.size = 'm';\n fixture.detectChanges();\n });\n\n it('if no value, then shown', () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it('if a value is given, then', () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it('if value is given but label is outside, then not shown', () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n\n describe('in size L', () => {\n beforeEach(() => {\n testComponent.size = 'l';\n fixture.detectChanges();\n });\n\n it('if no value, then shown', () => {\n updateValue(clearValue);\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it('if a value is given, then', () => {\n updateValue(setValue);\n testComponent.labelOutside = false;\n fixture.detectChanges();\n\n expect(getPlaceholder()).not.toBeNull();\n });\n\n it('if value is given but label is outside, then not shown', () => {\n updateValue(setValue);\n testComponent.labelOutside = true;\n fixture.detectChanges();\n\n expect(getPlaceholder()).toBeNull();\n });\n });\n });\n\n function updateValue(value: unknown): void {\n if (testComponent.control) {\n testComponent.control.setValue(value);\n } else {\n testComponent.value = value;\n }\n }\n\n function getPlaceholder(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}placeholder`);\n }\n}\n","import type {DebugElement} from '@angular/core';\nimport type {ComponentFixture} from '@angular/core/testing';\nimport type {FormControl} from '@angular/forms';\n\nimport type {TuiPageObject} from '../page-object';\n\ninterface TestParams {\n fixture: ComponentFixture<unknown>;\n pageObject: TuiPageObject<unknown>;\n prefix: string;\n testComponent: Test;\n}\n\ninterface Test {\n control?: FormControl;\n disabled?: boolean;\n hintContent: string | null;\n readOnly: boolean;\n size: unknown;\n}\n\nexport function tuiTestTooltip(context: TestParams): void {\n let pageObject: TuiPageObject<unknown>;\n let fixture: ComponentFixture<unknown>;\n let testComponent: Test;\n\n describe('Tooltip in a field', () => {\n beforeEach(() => {\n pageObject = context.pageObject;\n fixture = context.fixture;\n testComponent = context.testComponent;\n\n fixture.autoDetectChanges();\n });\n\n describe('There is tooltip content', () => {\n it('if field is disabled, there is no tooltip', () => {\n testComponent.disabled = true;\n\n if (testComponent.control) {\n testComponent.control.disable();\n }\n\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n\n it('if field is not disabled, there is tooltip', () => {\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n\n it('if field is readonly, there is tooltip', () => {\n testComponent.readOnly = true;\n fixture.detectChanges();\n\n expect(getTooltip()).not.toBeNull();\n });\n });\n\n describe('There is no tooltip content', () => {\n beforeEach(() => {\n testComponent.hintContent = null;\n fixture.detectChanges();\n });\n\n it('tooltip without content is hidden', () => {\n fixture.detectChanges();\n\n expect(getTooltip()).toBeNull();\n });\n });\n });\n\n function getTooltip(): DebugElement | null {\n return pageObject.getByAutomationId(`${context.prefix}tooltip`);\n }\n}\n","import type {DebugElement, Predicate} from '@angular/core';\nimport type {ComponentFixture} from '@angular/core/testing';\n\nexport class TuiPageObject<T> {\n constructor(protected fixture: ComponentFixture<T>) {}\n\n public static getIds({nativeElement}: DebugElement): string[] {\n const attributeValue: string | null = nativeElement.getAttribute('automation-id');\n\n return attributeValue === null ? [] : attributeValue.split(' ');\n }\n\n public static containsId(debugElement: DebugElement, automationId: string): boolean {\n return TuiPageObject.getIds(debugElement).includes(automationId);\n }\n\n private static byAutomationId(automationId: string): Predicate<DebugElement> {\n return debugElement => TuiPageObject.containsId(debugElement, automationId);\n }\n\n public getByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement | null {\n return debugElement.query(TuiPageObject.byAutomationId(automationId));\n }\n\n // Syncing result order with DOM order: https://github.com/angular/angular/issues/13066\n public getAllByAutomationId(\n automationId: string,\n debugElement: DebugElement = this.fixture.debugElement,\n ): DebugElement[] {\n const debugEls = debugElement.queryAll(\n TuiPageObject.byAutomationId(automationId),\n );\n const domEls = Array.from(\n debugElement.nativeElement.querySelectorAll(\n `[automation-id='${automationId}']`,\n ),\n );\n\n return debugEls.sort(\n (a, b) => domEls.indexOf(a.nativeElement) - domEls.indexOf(b.nativeElement),\n );\n }\n}\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\n\nexport function tuiReplaceNbsp(content?: string): string {\n return content?.replace(new RegExp(CHAR_NO_BREAK_SPACE, 'g'), ' ') ?? '';\n}\n","import type {DebugElement} from '@angular/core';\nimport type {ComponentFixture} from '@angular/core/testing';\n\nimport {tuiCreateKeyboardEvent} from './keyboard-event';\nimport {TuiPageObject} from './page-object';\nimport {tuiReplaceNbsp} from './replace-nbsp';\n\nexport class TuiNativeInputPO {\n private readonly pageObject: TuiPageObject<unknown>;\n\n constructor(\n private readonly fixture: ComponentFixture<unknown>,\n private readonly automationIdOrElement: DebugElement | string,\n ) {\n this.pageObject = new TuiPageObject(fixture);\n }\n\n public get nativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return typeof this.automationIdOrElement === 'string'\n ? this.pageObject.getByAutomationId(this.automationIdOrElement)?.nativeElement\n : this.automationIdOrElement.nativeElement;\n }\n\n public get value(): string {\n return tuiReplaceNbsp(this.nativeElement?.value ?? '');\n }\n\n public get focused(): boolean {\n return document.activeElement === this.nativeElement;\n }\n\n public sendText(value: string): void {\n this.focus(); // need focus before initial value for emulate user interaction\n\n const nativeElement = this.nativeElement;\n\n if (nativeElement) {\n nativeElement.value = value;\n nativeElement.dispatchEvent(new Event('input', {bubbles: true}));\n }\n\n this.fixture.detectChanges();\n }\n\n // @bad TODO: Fix this with actually moving focus rather than just blurring\n public sendTextAndBlur(value: string): void {\n this.focus();\n this.sendText(value);\n this.blur();\n }\n\n public sendKeydown(key: string): void {\n this.nativeElement?.dispatchEvent(tuiCreateKeyboardEvent(key, 'keydown'));\n this.fixture.detectChanges();\n }\n\n public focus(): void {\n this.nativeElement?.focus();\n this.fixture.detectChanges();\n }\n\n public blur(): void {\n this.nativeElement?.blur();\n this.fixture.detectChanges();\n }\n\n public click(): void {\n this.nativeElement?.click();\n this.fixture.detectChanges();\n }\n}\n","export function tuiTestingViewport(width: number, height: number): void {\n Object.defineProperty(global, 'innerWidth', {\n writable: true,\n configurable: true,\n value: width,\n });\n\n Object.defineProperty(global.document.documentElement, 'clientWidth', {\n writable: true,\n configurable: true,\n value: width - 15,\n });\n\n Object.defineProperty(global, 'innerHeight', {\n writable: true,\n configurable: true,\n value: height,\n });\n\n Object.defineProperty(global.document.documentElement, 'clientHeight', {\n writable: true,\n configurable: true,\n value: height,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,4 +13,4 @@ export * from '@taiga-ui/testing/utils';
13
13
  /**
14
14
  * Generated bundle index. Do not edit.
15
15
  */
16
- //# sourceMappingURL=taiga-ui-testing.js.map
16
+ //# sourceMappingURL=taiga-ui-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-testing.mjs","sources":["../../../projects/testing/index.ts","../../../projects/testing/taiga-ui-testing.ts"],"sourcesContent":["/**\n * Public API Surface of testing\n *\n * @note:\n * don't export the cypress plugin as it isn't unit testing related\n */\nexport * from '@taiga-ui/testing/core';\nexport * from '@taiga-ui/testing/exceptions';\nexport * from '@taiga-ui/testing/mocks';\nexport * from '@taiga-ui/testing/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;;ACLH;;AAEG"}
@@ -1,4 +1,4 @@
1
- import { SecurityContext } from '@angular/core';
1
+ import type { SecurityContext } from '@angular/core';
2
2
  export declare const TUI_SANITIZER_MOCK: {
3
3
  provide: import("@angular/core").InjectionToken<import("@angular/core").Sanitizer>;
4
4
  useValue: {