@taiga-ui/testing 3.491.1-canary.d27927b → 4.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/core/accordion.harness.d.ts +0 -1
- package/core/avatar.harness.d.ts +1 -1
- package/core/badge.harness.d.ts +3 -3
- package/core/{primitive-calender.harness.d.ts → calendar-sheet.harness.d.ts} +1 -1
- package/core/{primitive-year-month-pagination.harness.d.ts → calendar-spin.harness.d.ts} +1 -1
- package/core/{primitive-year-picker.harness.d.ts → calendar-year.harness.d.ts} +1 -1
- package/core/calendar.harness.d.ts +3 -3
- package/core/card.harness.d.ts +0 -6
- package/core/dialog.harness.d.ts +6 -0
- package/core/{hosted-dropdown.harness.d.ts → dropdown-open.harness.d.ts} +1 -1
- package/core/index.d.ts +6 -6
- package/core/island.harness.d.ts +1 -1
- package/core/select.harness.d.ts +1 -1
- package/core/{primitive-spin-button.harness.d.ts → spin-button.harness.d.ts} +1 -1
- package/core/tag.harness.d.ts +2 -3
- package/esm2022/core/accordion-item.harness.mjs +32 -0
- package/esm2022/core/accordion.harness.mjs +6 -0
- package/esm2022/core/avatar.harness.mjs +9 -0
- package/esm2022/core/badge.harness.mjs +15 -0
- package/esm2022/core/button.harness.mjs +17 -0
- package/esm2022/core/calendar-sheet.harness.mjs +30 -0
- package/esm2022/core/calendar-spin.harness.mjs +33 -0
- package/esm2022/core/calendar-year.harness.mjs +23 -0
- package/esm2022/core/calendar.harness.mjs +51 -0
- package/esm2022/core/card.harness.mjs +15 -0
- package/esm2022/core/dialog.harness.mjs +12 -0
- package/esm2022/core/dropdown-open.harness.mjs +13 -0
- package/esm2022/core/index.mjs +21 -0
- package/esm2022/core/island.harness.mjs +39 -0
- package/esm2022/core/loader.harness.mjs +20 -0
- package/esm2022/core/primitive-textfield.harness.mjs +12 -0
- package/esm2022/core/select.harness.mjs +17 -0
- package/esm2022/core/spin-button.harness.mjs +13 -0
- package/esm2022/core/svg.harness.mjs +18 -0
- package/esm2022/core/tag.harness.mjs +26 -0
- package/esm2022/core/textfield.harness.mjs +9 -0
- package/esm2022/mocks/event.mjs +14 -0
- package/esm2022/mocks/sanitizer.mjs +13 -0
- package/esm2022/setup-jest/index.mjs +119 -0
- package/esm2022/utils/active-element.mjs +12 -0
- package/esm2022/utils/configure-test-suite.mjs +32 -0
- package/esm2022/utils/date.mjs +18 -0
- package/esm2022/utils/helpers.mjs +34 -0
- package/esm2022/utils/input/cleaner.unit-common.mjs +79 -0
- package/esm2022/utils/input/filler.unit-common.mjs +48 -0
- package/esm2022/utils/input/form-control-state.unit-common.mjs +36 -0
- package/{esm2015/utils/input/placeholder.unit-common.js → esm2022/utils/input/placeholder.unit-common.mjs} +17 -17
- package/esm2022/utils/input/tooltip.unit-common.mjs +46 -0
- package/esm2022/utils/keyboard-event.mjs +9 -0
- package/esm2022/utils/native-input.page-object.mjs +53 -0
- package/esm2022/utils/page-object.mjs +25 -0
- package/esm2022/utils/replace-nbsp.mjs +5 -0
- package/{esm2015/utils/viewport.js → esm2022/utils/viewport.mjs} +5 -5
- package/fesm2022/taiga-ui-testing-core.mjs +365 -0
- package/fesm2022/taiga-ui-testing-core.mjs.map +1 -0
- package/{fesm2015/taiga-ui-testing-exceptions.js → fesm2022/taiga-ui-testing-exceptions.mjs} +1 -1
- package/fesm2022/taiga-ui-testing-exceptions.mjs.map +1 -0
- package/{fesm2015/taiga-ui-testing-mocks.js → fesm2022/taiga-ui-testing-mocks.mjs} +5 -3
- package/fesm2022/taiga-ui-testing-mocks.mjs.map +1 -0
- package/{fesm2015/taiga-ui-testing-setup-jest.js → fesm2022/taiga-ui-testing-setup-jest.mjs} +21 -21
- package/fesm2022/taiga-ui-testing-setup-jest.mjs.map +1 -0
- package/{fesm2015/taiga-ui-testing-utils.js → fesm2022/taiga-ui-testing-utils.mjs} +94 -104
- package/fesm2022/taiga-ui-testing-utils.mjs.map +1 -0
- package/{fesm2015/taiga-ui-testing.js → fesm2022/taiga-ui-testing.mjs} +1 -1
- package/fesm2022/taiga-ui-testing.mjs.map +1 -0
- package/mocks/sanitizer.d.ts +1 -1
- package/package.json +49 -13
- package/utils/active-element.d.ts +1 -1
- package/utils/configure-test-suite.d.ts +2 -1
- package/utils/helpers.d.ts +2 -1
- package/utils/input/cleaner.unit-common.d.ts +6 -6
- package/utils/input/filler.unit-common.d.ts +6 -6
- package/utils/input/form-control-state.unit-common.d.ts +5 -5
- package/utils/input/placeholder.unit-common.d.ts +5 -5
- package/utils/input/tooltip.unit-common.d.ts +5 -5
- package/utils/native-input.page-object.d.ts +4 -5
- package/utils/page-object.d.ts +2 -2
- package/bundles/taiga-ui-testing-core.umd.js +0 -1388
- package/bundles/taiga-ui-testing-core.umd.js.map +0 -1
- package/bundles/taiga-ui-testing-cypress.umd.js +0 -484
- package/bundles/taiga-ui-testing-cypress.umd.js.map +0 -1
- package/bundles/taiga-ui-testing-exceptions.umd.js +0 -351
- package/bundles/taiga-ui-testing-exceptions.umd.js.map +0 -1
- package/bundles/taiga-ui-testing-mocks.umd.js +0 -369
- package/bundles/taiga-ui-testing-mocks.umd.js.map +0 -1
- package/bundles/taiga-ui-testing-setup-jest.umd.js +0 -135
- package/bundles/taiga-ui-testing-setup-jest.umd.js.map +0 -1
- package/bundles/taiga-ui-testing-utils.umd.js +0 -933
- package/bundles/taiga-ui-testing-utils.umd.js.map +0 -1
- package/bundles/taiga-ui-testing.umd.js +0 -46
- package/bundles/taiga-ui-testing.umd.js.map +0 -1
- package/core/action.harness.d.ts +0 -7
- package/core/marker-icon.harness.d.ts +0 -4
- package/core/package.json +0 -10
- package/core/taiga-ui-testing-core.d.ts +0 -5
- package/core/toggle.harness.d.ts +0 -8
- package/cypress/assertions/be-in-viewport.d.ts +0 -14
- package/cypress/assertions/index.d.ts +0 -1
- package/cypress/commands/wait-all-img-inside.command.d.ts +0 -2
- package/cypress/index.d.ts +0 -4
- package/cypress/package.json +0 -10
- package/cypress/snapshot/command.d.ts +0 -16
- package/cypress/snapshot/plugin.d.ts +0 -9
- package/cypress/taiga-ui-testing-cypress.d.ts +0 -5
- package/esm2015/core/accordion-item.harness.js +0 -49
- package/esm2015/core/accordion.harness.js +0 -11
- package/esm2015/core/action.harness.js +0 -16
- package/esm2015/core/avatar.harness.js +0 -11
- package/esm2015/core/badge.harness.js +0 -21
- package/esm2015/core/button.harness.js +0 -21
- package/esm2015/core/calendar.harness.js +0 -84
- package/esm2015/core/card.harness.js +0 -25
- package/esm2015/core/hosted-dropdown.harness.js +0 -17
- package/esm2015/core/index.js +0 -21
- package/esm2015/core/island.harness.js +0 -53
- package/esm2015/core/loader.harness.js +0 -25
- package/esm2015/core/marker-icon.harness.js +0 -5
- package/esm2015/core/primitive-calender.harness.js +0 -40
- package/esm2015/core/primitive-spin-button.harness.js +0 -17
- package/esm2015/core/primitive-textfield.harness.js +0 -16
- package/esm2015/core/primitive-year-month-pagination.harness.js +0 -49
- package/esm2015/core/primitive-year-picker.harness.js +0 -29
- package/esm2015/core/select.harness.js +0 -21
- package/esm2015/core/svg.harness.js +0 -27
- package/esm2015/core/tag.harness.js +0 -39
- package/esm2015/core/textfield.harness.js +0 -11
- package/esm2015/core/toggle.harness.js +0 -21
- package/esm2015/cypress/assertions/be-in-viewport.js +0 -28
- package/esm2015/cypress/assertions/index.js +0 -2
- package/esm2015/cypress/commands/wait-all-img-inside.command.js +0 -62
- package/esm2015/cypress/index.js +0 -5
- package/esm2015/cypress/snapshot/command.js +0 -25
- package/esm2015/cypress/snapshot/plugin.js +0 -26
- package/esm2015/cypress/taiga-ui-testing-cypress.js +0 -5
- package/esm2015/mocks/event.js +0 -12
- package/esm2015/mocks/sanitizer.js +0 -13
- package/esm2015/setup-jest/index.js +0 -119
- package/esm2015/utils/active-element.js +0 -14
- package/esm2015/utils/configure-test-suite.js +0 -32
- package/esm2015/utils/date.js +0 -18
- package/esm2015/utils/helpers.js +0 -36
- package/esm2015/utils/input/cleaner.unit-common.js +0 -79
- package/esm2015/utils/input/filler.unit-common.js +0 -50
- package/esm2015/utils/input/form-control-state.unit-common.js +0 -37
- package/esm2015/utils/input/tooltip.unit-common.js +0 -46
- package/esm2015/utils/keyboard-event.js +0 -9
- package/esm2015/utils/native-input.page-object.js +0 -58
- package/esm2015/utils/page-object.js +0 -25
- package/esm2015/utils/replace-nbsp.js +0 -6
- package/exceptions/package.json +0 -10
- package/exceptions/taiga-ui-testing-exceptions.d.ts +0 -5
- package/fesm2015/taiga-ui-testing-core.js +0 -557
- package/fesm2015/taiga-ui-testing-core.js.map +0 -1
- package/fesm2015/taiga-ui-testing-cypress.js +0 -145
- package/fesm2015/taiga-ui-testing-cypress.js.map +0 -1
- package/fesm2015/taiga-ui-testing-exceptions.js.map +0 -1
- package/fesm2015/taiga-ui-testing-mocks.js.map +0 -1
- package/fesm2015/taiga-ui-testing-setup-jest.js.map +0 -1
- package/fesm2015/taiga-ui-testing-utils.js.map +0 -1
- package/fesm2015/taiga-ui-testing.js.map +0 -1
- package/mocks/package.json +0 -10
- package/mocks/taiga-ui-testing-mocks.d.ts +0 -5
- package/setup-jest/package.json +0 -10
- package/setup-jest/taiga-ui-testing-setup-jest.d.ts +0 -5
- package/taiga-ui-testing.d.ts +0 -5
- package/utils/package.json +0 -10
- package/utils/taiga-ui-testing-utils.d.ts +0 -5
- /package/{esm2015/core/taiga-ui-testing-core.js → esm2022/core/taiga-ui-testing-core.mjs} +0 -0
- /package/{esm2015/exceptions/element-is-not-input.exception.js → esm2022/exceptions/element-is-not-input.exception.mjs} +0 -0
- /package/{esm2015/exceptions/field-not-found.exception.js → esm2022/exceptions/field-not-found.exception.mjs} +0 -0
- /package/{esm2015/exceptions/index.js → esm2022/exceptions/index.mjs} +0 -0
- /package/{esm2015/exceptions/taiga-ui-testing-exceptions.js → esm2022/exceptions/taiga-ui-testing-exceptions.mjs} +0 -0
- /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
- /package/{esm2015/mocks/index.js → esm2022/mocks/index.mjs} +0 -0
- /package/{esm2015/mocks/switch-ng-dev-mode.js → esm2022/mocks/switch-ng-dev-mode.mjs} +0 -0
- /package/{esm2015/mocks/taiga-ui-testing-mocks.js → esm2022/mocks/taiga-ui-testing-mocks.mjs} +0 -0
- /package/{esm2015/setup-jest/taiga-ui-testing-setup-jest.js → esm2022/setup-jest/taiga-ui-testing-setup-jest.mjs} +0 -0
- /package/{esm2015/taiga-ui-testing.js → esm2022/taiga-ui-testing.mjs} +0 -0
- /package/{esm2015/utils/index.js → esm2022/utils/index.mjs} +0 -0
- /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
|
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 =
|
6
|
+
function tuiCreateKeyboardEvent(key, eventType = 'keydown') {
|
7
7
|
const event = new KeyboardEvent(eventType, { bubbles: true });
|
8
8
|
delete event.target;
|
9
|
-
Object.defineProperty(event,
|
9
|
+
Object.defineProperty(event, 'type', { value: eventType });
|
10
10
|
delete event.key;
|
11
|
-
Object.defineProperty(event,
|
11
|
+
Object.defineProperty(event, 'key', { value: key });
|
12
12
|
return event;
|
13
13
|
}
|
14
14
|
|
15
15
|
function tuiDispatchOnActive(key, fixture) {
|
16
|
-
|
17
|
-
(
|
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
|
-
|
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(() =>
|
36
|
+
beforeAll(async () => {
|
38
37
|
configureModule();
|
39
|
-
|
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
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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="
|
111
|
-
function tuiTestCleaner(context, setValue =
|
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(
|
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(
|
121
|
+
describe('Cross included', () => {
|
125
122
|
beforeEach(() => {
|
126
123
|
testComponent.cleaner = true;
|
127
124
|
});
|
128
|
-
it(
|
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(
|
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(
|
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(
|
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(
|
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(
|
168
|
-
it(
|
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 =
|
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(
|
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(
|
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(
|
204
|
+
it('not visible', () => {
|
208
205
|
expect(getFiller()).toBeNull();
|
209
206
|
});
|
210
|
-
it(
|
207
|
+
it('when focusing appears', async () => {
|
211
208
|
inputPO.focus();
|
212
209
|
fixture.detectChanges();
|
213
|
-
|
210
|
+
await fixture.whenStable();
|
214
211
|
expect(getFiller()).not.toBeNull();
|
215
|
-
})
|
212
|
+
});
|
216
213
|
});
|
217
|
-
describe(
|
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(
|
219
|
+
it('not visible', () => {
|
223
220
|
expect(getFiller()).toBeNull();
|
224
221
|
});
|
225
|
-
it(
|
226
|
-
|
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(
|
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(
|
245
|
+
it('After initializing control dirty === false', () => {
|
250
246
|
expect(testComponent.control.dirty).toBe(false);
|
251
247
|
});
|
252
|
-
it(
|
248
|
+
it('After control initialization touched === false', () => {
|
253
249
|
expect(testComponent.control.touched).toBe(false);
|
254
250
|
});
|
255
|
-
it(
|
256
|
-
testComponent.control.setValue(
|
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(
|
261
|
-
inputPO.sendText(
|
256
|
+
it('After entering the value dirty === true', () => {
|
257
|
+
inputPO.sendText('123');
|
262
258
|
expect(testComponent.control.dirty).toBe(true);
|
263
259
|
});
|
264
|
-
it(
|
260
|
+
it('After setting and de-focusing touched === true', async () => {
|
265
261
|
inputPO.focus();
|
266
262
|
inputPO.blur();
|
267
|
-
|
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 =
|
270
|
+
function tuiTestPlaceholder(context, setValue = 'value', clearValue = '') {
|
275
271
|
let pageObject;
|
276
272
|
let fixture;
|
277
273
|
let testComponent;
|
278
|
-
describe(
|
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(
|
281
|
+
describe('in size S', () => {
|
286
282
|
beforeEach(() => {
|
287
|
-
testComponent.size =
|
283
|
+
testComponent.size = 's';
|
288
284
|
fixture.detectChanges();
|
289
285
|
});
|
290
|
-
it(
|
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(
|
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(
|
297
|
+
describe('in size M', () => {
|
302
298
|
beforeEach(() => {
|
303
|
-
testComponent.size =
|
299
|
+
testComponent.size = 'm';
|
304
300
|
fixture.detectChanges();
|
305
301
|
});
|
306
|
-
it(
|
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(
|
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(
|
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(
|
320
|
+
describe('in size L', () => {
|
325
321
|
beforeEach(() => {
|
326
|
-
testComponent.size =
|
322
|
+
testComponent.size = 'l';
|
327
323
|
fixture.detectChanges();
|
328
324
|
});
|
329
|
-
it(
|
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(
|
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(
|
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(
|
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(
|
373
|
-
it(
|
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(
|
377
|
+
it('if field is not disabled, there is tooltip', () => {
|
382
378
|
fixture.detectChanges();
|
383
379
|
expect(getTooltip()).not.toBeNull();
|
384
380
|
});
|
385
|
-
it(
|
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(
|
387
|
+
describe('There is no tooltip content', () => {
|
392
388
|
beforeEach(() => {
|
393
389
|
testComponent.hintContent = null;
|
394
390
|
fixture.detectChanges();
|
395
391
|
});
|
396
|
-
it(
|
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(
|
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
|
-
|
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,
|
433
|
+
constructor(fixture, automationIdOrElement) {
|
439
434
|
this.fixture = fixture;
|
440
|
-
this.
|
441
|
-
this.hostDebugElement = hostDebugElement;
|
435
|
+
this.automationIdOrElement = automationIdOrElement;
|
442
436
|
this.pageObject = new TuiPageObject(fixture);
|
443
437
|
}
|
444
438
|
get nativeElement() {
|
445
|
-
|
446
|
-
|
439
|
+
return typeof this.automationIdOrElement === 'string'
|
440
|
+
? this.pageObject.getByAutomationId(this.automationIdOrElement)?.nativeElement
|
441
|
+
: this.automationIdOrElement.nativeElement;
|
447
442
|
}
|
448
443
|
get value() {
|
449
|
-
|
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(
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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,
|
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,
|
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,
|
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,
|
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.
|
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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"}
|
@@ -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"}
|
package/mocks/sanitizer.d.ts
CHANGED