@onecx/angular-testing 4.13.0 → 4.13.2
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -1,537 +0,0 @@
|
|
1
|
-
import { ComponentHarness, HarnessPredicate, ContentContainerComponentHarness, TestKey } from '@angular/cdk/testing';
|
2
|
-
export * from '@angular/cdk/testing';
|
3
|
-
export * from '@angular/cdk/testing/testbed';
|
4
|
-
|
5
|
-
class PButtonDirectiveHarness extends ComponentHarness {
|
6
|
-
static with(options) {
|
7
|
-
return new HarnessPredicate(PButtonDirectiveHarness, options).addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id));
|
8
|
-
}
|
9
|
-
async getId() {
|
10
|
-
return await (await this.host()).getAttribute('id');
|
11
|
-
}
|
12
|
-
async click() {
|
13
|
-
await (await this.host()).click();
|
14
|
-
}
|
15
|
-
async getLabel() {
|
16
|
-
return await (await this.host()).text();
|
17
|
-
}
|
18
|
-
async getIcon() {
|
19
|
-
return await (await this.host()).getAttribute('ng-reflect-icon');
|
20
|
-
}
|
21
|
-
async getDisabled() {
|
22
|
-
return await (await this.host()).getProperty('disabled');
|
23
|
-
}
|
24
|
-
}
|
25
|
-
PButtonDirectiveHarness.hostSelector = 'button[pButton]';
|
26
|
-
|
27
|
-
class PButtonHarness extends ComponentHarness {
|
28
|
-
static with(options) {
|
29
|
-
return new HarnessPredicate(PButtonHarness, options).addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id));
|
30
|
-
}
|
31
|
-
async getId() {
|
32
|
-
return await (await this.host()).getAttribute('id');
|
33
|
-
}
|
34
|
-
async click() {
|
35
|
-
await (await this.locatorFor('button')()).click();
|
36
|
-
}
|
37
|
-
}
|
38
|
-
PButtonHarness.hostSelector = 'p-button';
|
39
|
-
|
40
|
-
class PChartHarness extends ComponentHarness {
|
41
|
-
async getType() {
|
42
|
-
return await (await this.host()).getAttribute('ng-reflect-type');
|
43
|
-
}
|
44
|
-
async getOptions() {
|
45
|
-
return await (await this.host()).getAttribute('ng-reflect-options');
|
46
|
-
}
|
47
|
-
}
|
48
|
-
PChartHarness.hostSelector = 'p-chart';
|
49
|
-
|
50
|
-
class DivHarness extends ComponentHarness {
|
51
|
-
static with(options) {
|
52
|
-
return new HarnessPredicate(DivHarness, options).addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c));
|
53
|
-
}
|
54
|
-
async getByClass(c) {
|
55
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
56
|
-
}
|
57
|
-
async checkHasClass(value) {
|
58
|
-
return await (await this.host()).hasClass(value);
|
59
|
-
}
|
60
|
-
async getText() {
|
61
|
-
return await (await this.host()).text();
|
62
|
-
}
|
63
|
-
async getClassList() {
|
64
|
-
const host = await this.host();
|
65
|
-
const attributeString = await host.getAttribute('class');
|
66
|
-
if (attributeString) {
|
67
|
-
return attributeString.trim().split(' ');
|
68
|
-
}
|
69
|
-
return [];
|
70
|
-
}
|
71
|
-
async click() {
|
72
|
-
await (await this.host()).click();
|
73
|
-
}
|
74
|
-
}
|
75
|
-
DivHarness.hostSelector = 'div';
|
76
|
-
|
77
|
-
class InputHarness extends ComponentHarness {
|
78
|
-
static with(options) {
|
79
|
-
return new HarnessPredicate(InputHarness, options).addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id));
|
80
|
-
}
|
81
|
-
async getId() {
|
82
|
-
return await (await this.host()).getAttribute('id');
|
83
|
-
}
|
84
|
-
async getValue() {
|
85
|
-
return await (await this.host()).getProperty('value');
|
86
|
-
}
|
87
|
-
async getChecked() {
|
88
|
-
return await (await this.host()).getProperty('checked');
|
89
|
-
}
|
90
|
-
async setValue(value) {
|
91
|
-
if (value instanceof Date) {
|
92
|
-
await (await this.host()).setInputValue(`${value.toLocaleDateString([], {
|
93
|
-
month: '2-digit',
|
94
|
-
day: '2-digit',
|
95
|
-
year: 'numeric',
|
96
|
-
})} ${value.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}`);
|
97
|
-
}
|
98
|
-
else {
|
99
|
-
await (await this.host()).clear();
|
100
|
-
if (value) {
|
101
|
-
await (await this.host()).sendKeys(value);
|
102
|
-
}
|
103
|
-
await (await this.host()).setInputValue(value);
|
104
|
-
}
|
105
|
-
}
|
106
|
-
async getTestElement() {
|
107
|
-
return await this.host();
|
108
|
-
}
|
109
|
-
async click() {
|
110
|
-
await (await this.host()).click();
|
111
|
-
}
|
112
|
-
}
|
113
|
-
InputHarness.hostSelector = 'input';
|
114
|
-
|
115
|
-
class PCheckboxHarness extends ComponentHarness {
|
116
|
-
constructor() {
|
117
|
-
super(...arguments);
|
118
|
-
this.getCheckBoxDiv = this.locatorForOptional(DivHarness.with({ class: 'p-checkbox-box' }));
|
119
|
-
}
|
120
|
-
static with(options) {
|
121
|
-
return new HarnessPredicate(PCheckboxHarness, options).addOption('inputid', options.inputid, (harness, inputid) => HarnessPredicate.stringMatches(harness.getId(), inputid));
|
122
|
-
}
|
123
|
-
async isChecked() {
|
124
|
-
return (await this.locatorFor(InputHarness)()).getChecked();
|
125
|
-
}
|
126
|
-
async getId() {
|
127
|
-
return await (await this.host()).getAttribute('inputId');
|
128
|
-
}
|
129
|
-
async isHidden() {
|
130
|
-
const attr = await (await this.host()).getAttribute('hidden');
|
131
|
-
return Boolean(attr);
|
132
|
-
}
|
133
|
-
async click() {
|
134
|
-
await (await this.getCheckBoxDiv())?.click();
|
135
|
-
}
|
136
|
-
}
|
137
|
-
PCheckboxHarness.hostSelector = 'p-checkbox';
|
138
|
-
|
139
|
-
class PDialogHarness extends ContentContainerComponentHarness {
|
140
|
-
constructor() {
|
141
|
-
super(...arguments);
|
142
|
-
this.getHeader = this.locatorForOptional(DivHarness.with({ class: 'p-dialog-header' }));
|
143
|
-
this.getFooter = this.locatorForOptional(DivHarness.with({ class: 'p-dialog-footer' }));
|
144
|
-
}
|
145
|
-
async getDialogTitle() {
|
146
|
-
return await (await this.getHeader())?.getText();
|
147
|
-
}
|
148
|
-
async close() {
|
149
|
-
if (await this.isVisible()) {
|
150
|
-
await (await this.host()).sendKeys(TestKey.ESCAPE);
|
151
|
-
}
|
152
|
-
else {
|
153
|
-
console.warn('Unable to close CustomGroupColumnSelectionDialog, because it is not open.');
|
154
|
-
}
|
155
|
-
}
|
156
|
-
async isVisible() {
|
157
|
-
return (await (await this.host()).getAttribute('ng-reflect-visible')) === 'true' ? true : false;
|
158
|
-
}
|
159
|
-
}
|
160
|
-
PDialogHarness.hostSelector = 'p-dialog';
|
161
|
-
|
162
|
-
class ListItemHarness extends ComponentHarness {
|
163
|
-
async getText() {
|
164
|
-
return await (await this.host()).text();
|
165
|
-
}
|
166
|
-
async isSelected() {
|
167
|
-
return (await (await this.host()).getAttribute('aria-selected')) === 'true' ? true : false;
|
168
|
-
}
|
169
|
-
async selectItem() {
|
170
|
-
await (await this.host()).click();
|
171
|
-
}
|
172
|
-
}
|
173
|
-
ListItemHarness.hostSelector = 'li';
|
174
|
-
|
175
|
-
class PDropdownHarness extends ContentContainerComponentHarness {
|
176
|
-
static with(options) {
|
177
|
-
return new HarnessPredicate(PDropdownHarness, options).addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id));
|
178
|
-
}
|
179
|
-
async getId() {
|
180
|
-
return await (await this.host()).getAttribute('id');
|
181
|
-
}
|
182
|
-
async getDefaultText() {
|
183
|
-
return (await this.locatorForOptional('span.p-placeholder')())?.text();
|
184
|
-
}
|
185
|
-
async isOpen() {
|
186
|
-
return (await this.locatorFor('div')()).hasClass('p-dropdown-open');
|
187
|
-
}
|
188
|
-
async open() {
|
189
|
-
if (!(await this.isOpen())) {
|
190
|
-
await (await this.locatorFor('div')()).click();
|
191
|
-
}
|
192
|
-
else {
|
193
|
-
console.warn('Unable to open dropdown, because it is already open.');
|
194
|
-
}
|
195
|
-
}
|
196
|
-
async close() {
|
197
|
-
if (await this.isOpen()) {
|
198
|
-
await (await this.locatorFor('div')()).click();
|
199
|
-
}
|
200
|
-
else {
|
201
|
-
console.warn('Unable to close dropdown, because it is not open.');
|
202
|
-
}
|
203
|
-
}
|
204
|
-
async getDropdownItems() {
|
205
|
-
await this.open();
|
206
|
-
const dropdownItems = this.locatorForAll(ListItemHarness)();
|
207
|
-
return await dropdownItems;
|
208
|
-
}
|
209
|
-
async selectedDropdownItem(position) {
|
210
|
-
const selectedColumnGroup = await Promise.all((await this.getDropdownItems()).filter((listItem) => listItem.isSelected()));
|
211
|
-
return selectedColumnGroup[position];
|
212
|
-
}
|
213
|
-
async selectedDropdownItemText(position) {
|
214
|
-
return (await this.selectedDropdownItem(position)).getText();
|
215
|
-
}
|
216
|
-
async hasClearOption() {
|
217
|
-
return (await this.locatorFor('div')()).hasClass('p-dropdown-clearable');
|
218
|
-
}
|
219
|
-
}
|
220
|
-
PDropdownHarness.hostSelector = 'p-dropdown';
|
221
|
-
|
222
|
-
class MenuItemHarness extends ComponentHarness {
|
223
|
-
async getText() {
|
224
|
-
return await (await this.host()).text();
|
225
|
-
}
|
226
|
-
async selectItem() {
|
227
|
-
await (await this.host()).click();
|
228
|
-
}
|
229
|
-
}
|
230
|
-
MenuItemHarness.hostSelector = 'li > a';
|
231
|
-
|
232
|
-
class PMenuHarness extends ContentContainerComponentHarness {
|
233
|
-
async getHarnessLoaderForPMenuOverlay() {
|
234
|
-
return this.documentRootLocatorFactory().harnessLoaderForOptional('.p-menu-overlay');
|
235
|
-
}
|
236
|
-
async isOpen() {
|
237
|
-
return !!(await this.getHarnessLoaderForPMenuOverlay());
|
238
|
-
}
|
239
|
-
async getAllMenuItems() {
|
240
|
-
if (await this.isOpen()) {
|
241
|
-
return await (await this.getHarnessLoaderForPMenuOverlay())?.getAllHarnesses(MenuItemHarness);
|
242
|
-
}
|
243
|
-
else {
|
244
|
-
console.warn('Cannot get menu items because menu is closed.');
|
245
|
-
}
|
246
|
-
return [];
|
247
|
-
}
|
248
|
-
}
|
249
|
-
PMenuHarness.hostSelector = 'p-menu';
|
250
|
-
|
251
|
-
class PMultiSelectListItemHarness extends ComponentHarness {
|
252
|
-
async getTestElement() {
|
253
|
-
return await this.host();
|
254
|
-
}
|
255
|
-
async click() {
|
256
|
-
await (await this.host()).click();
|
257
|
-
}
|
258
|
-
async getText() {
|
259
|
-
return await (await this.host()).text();
|
260
|
-
}
|
261
|
-
}
|
262
|
-
PMultiSelectListItemHarness.hostSelector = 'li';
|
263
|
-
|
264
|
-
class PMultiSelectHarness extends ComponentHarness {
|
265
|
-
static with(options) {
|
266
|
-
return new HarnessPredicate(PMultiSelectHarness, options)
|
267
|
-
.addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id))
|
268
|
-
.addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c));
|
269
|
-
}
|
270
|
-
async getId() {
|
271
|
-
return await (await this.host()).getAttribute('id');
|
272
|
-
}
|
273
|
-
async getByClass(c) {
|
274
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
275
|
-
}
|
276
|
-
async getHarnessLoaderForPMultiSelectPanel() {
|
277
|
-
const rootLocator = this.documentRootLocatorFactory();
|
278
|
-
return rootLocator.harnessLoaderFor('.p-multiselect-panel');
|
279
|
-
}
|
280
|
-
async getAllOptions() {
|
281
|
-
if (!(await this.isOpen())) {
|
282
|
-
await this.open();
|
283
|
-
}
|
284
|
-
return await (await this.getHarnessLoaderForPMultiSelectPanel()).getAllHarnesses(PMultiSelectListItemHarness);
|
285
|
-
}
|
286
|
-
async isOpen() {
|
287
|
-
return await (await this.locatorFor('div')()).hasClass('p-multiselect-open');
|
288
|
-
}
|
289
|
-
async open() {
|
290
|
-
if (!(await this.isOpen())) {
|
291
|
-
await (await this.locatorFor('div')()).click();
|
292
|
-
}
|
293
|
-
else {
|
294
|
-
console.warn('Unable to open multiSelect, because it is already open.');
|
295
|
-
}
|
296
|
-
}
|
297
|
-
async close() {
|
298
|
-
if (await this.isOpen()) {
|
299
|
-
await (await this.locatorFor('div')()).click();
|
300
|
-
}
|
301
|
-
else {
|
302
|
-
console.warn('Unable to close multiSelect, because it is not open.');
|
303
|
-
}
|
304
|
-
}
|
305
|
-
async isHighlighted(PMultiSelectListItem) {
|
306
|
-
return await (await PMultiSelectListItem.getTestElement()).hasClass('p-highlight');
|
307
|
-
}
|
308
|
-
async getSelectedOptions() {
|
309
|
-
const allOptions = await this.getAllOptions();
|
310
|
-
const selectedOptions = [];
|
311
|
-
for (let index = 0; index < allOptions.length; index++) {
|
312
|
-
const option = allOptions[index];
|
313
|
-
if (await this.isHighlighted(option)) {
|
314
|
-
selectedOptions.push(await option.getText());
|
315
|
-
}
|
316
|
-
}
|
317
|
-
return selectedOptions;
|
318
|
-
}
|
319
|
-
}
|
320
|
-
PMultiSelectHarness.hostSelector = 'p-multiSelect';
|
321
|
-
|
322
|
-
class ButtonHarness extends ComponentHarness {
|
323
|
-
static with(options) {
|
324
|
-
return new HarnessPredicate(ButtonHarness, options)
|
325
|
-
.addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id))
|
326
|
-
.addOption('icon', options.icon, (harness, icon) => HarnessPredicate.stringMatches(harness.getIcon(), icon))
|
327
|
-
.addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c));
|
328
|
-
}
|
329
|
-
async getId() {
|
330
|
-
return await (await this.host()).getAttribute('id');
|
331
|
-
}
|
332
|
-
async getIcon() {
|
333
|
-
return await (await this.host()).getAttribute('icon');
|
334
|
-
}
|
335
|
-
async getByClass(c) {
|
336
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
337
|
-
}
|
338
|
-
async click() {
|
339
|
-
if (!(await this.isDisabled())) {
|
340
|
-
await (await this.host()).click();
|
341
|
-
}
|
342
|
-
else {
|
343
|
-
console.warn('Button cannot be clicked, because it is disabled!');
|
344
|
-
}
|
345
|
-
}
|
346
|
-
async isDisabled() {
|
347
|
-
return await (await this.host()).getProperty('disabled');
|
348
|
-
}
|
349
|
-
}
|
350
|
-
ButtonHarness.hostSelector = 'button';
|
351
|
-
|
352
|
-
class PPicklistControlsButtonsHarness extends ContentContainerComponentHarness {
|
353
|
-
constructor() {
|
354
|
-
super(...arguments);
|
355
|
-
this.getButtons = this.locatorForAll(ButtonHarness);
|
356
|
-
}
|
357
|
-
static with(options) {
|
358
|
-
return new HarnessPredicate(PPicklistControlsButtonsHarness, options).addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c));
|
359
|
-
}
|
360
|
-
async getByClass(c) {
|
361
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
362
|
-
}
|
363
|
-
}
|
364
|
-
PPicklistControlsButtonsHarness.hostSelector = '.p-picklist-buttons';
|
365
|
-
class PPicklistListWrapperHarness extends ContentContainerComponentHarness {
|
366
|
-
constructor() {
|
367
|
-
super(...arguments);
|
368
|
-
this.getHeader = this.locatorFor(DivHarness.with({ class: 'p-picklist-header' }));
|
369
|
-
this.getAllListItems = this.locatorForAll(ListItemHarness);
|
370
|
-
}
|
371
|
-
static with(options) {
|
372
|
-
return new HarnessPredicate(PPicklistListWrapperHarness, options).addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c));
|
373
|
-
}
|
374
|
-
async getByClass(c) {
|
375
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
376
|
-
}
|
377
|
-
}
|
378
|
-
PPicklistListWrapperHarness.hostSelector = '.p-picklist-list-wrapper';
|
379
|
-
class PPicklistHarness extends ContentContainerComponentHarness {
|
380
|
-
constructor() {
|
381
|
-
super(...arguments);
|
382
|
-
this.getPicklistSourceControls = this.locatorFor(PPicklistControlsButtonsHarness.with({ class: 'p-picklist-source-controls' }));
|
383
|
-
this.getPicklistTransferControls = this.locatorFor(PPicklistControlsButtonsHarness.with({ class: 'p-picklist-transfer-buttons' }));
|
384
|
-
this.getPicklistTargetControls = this.locatorFor(PPicklistControlsButtonsHarness.with({ class: 'p-picklist-target-controls' }));
|
385
|
-
this.getPicklistSource = this.locatorFor(PPicklistListWrapperHarness.with({ class: 'p-picklist-source-wrapper' }));
|
386
|
-
this.getPicklistTarget = this.locatorFor(PPicklistListWrapperHarness.with({ class: 'p-picklist-target-wrapper' }));
|
387
|
-
}
|
388
|
-
async getSourceControlsButtons() {
|
389
|
-
return await (await this.getPicklistSourceControls()).getButtons();
|
390
|
-
}
|
391
|
-
async getTransferControlsButtons() {
|
392
|
-
return await (await this.getPicklistTransferControls()).getButtons();
|
393
|
-
}
|
394
|
-
async getTargetControlsButtons() {
|
395
|
-
return await (await this.getPicklistTargetControls()).getButtons();
|
396
|
-
}
|
397
|
-
async getSourceHeader() {
|
398
|
-
return await (await (await this.getPicklistSource()).getHeader()).getText();
|
399
|
-
}
|
400
|
-
async getTargetHeader() {
|
401
|
-
return await (await (await this.getPicklistTarget()).getHeader()).getText();
|
402
|
-
}
|
403
|
-
async getSourceListItems() {
|
404
|
-
return await (await this.getPicklistSource()).getAllListItems();
|
405
|
-
}
|
406
|
-
async getTargetListItems() {
|
407
|
-
return await (await this.getPicklistTarget()).getAllListItems();
|
408
|
-
}
|
409
|
-
}
|
410
|
-
PPicklistHarness.hostSelector = 'p-picklist';
|
411
|
-
|
412
|
-
class PSelectButtonHarness extends ContentContainerComponentHarness {
|
413
|
-
constructor() {
|
414
|
-
super(...arguments);
|
415
|
-
this.getAllButtons = this.locatorForAll('div > div');
|
416
|
-
}
|
417
|
-
}
|
418
|
-
PSelectButtonHarness.hostSelector = 'p-selectbutton';
|
419
|
-
|
420
|
-
class SpanHarness extends ComponentHarness {
|
421
|
-
static with(options) {
|
422
|
-
return new HarnessPredicate(SpanHarness, options).addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c));
|
423
|
-
}
|
424
|
-
async getByClass(c) {
|
425
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
426
|
-
}
|
427
|
-
async checkHasClass(value) {
|
428
|
-
return await (await this.host()).hasClass(value);
|
429
|
-
}
|
430
|
-
async getText() {
|
431
|
-
return await (await this.host()).text();
|
432
|
-
}
|
433
|
-
}
|
434
|
-
SpanHarness.hostSelector = 'span';
|
435
|
-
|
436
|
-
class PPaginatorHarness extends ContentContainerComponentHarness {
|
437
|
-
constructor() {
|
438
|
-
super(...arguments);
|
439
|
-
this.getCurrentPageReport = this.locatorFor(SpanHarness.with({ class: 'p-paginator-current' }));
|
440
|
-
this.getRowsPerPageOptions = this.locatorFor(PDropdownHarness);
|
441
|
-
this.getNextPageButton = this.locatorFor(ButtonHarness.with({ class: 'p-paginator-next' }));
|
442
|
-
}
|
443
|
-
async getCurrentPageReportText() {
|
444
|
-
return await (await this.getCurrentPageReport()).getText();
|
445
|
-
}
|
446
|
-
async clickNextPage() {
|
447
|
-
;
|
448
|
-
(await this.getNextPageButton()).click();
|
449
|
-
}
|
450
|
-
}
|
451
|
-
PPaginatorHarness.hostSelector = 'p-paginator';
|
452
|
-
|
453
|
-
class PTableCheckboxHarness extends ComponentHarness {
|
454
|
-
static with(options = {}) {
|
455
|
-
return new HarnessPredicate(this, options).addOption('isSelected', options.isSelected, async (harness, selected) => {
|
456
|
-
return (await harness.isChecked()) === selected;
|
457
|
-
});
|
458
|
-
}
|
459
|
-
async isChecked() {
|
460
|
-
const allChecked = await this.locatorForAll('.pi-check')();
|
461
|
-
return allChecked.length === 1;
|
462
|
-
}
|
463
|
-
async checkBox() {
|
464
|
-
const checkBoxElement = await this.locatorFor('.p-checkbox-box')();
|
465
|
-
return checkBoxElement.click();
|
466
|
-
}
|
467
|
-
}
|
468
|
-
PTableCheckboxHarness.hostSelector = 'p-tableCheckbox';
|
469
|
-
|
470
|
-
class PHarness extends ComponentHarness {
|
471
|
-
static with(options) {
|
472
|
-
return new HarnessPredicate(PHarness, options)
|
473
|
-
.addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c))
|
474
|
-
.addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.hasId(id), id));
|
475
|
-
}
|
476
|
-
async getByClass(c) {
|
477
|
-
return (await (await this.host()).hasClass(c)) ? c : '';
|
478
|
-
}
|
479
|
-
async hasId(id) {
|
480
|
-
return (await (await this.host()).matchesSelector('#' + id)) ? id : '';
|
481
|
-
}
|
482
|
-
async checkHasClass(value) {
|
483
|
-
return await (await this.host()).hasClass(value);
|
484
|
-
}
|
485
|
-
async getText() {
|
486
|
-
return await (await this.host()).text();
|
487
|
-
}
|
488
|
-
async getClassList() {
|
489
|
-
const host = await this.host();
|
490
|
-
const attributeString = await host.getAttribute('class');
|
491
|
-
if (attributeString) {
|
492
|
-
return attributeString.trim().split(' ');
|
493
|
-
}
|
494
|
-
return [];
|
495
|
-
}
|
496
|
-
}
|
497
|
-
PHarness.hostSelector = 'p';
|
498
|
-
|
499
|
-
class TableHeaderColumnHarness extends ContentContainerComponentHarness {
|
500
|
-
constructor() {
|
501
|
-
super(...arguments);
|
502
|
-
this.getSortButton = this.locatorFor(ButtonHarness.with({
|
503
|
-
class: 'sortButton',
|
504
|
-
}));
|
505
|
-
this.getFilterMultiSelect = this.locatorFor(PMultiSelectHarness.with({
|
506
|
-
class: 'filterMultiSelect',
|
507
|
-
}));
|
508
|
-
}
|
509
|
-
async getText() {
|
510
|
-
return (await this.host()).text();
|
511
|
-
}
|
512
|
-
}
|
513
|
-
TableHeaderColumnHarness.hostSelector = 'th';
|
514
|
-
|
515
|
-
class TableRowHarness extends ContentContainerComponentHarness {
|
516
|
-
constructor() {
|
517
|
-
super(...arguments);
|
518
|
-
this.getAllActionButtons = this.locatorForAll('button');
|
519
|
-
this.getViewButton = this.locatorForOptional(ButtonHarness.with({ class: 'viewTableRowButton' }));
|
520
|
-
this.getEditButton = this.locatorForOptional(ButtonHarness.with({ class: 'editTableRowButton' }));
|
521
|
-
this.getDeleteButton = this.locatorForOptional(ButtonHarness.with({ class: 'deleteTableRowButton' }));
|
522
|
-
}
|
523
|
-
async getData() {
|
524
|
-
const tds = await this.locatorForAll('td')();
|
525
|
-
const isActionsTd = await Promise.all(tds.map((t) => t.hasClass('actions')));
|
526
|
-
const textTds = tds.filter((_v, index) => !isActionsTd[index]);
|
527
|
-
return Promise.all(textTds.map((t) => t.text()));
|
528
|
-
}
|
529
|
-
}
|
530
|
-
TableRowHarness.hostSelector = 'tbody > tr';
|
531
|
-
|
532
|
-
/**
|
533
|
-
* Generated bundle index. Do not edit.
|
534
|
-
*/
|
535
|
-
|
536
|
-
export { ButtonHarness, DivHarness, InputHarness, ListItemHarness, MenuItemHarness, PButtonDirectiveHarness, PButtonHarness, PChartHarness, PCheckboxHarness, PDialogHarness, PDropdownHarness, PHarness, PMenuHarness, PMultiSelectHarness, PMultiSelectListItemHarness, PPaginatorHarness, PPicklistControlsButtonsHarness, PPicklistHarness, PPicklistListWrapperHarness, PSelectButtonHarness, PTableCheckboxHarness, SpanHarness, TableHeaderColumnHarness, TableRowHarness };
|
537
|
-
//# sourceMappingURL=onecx-angular-testing.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"onecx-angular-testing.mjs","sources":["../../../../libs/angular-testing/src/lib/harnesses/primeng/p-button-directive.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-button.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-chart.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/div.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/input.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-checkbox.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-dialog.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/list-item.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-dropdown.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/menu-item.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-menu.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-multiSelectListItem.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-multiSelect.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/button.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-picklist.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-selectButton.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/span.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/primeng/p-paginator.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/p-tableCheckbox.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/p.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/table-header-column.harness.ts","../../../../libs/angular-testing/src/lib/harnesses/table-row.harness.ts","../../../../libs/angular-testing/src/onecx-angular-testing.ts"],"sourcesContent":["import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface PButtonDirectiveHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class PButtonDirectiveHarness extends ComponentHarness {\n static hostSelector = 'button[pButton]'\n\n static with(options: PButtonDirectiveHarnessFilters): HarnessPredicate<PButtonDirectiveHarness> {\n return new HarnessPredicate(PButtonDirectiveHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async click() {\n await (await this.host()).click()\n }\n\n async getLabel(): Promise<string | null> {\n return await (await this.host()).text()\n }\n\n async getIcon(): Promise<string | null> {\n return await (await this.host()).getAttribute('ng-reflect-icon')\n }\n\n async getDisabled(): Promise<boolean> {\n return await (await this.host()).getProperty('disabled')\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface PButtonHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\nexport class PButtonHarness extends ComponentHarness {\n static hostSelector = 'p-button'\n\n static with(options: PButtonHarnessFilters): HarnessPredicate<PButtonHarness> {\n return new HarnessPredicate(PButtonHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async click() {\n await (await this.locatorFor('button')()).click()\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class PChartHarness extends ComponentHarness {\n static hostSelector = 'p-chart'\n\n async getType(): Promise<string | null> {\n return await (await this.host()).getAttribute('ng-reflect-type')\n }\n async getOptions(): Promise<string | null> {\n return await (await this.host()).getAttribute('ng-reflect-options')\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface DivHarnessFilters extends BaseHarnessFilters {\n class?: string\n}\n\nexport class DivHarness extends ComponentHarness {\n static hostSelector = 'div'\n\n static with(options: DivHarnessFilters): HarnessPredicate<DivHarness> {\n return new HarnessPredicate(DivHarness, options).addOption('class', options.class, (harness, c) =>\n HarnessPredicate.stringMatches(harness.getByClass(c), c)\n )\n }\n\n async getByClass(c: string): Promise<string> {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n\n async checkHasClass(value: string) {\n return await (await this.host()).hasClass(value)\n }\n\n async getText(): Promise<string> {\n return await (await this.host()).text()\n }\n\n async getClassList() {\n const host = await this.host()\n const attributeString = await host.getAttribute('class')\n if (attributeString) {\n return attributeString.trim().split(' ')\n }\n return []\n }\n\n async click(): Promise<void> {\n await (await this.host()).click()\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate, TestElement } from '@angular/cdk/testing'\n\nexport interface InputHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class InputHarness extends ComponentHarness {\n static hostSelector = 'input'\n\n static with(options: InputHarnessFilters): HarnessPredicate<InputHarness> {\n return new HarnessPredicate(InputHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async getValue(): Promise<string | null> {\n return await (await this.host()).getProperty<string>('value')\n }\n async getChecked(): Promise<boolean> {\n return await (await this.host()).getProperty<boolean>('checked')\n }\n\n async setValue(value: string | Date): Promise<void> {\n if (value instanceof Date) {\n await (\n await this.host()\n ).setInputValue(\n `${value.toLocaleDateString([], {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })} ${value.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}`\n )\n } else {\n await (await this.host()).clear()\n if (value) {\n await (await this.host()).sendKeys(value)\n }\n await (await this.host()).setInputValue(value)\n }\n }\n\n async getTestElement(): Promise<TestElement> {\n return await this.host()\n }\n\n async click() {\n await (await this.host()).click()\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport { DivHarness } from '../div.harness'\nimport { InputHarness } from '../input.harness'\n\nexport interface PCheckBoxHarnessFilters extends BaseHarnessFilters {\n inputid?: string\n}\nexport class PCheckboxHarness extends ComponentHarness {\n static hostSelector = 'p-checkbox'\n\n getCheckBoxDiv = this.locatorForOptional(DivHarness.with({ class: 'p-checkbox-box' }))\n\n static with(options: PCheckBoxHarnessFilters): HarnessPredicate<PCheckboxHarness> {\n return new HarnessPredicate(PCheckboxHarness, options).addOption('inputid', options.inputid, (harness, inputid) =>\n HarnessPredicate.stringMatches(harness.getId(), inputid)\n )\n }\n\n async isChecked(): Promise<boolean> {\n return (await this.locatorFor(InputHarness)()).getChecked()\n }\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('inputId')\n }\n\n async isHidden(): Promise<boolean> {\n const attr = await (await this.host()).getAttribute('hidden')\n return Boolean(attr)\n }\n\n async click(): Promise<void> {\n await (await this.getCheckBoxDiv())?.click()\n }\n}\n","import { BaseHarnessFilters, ContentContainerComponentHarness, TestKey } from '@angular/cdk/testing'\nimport { DivHarness } from '../div.harness'\n\nexport interface PDialogHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class PDialogHarness extends ContentContainerComponentHarness {\n static hostSelector = 'p-dialog'\n\n getHeader = this.locatorForOptional(DivHarness.with({ class: 'p-dialog-header' }))\n getFooter = this.locatorForOptional(DivHarness.with({ class: 'p-dialog-footer' }))\n\n async getDialogTitle(): Promise<string | undefined> {\n return await (await this.getHeader())?.getText()\n }\n\n async close() {\n if (await this.isVisible()) {\n await (await this.host()).sendKeys(TestKey.ESCAPE)\n } else {\n console.warn('Unable to close CustomGroupColumnSelectionDialog, because it is not open.')\n }\n }\n\n async isVisible(): Promise<boolean> {\n return (await (await this.host()).getAttribute('ng-reflect-visible')) === 'true' ? true : false\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class ListItemHarness extends ComponentHarness {\n static hostSelector = 'li'\n\n async getText() {\n return await (await this.host()).text()\n }\n\n async isSelected(): Promise<boolean> {\n return (await (await this.host()).getAttribute('aria-selected')) === 'true' ? true : false\n }\n\n async selectItem() {\n await (await this.host()).click()\n }\n}\n","import { BaseHarnessFilters, ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport { ListItemHarness } from '../list-item.harness'\n\nexport interface PDropdownHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class PDropdownHarness extends ContentContainerComponentHarness {\n static hostSelector = 'p-dropdown'\n\n static with(options: PDropdownHarnessFilters): HarnessPredicate<PDropdownHarness> {\n return new HarnessPredicate(PDropdownHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async getDefaultText() {\n return (await this.locatorForOptional('span.p-placeholder')())?.text()\n }\n\n async isOpen(): Promise<boolean> {\n return (await this.locatorFor('div')()).hasClass('p-dropdown-open')\n }\n\n async open() {\n if (!(await this.isOpen())) {\n await (await this.locatorFor('div')()).click()\n } else {\n console.warn('Unable to open dropdown, because it is already open.')\n }\n }\n\n async close() {\n if (await this.isOpen()) {\n await (await this.locatorFor('div')()).click()\n } else {\n console.warn('Unable to close dropdown, because it is not open.')\n }\n }\n\n async getDropdownItems() {\n await this.open()\n const dropdownItems = this.locatorForAll(ListItemHarness)()\n return await dropdownItems\n }\n\n async selectedDropdownItem(position: number) {\n const selectedColumnGroup = await Promise.all(\n (await this.getDropdownItems()).filter((listItem) => listItem.isSelected())\n )\n return selectedColumnGroup[position]\n }\n\n async selectedDropdownItemText(position: number) {\n return (await this.selectedDropdownItem(position)).getText()\n }\n\n async hasClearOption() {\n return (await this.locatorFor('div')()).hasClass('p-dropdown-clearable')\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\n\nexport class MenuItemHarness extends ComponentHarness {\n static hostSelector = 'li > a'\n\n async getText() {\n return await (await this.host()).text()\n }\n\n async selectItem() {\n await (await this.host()).click()\n }\n}\n","import { ContentContainerComponentHarness, HarnessLoader } from '@angular/cdk/testing'\nimport { MenuItemHarness } from '../menu-item.harness'\n\nexport class PMenuHarness extends ContentContainerComponentHarness {\n static hostSelector = 'p-menu'\n\n async getHarnessLoaderForPMenuOverlay(): Promise<HarnessLoader | null> {\n return this.documentRootLocatorFactory().harnessLoaderForOptional('.p-menu-overlay')\n }\n\n async isOpen(): Promise<boolean> {\n return !!(await this.getHarnessLoaderForPMenuOverlay())\n }\n\n async getAllMenuItems() {\n if (await this.isOpen()) {\n return await (await this.getHarnessLoaderForPMenuOverlay())?.getAllHarnesses(MenuItemHarness)\n } else {\n console.warn('Cannot get menu items because menu is closed.')\n }\n return []\n }\n}\n","import { ComponentHarness, TestElement } from '@angular/cdk/testing'\n\nexport class PMultiSelectListItemHarness extends ComponentHarness {\n static hostSelector = 'li'\n\n async getTestElement(): Promise<TestElement> {\n return await this.host()\n }\n\n async click(): Promise<void> {\n await (await this.host()).click()\n }\n\n async getText(): Promise<string> {\n return await (await this.host()).text()\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessLoader, HarnessPredicate } from '@angular/cdk/testing'\nimport { PMultiSelectListItemHarness } from './p-multiSelectListItem.harness'\n\nexport interface PMultiSelectHarnessFilters extends BaseHarnessFilters {\n id?: string\n class?: string\n}\n\nexport class PMultiSelectHarness extends ComponentHarness {\n static hostSelector = 'p-multiSelect'\n\n static with(options: PMultiSelectHarnessFilters): HarnessPredicate<PMultiSelectHarness> {\n return new HarnessPredicate(PMultiSelectHarness, options)\n .addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id))\n .addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c))\n }\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async getByClass(c: string): Promise<string | null> {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n\n async getHarnessLoaderForPMultiSelectPanel(): Promise<HarnessLoader> {\n const rootLocator = this.documentRootLocatorFactory()\n return rootLocator.harnessLoaderFor('.p-multiselect-panel')\n }\n\n async getAllOptions(): Promise<PMultiSelectListItemHarness[]> {\n if (!(await this.isOpen())) {\n await this.open()\n }\n return await (await this.getHarnessLoaderForPMultiSelectPanel()).getAllHarnesses(PMultiSelectListItemHarness)\n }\n\n async isOpen(): Promise<boolean> {\n return await (await this.locatorFor('div')()).hasClass('p-multiselect-open')\n }\n\n async open() {\n if (!(await this.isOpen())) {\n await (await this.locatorFor('div')()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async close() {\n if (await this.isOpen()) {\n await (await this.locatorFor('div')()).click()\n } else {\n console.warn('Unable to close multiSelect, because it is not open.')\n }\n }\n\n async isHighlighted(PMultiSelectListItem: PMultiSelectListItemHarness): Promise<boolean> {\n return await (await PMultiSelectListItem.getTestElement()).hasClass('p-highlight')\n }\n\n async getSelectedOptions(): Promise<string[] | null> {\n const allOptions = await this.getAllOptions()\n const selectedOptions: string[] = []\n for (let index = 0; index < allOptions.length; index++) {\n const option = allOptions[index]\n if (await this.isHighlighted(option)) {\n selectedOptions.push(await option.getText())\n }\n }\n return selectedOptions\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface ButtonHarnessFilters extends BaseHarnessFilters {\n id?: string\n icon?: string\n class?: string\n}\n\nexport class ButtonHarness extends ComponentHarness {\n static hostSelector = 'button'\n\n static with(options: ButtonHarnessFilters): HarnessPredicate<ButtonHarness> {\n return new HarnessPredicate(ButtonHarness, options)\n .addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.getId(), id))\n .addOption('icon', options.icon, (harness, icon) => HarnessPredicate.stringMatches(harness.getIcon(), icon))\n .addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c))\n }\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n async getIcon(): Promise<string | null> {\n return await (await this.host()).getAttribute('icon')\n }\n async getByClass(c: string): Promise<string | null> {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n\n async click() {\n if (!(await this.isDisabled())) {\n await (await this.host()).click()\n } else {\n console.warn('Button cannot be clicked, because it is disabled!')\n }\n }\n\n async isDisabled(): Promise<boolean> {\n return await (await this.host()).getProperty('disabled')\n }\n}\n","import { BaseHarnessFilters, ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport { ButtonHarness } from '../button.harness'\nimport { DivHarness } from '../div.harness'\nimport { ListItemHarness } from '../list-item.harness'\n\nexport interface PPicklistControlsButtonsFilters extends BaseHarnessFilters {\n class?: string\n}\n\nexport interface PPicklistListWrapperFilters extends BaseHarnessFilters {\n class?: string\n}\n\nexport class PPicklistControlsButtonsHarness extends ContentContainerComponentHarness {\n static hostSelector = '.p-picklist-buttons'\n\n getButtons = this.locatorForAll(ButtonHarness)\n\n static with(options: PPicklistControlsButtonsFilters): HarnessPredicate<PPicklistControlsButtonsHarness> {\n return new HarnessPredicate(PPicklistControlsButtonsHarness, options).addOption(\n 'class',\n options.class,\n (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c)\n )\n }\n\n async getByClass(c: string) {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n}\n\nexport class PPicklistListWrapperHarness extends ContentContainerComponentHarness {\n static hostSelector = '.p-picklist-list-wrapper'\n\n getHeader = this.locatorFor(DivHarness.with({ class: 'p-picklist-header' }))\n getAllListItems = this.locatorForAll(ListItemHarness)\n\n static with(options: PPicklistListWrapperFilters): HarnessPredicate<PPicklistListWrapperHarness> {\n return new HarnessPredicate(PPicklistListWrapperHarness, options).addOption('class', options.class, (harness, c) =>\n HarnessPredicate.stringMatches(harness.getByClass(c), c)\n )\n }\n\n async getByClass(c: string) {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n}\n\nexport class PPicklistHarness extends ContentContainerComponentHarness {\n static hostSelector = 'p-picklist'\n\n private getPicklistSourceControls = this.locatorFor(\n PPicklistControlsButtonsHarness.with({ class: 'p-picklist-source-controls' })\n )\n private getPicklistTransferControls = this.locatorFor(\n PPicklistControlsButtonsHarness.with({ class: 'p-picklist-transfer-buttons' })\n )\n private getPicklistTargetControls = this.locatorFor(\n PPicklistControlsButtonsHarness.with({ class: 'p-picklist-target-controls' })\n )\n\n private getPicklistSource = this.locatorFor(PPicklistListWrapperHarness.with({ class: 'p-picklist-source-wrapper' }))\n private getPicklistTarget = this.locatorFor(PPicklistListWrapperHarness.with({ class: 'p-picklist-target-wrapper' }))\n\n async getSourceControlsButtons(): Promise<ButtonHarness[]> {\n return await (await this.getPicklistSourceControls()).getButtons()\n }\n\n async getTransferControlsButtons(): Promise<ButtonHarness[]> {\n return await (await this.getPicklistTransferControls()).getButtons()\n }\n\n async getTargetControlsButtons(): Promise<ButtonHarness[]> {\n return await (await this.getPicklistTargetControls()).getButtons()\n }\n\n async getSourceHeader(): Promise<string> {\n return await (await (await this.getPicklistSource()).getHeader()).getText()\n }\n\n async getTargetHeader(): Promise<string> {\n return await (await (await this.getPicklistTarget()).getHeader()).getText()\n }\n\n async getSourceListItems(): Promise<ListItemHarness[]> {\n return await (await this.getPicklistSource()).getAllListItems()\n }\n\n async getTargetListItems(): Promise<ListItemHarness[]> {\n return await (await this.getPicklistTarget()).getAllListItems()\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\n\nexport class PSelectButtonHarness extends ContentContainerComponentHarness {\n static hostSelector = 'p-selectbutton'\n\n getAllButtons = this.locatorForAll('div > div')\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface SpanHarnessFilters extends BaseHarnessFilters {\n class?: string\n}\n\nexport class SpanHarness extends ComponentHarness {\n static hostSelector = 'span'\n\n static with(options: SpanHarnessFilters): HarnessPredicate<SpanHarness> {\n return new HarnessPredicate(SpanHarness, options).addOption('class', options.class, (harness, c) =>\n HarnessPredicate.stringMatches(harness.getByClass(c), c)\n )\n }\n\n async getByClass(c: string): Promise<string> {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n\n async checkHasClass(value: string) {\n return await (await this.host()).hasClass(value)\n }\n\n async getText(): Promise<string> {\n return await (await this.host()).text()\n }\n}","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { SpanHarness } from '../span.harness'\nimport { PDropdownHarness } from './p-dropdown.harness'\nimport { ButtonHarness } from '../button.harness'\n\nexport class PPaginatorHarness extends ContentContainerComponentHarness {\n static hostSelector = 'p-paginator'\n getCurrentPageReport = this.locatorFor(SpanHarness.with({ class: 'p-paginator-current' }))\n getRowsPerPageOptions = this.locatorFor(PDropdownHarness)\n getNextPageButton = this.locatorFor(ButtonHarness.with({ class: 'p-paginator-next' }))\n\n async getCurrentPageReportText(): Promise<string | undefined> {\n return await (await this.getCurrentPageReport()).getText()\n }\n\n async clickNextPage() {\n ;(await this.getNextPageButton()).click()\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, ComponentHarnessConstructor, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface PTableCheckboxHarnessFilter extends BaseHarnessFilters {\n isSelected?: boolean\n}\n\nexport class PTableCheckboxHarness extends ComponentHarness {\n static hostSelector = 'p-tableCheckbox'\n\n static with<T extends PTableCheckboxHarness>(this: ComponentHarnessConstructor<T>, options: PTableCheckboxHarnessFilter = {}): HarnessPredicate<T> {\n return new HarnessPredicate(this, options).addOption('isSelected', options.isSelected, async (harness, selected) => {\n return (await harness.isChecked()) === selected\n })\n }\n\n async isChecked(): Promise<boolean> {\n const allChecked = await this.locatorForAll('.pi-check')()\n return allChecked.length === 1\n }\n\n async checkBox(): Promise<void> {\n const checkBoxElement = await this.locatorFor('.p-checkbox-box')()\n return checkBoxElement.click()\n }\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\n\nexport interface PHarnessFilters extends BaseHarnessFilters {\n class?: string\n id?: string\n}\n\nexport class PHarness extends ComponentHarness {\n static hostSelector = 'p'\n\n static with(options: PHarnessFilters): HarnessPredicate<PHarness> {\n return new HarnessPredicate(PHarness, options)\n .addOption('class', options.class, (harness, c) => HarnessPredicate.stringMatches(harness.getByClass(c), c))\n .addOption('id', options.id, (harness, id) => HarnessPredicate.stringMatches(harness.hasId(id), id))\n }\n\n async getByClass(c: string): Promise<string> {\n return (await (await this.host()).hasClass(c)) ? c : ''\n }\n\n async hasId(id: string): Promise<string> {\n return (await (await this.host()).matchesSelector('#' + id)) ? id : ''\n }\n\n async checkHasClass(value: string) {\n return await (await this.host()).hasClass(value)\n }\n\n async getText(): Promise<string> {\n return await (await this.host()).text()\n }\n\n async getClassList() {\n const host = await this.host()\n const attributeString = await host.getAttribute('class')\n if (attributeString) {\n return attributeString.trim().split(' ')\n }\n return []\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { ButtonHarness } from './button.harness'\nimport { PMultiSelectHarness } from './primeng/p-multiSelect.harness'\n\nexport class TableHeaderColumnHarness extends ContentContainerComponentHarness {\n static hostSelector = 'th'\n\n getSortButton = this.locatorFor(\n ButtonHarness.with({\n class: 'sortButton',\n })\n )\n\n getFilterMultiSelect = this.locatorFor(\n PMultiSelectHarness.with({\n class: 'filterMultiSelect',\n })\n )\n\n async getText(): Promise<string> {\n return (await this.host()).text()\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { ButtonHarness } from './button.harness'\n\nexport class TableRowHarness extends ContentContainerComponentHarness {\n static hostSelector = 'tbody > tr'\n\n getAllActionButtons = this.locatorForAll('button')\n getViewButton = this.locatorForOptional(ButtonHarness.with({ class: 'viewTableRowButton' }))\n getEditButton = this.locatorForOptional(ButtonHarness.with({ class: 'editTableRowButton' }))\n getDeleteButton = this.locatorForOptional(ButtonHarness.with({ class: 'deleteTableRowButton' }))\n\n async getData(): Promise<string[]> {\n const tds = await this.locatorForAll('td')()\n const isActionsTd = await Promise.all(tds.map((t) => t.hasClass('actions')))\n const textTds = tds.filter((_v, index) => !isActionsTd[index])\n return Promise.all(textTds.map((t) => t.text()))\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|