fix(dashboard): Use index-based identification for collection filters #5370
Triggered via pull request
February 26, 2026 14:11
Status
Failure
Total duration
17m 15s
Artifacts
–
build_and_test.yml
on: pull_request
check dashboard changes
14s
codegen
/
codegen
1m 48s
build
3m 59s
Matrix: e2e (mariadb)
Matrix: e2e (mysql)
Matrix: e2e (postgres)
Matrix: e2e (sqljs)
Matrix: unit tests
dashboard e2e
13m 48s
Annotations
9 errors and 1 notice
|
dashboard e2e
Process completed with exit code 1.
|
|
[chromium] › e2e/tests/settings/shipping-methods.spec.ts:26:5 › Shipping Methods CRUD › should display the shipping methods list page:
packages/dashboard/e2e/page-objects/list-page.base.ts#L42
3) [chromium] › e2e/tests/settings/shipping-methods.spec.ts:26:5 › Shipping Methods CRUD › should display the shipping methods list page
Error: expect(locator).toBeVisible() failed
Locator: getByRole('heading', { name: 'Shipping Methods' })
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByRole('heading', { name: 'Shipping Methods' })
- waiting for" http://localhost:5174/shipping-methods" navigation to finish...
- navigated to "http://localhost:5174/shipping-methods?sort=&page=1&perPage=10"
- waiting for" http://localhost:5174/shipping-methods" navigation to finish...
- navigated to "http://localhost:5174/shipping-methods"
at ../page-objects/list-page.base.ts:42
40 |
41 | async expectLoaded() {
> 42 | await expect(this.heading).toBeVisible();
| ^
43 | await expect(this.dataTable).toBeVisible();
44 | }
45 |
at BaseListPage.expectLoaded (/home/runner/work/vendure/vendure/packages/dashboard/e2e/page-objects/list-page.base.ts:42:36)
at /home/runner/work/vendure/vendure/packages/dashboard/e2e/tests/settings/shipping-methods.spec.ts:29:18
|
|
[chromium] › e2e/tests/auth/login.spec.ts:9:5 › Login › should display the login form:
packages/dashboard/e2e/page-objects/login-page.ts#L25
2) [chromium] › e2e/tests/auth/login.spec.ts:9:5 › Login › should display the login form ─────────
Error: expect(locator).toBeVisible() failed
Locator: getByPlaceholder('Email')
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByPlaceholder('Email')
at ../page-objects/login-page.ts:25
23 |
24 | async expectVisible() {
> 25 | await expect(this.emailInput).toBeVisible();
| ^
26 | await expect(this.passwordInput).toBeVisible();
27 | await expect(this.signInButton).toBeVisible();
28 | }
at LoginPage.expectVisible (/home/runner/work/vendure/vendure/packages/dashboard/e2e/page-objects/login-page.ts:25:39)
at /home/runner/work/vendure/vendure/packages/dashboard/e2e/tests/auth/login.spec.ts:12:25
|
|
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type:
packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts#L35
1) [chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: locator.fill: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-slot="form-item"]').filter({ has: getByText('Term', { exact: true }) }).first().getByRole('textbox')
33 | has: page.getByText('Term', { exact: true }),
34 | });
> 35 | await termInputs.first().getByRole('textbox').fill('shirt');
| ^
36 |
37 | // Add second "Filter by product variant name" filter
38 | await page.getByRole('button', { name: /Add collection filter/i }).click();
at /home/runner/work/vendure/vendure/packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:35:55
|
|
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type:
packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts#L0
1) [chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 30000ms exceeded.
|
|
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type:
packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts#L35
1) [chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: locator.fill: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-slot="form-item"]').filter({ has: getByText('Term', { exact: true }) }).first().getByRole('textbox')
33 | has: page.getByText('Term', { exact: true }),
34 | });
> 35 | await termInputs.first().getByRole('textbox').fill('shirt');
| ^
36 |
37 | // Add second "Filter by product variant name" filter
38 | await page.getByRole('button', { name: /Add collection filter/i }).click();
at /home/runner/work/vendure/vendure/packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:35:55
|
|
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type:
packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts#L0
1) [chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Test timeout of 30000ms exceeded.
|
|
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type:
packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts#L35
1) [chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
Error: locator.fill: Test timeout of 30000ms exceeded.
Call log:
- waiting for locator('[data-slot="form-item"]').filter({ has: getByText('Term', { exact: true }) }).first().getByRole('textbox')
33 | has: page.getByText('Term', { exact: true }),
34 | });
> 35 | await termInputs.first().getByRole('textbox').fill('shirt');
| ^
36 |
37 | // Add second "Filter by product variant name" filter
38 | await page.getByRole('button', { name: /Add collection filter/i }).click();
at /home/runner/work/vendure/vendure/packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:35:55
|
|
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type:
packages/dashboard/e2e/tests/regression/issue-4327-collection-filter-state.spec.ts#L0
1) [chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
Test timeout of 30000ms exceeded.
|
|
🎭 Playwright Run Summary
1 failed
[chromium] › e2e/tests/regression/issue-4327-collection-filter-state.spec.ts:19:5 › Issue #4327: Collection filters with same type share state › should maintain independent state for two filters of the same type
2 flaky
[chromium] › e2e/tests/auth/login.spec.ts:9:5 › Login › should display the login form ──────────
[chromium] › e2e/tests/settings/shipping-methods.spec.ts:26:5 › Shipping Methods CRUD › should display the shipping methods list page
5 skipped
204 passed (11.3m)
|