Skip to content

Commit ce444f6

Browse files
renemadsenclaude
andcommitted
fix: resolve Playwright test failures in jobs B and C
- Force-click datepicker inputs to bypass mat-label overlay interception - Trim tag names in comparisons (textContent includes whitespace) - Use index-based tag lookup for delete tests (getTagByName fails with untrimmed names) - Increase pairing test timeout to 240s (beforeAll creates multiple entities) - Add wait for page load before import eform count check Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent af7ac45 commit ce444f6

5 files changed

Lines changed: 14 additions & 9 deletions

File tree

eform-client/playwright/e2e/plugins/items-planning-pn/ItemsPlanningModal.page.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ export class ItemsPlanningModalPage {
221221
await selectValueInNgSelector(this.page, '#createRepeatType', planning.repeatType);
222222
}
223223
if (planning.startFrom) {
224-
await this.createStartFrom.click();
224+
await this.createStartFrom.click({ force: true });
225225
await selectDateOnNewDatePicker(
226226
this.page,
227227
planning.startFrom.year,
@@ -230,7 +230,7 @@ export class ItemsPlanningModalPage {
230230
);
231231
}
232232
if (planning.repeatUntil) {
233-
await this.createRepeatUntil.click();
233+
await this.createRepeatUntil.click({ force: true });
234234
await selectDateOnNewDatePicker(
235235
this.page,
236236
planning.repeatUntil.year,

eform-client/playwright/e2e/plugins/items-planning-pn/ItemsPlanningPlanningPage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ export class PlanningRowObject {
363363
date: planning.repeatUntil.day,
364364
}), 'dd.MM.yyyy')
365365
) {
366-
await modalPage.editRepeatUntil.click();
366+
await modalPage.editRepeatUntil.click({ force: true });
367367
await selectDateOnNewDatePicker(
368368
this.page,
369369
planning.repeatUntil.year,
@@ -380,7 +380,7 @@ export class PlanningRowObject {
380380
date: planning.startFrom.day,
381381
}), 'dd.MM.yyyy')
382382
) {
383-
await modalPage.editStartFrom.click();
383+
await modalPage.editStartFrom.click({ force: true });
384384
await selectDateOnNewDatePicker(
385385
this.page,
386386
planning.startFrom.year,

eform-client/playwright/e2e/plugins/items-planning-pn/c/items-planning.import.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ test.describe.serial('Items planning - Import', () => {
2727
const itemsPlanningModalPage = new ItemsPlanningModalPage(page);
2828

2929
const localPath = process.cwd();
30+
await myEformsPage.newEformBtn().waitFor({ state: 'visible', timeout: 60000 });
3031
const eformsBeforeImport = await myEformsPage.rowNum();
3132
await myEformsPage.importEformsBtn().click();
3233
await page.waitForTimeout(2000);
@@ -35,6 +36,7 @@ test.describe.serial('Items planning - Import', () => {
3536
await page.locator('app-eforms-bulk-import-modal * *').first().waitFor({ state: 'visible', timeout: 20000 });
3637
await myEformsPage.xlsxImportInput().setInputFiles(filePath);
3738
await myEformsPage.newEformBtn().waitFor({ state: 'visible', timeout: 60000 });
39+
await page.waitForTimeout(2000);
3840
expect(eformsBeforeImport).not.toBe(await myEformsPage.rowNum());
3941

4042
await itemsPlanningPlanningPage.goToPlanningsPage();

eform-client/playwright/e2e/plugins/items-planning-pn/c/items-planning.pairing.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const countDeviceUsers = 4;
2121
const countPlanning = 4;
2222

2323
test.describe.serial('Items planning plugin - Pairing', () => {
24+
test.describe.configure({ timeout: 240000 });
2425
test.beforeAll(async ({ browser }) => {
2526
page = await browser.newPage();
2627
const loginPage = new LoginPage(page);

eform-client/playwright/e2e/plugins/items-planning-pn/c/items-planning.tags.spec.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ test.describe.serial('Items planning - Tags', () => {
3232
const tagRowObject = new TagRowObject(page);
3333
const tagRowObj = await tagRowObject.getRow(tagsRowsAfterCreate);
3434
expect(tagsRowsAfterCreate).toBe(tagsRowsBeforeCreate + 1);
35-
expect(tagRowObj.name).toBe(tagName);
35+
expect(tagRowObj.name.trim()).toBe(tagName);
3636
});
3737

3838
test('should not create tag', async () => {
@@ -49,7 +49,7 @@ test.describe.serial('Items planning - Tags', () => {
4949
await tagsModalPage.editTag(rowNum, updatedTagName);
5050
const tagRowObjectAfterEdit = new TagRowObject(page);
5151
const tagRowObj = await tagRowObjectAfterEdit.getRow(rowNum);
52-
expect(tagRowObj.name).toBe(updatedTagName);
52+
expect(tagRowObj.name.trim()).toBe(updatedTagName);
5353
});
5454

5555
test('should not update tag', async () => {
@@ -58,21 +58,23 @@ test.describe.serial('Items planning - Tags', () => {
5858
await tagsModalPage.cancelEditTag(rowNum, updatedTagName);
5959
const tagRowObjectAfterCancelEdit = new TagRowObject(page);
6060
const tagRowObj = await tagRowObjectAfterCancelEdit.getRow(rowNum);
61-
expect(tagRowObj.name).toBe(updatedTagName);
61+
expect(tagRowObj.name.trim()).toBe(updatedTagName);
6262
});
6363

6464
test('should not delete tag', async () => {
6565
const tagsModalPage = new TagsModalPage(page);
6666
const tagsRowsBeforeDelete = await tagsModalPage.rowNum();
67-
await (await tagsModalPage.getTagByName(updatedTagName)).deleteTag(true);
67+
const tagRow = new TagRowObject(page, tagsModalPage);
68+
await (await tagRow.getRow(tagsRowsBeforeDelete)).deleteTag(true);
6869
const tagsRowsAfterCancelDelete = await tagsModalPage.rowNum();
6970
expect(tagsRowsAfterCancelDelete).toBe(tagsRowsBeforeDelete);
7071
});
7172

7273
test('should delete tag', async () => {
7374
const tagsModalPage = new TagsModalPage(page);
7475
const tagsRowsBeforeDelete = await tagsModalPage.rowNum();
75-
await (await tagsModalPage.getTagByName(updatedTagName)).deleteTag();
76+
const tagRow = new TagRowObject(page, tagsModalPage);
77+
await (await tagRow.getRow(tagsRowsBeforeDelete)).deleteTag();
7678
await page.waitForTimeout(500);
7779
const tagsRowsAfterDelete = await tagsModalPage.rowNum();
7880
expect(tagsRowsAfterDelete).toBe(tagsRowsBeforeDelete - 1);

0 commit comments

Comments
 (0)