Skip to content
Draft
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
23d053b
Stabilize nightly Playwright failures across environments
sofiaIvarsRitense Jul 9, 2026
21fc9c4
Merge branch 'next-minor' into story/536-stabilize-flaky-e2e-tests
sofiaIvarsRitense Jul 23, 2026
9400d49
Fix case details management
sofiaIvarsRitense Jul 24, 2026
04fda54
Merge branch 'next-minor' into story/536-stabilize-flaky-e2e-tests
sofiaIvarsRitense Jul 27, 2026
915b5aa
Fix playwright tests based on FE changes
sofiaIvarsRitense Jul 27, 2026
05e775d
Create playwright tests for Feature: 13A · BB Overview
sofiaIvarsRitense Jul 28, 2026
ed577bf
Create playwright tests for Feature: 13A · BB Overview and update tes…
sofiaIvarsRitense Jul 28, 2026
cc34bce
Create playwright tests for Feature 13B · BB Details
sofiaIvarsRitense Jul 28, 2026
5c54e97
Add playwright tests for Feature 13C · BB Document
sofiaIvarsRitense Jul 28, 2026
25f4384
Merge branch 'next-minor' into story/building-block-management-tests
sofiaIvarsRitense Aug 4, 2026
713ee44
Add playwright tests for Feature 1 · Dashboard (user)
sofiaIvarsRitense Aug 5, 2026
ba55011
Add playwright tests for Feature 7 — Process Management
sofiaIvarsRitense Aug 5, 2026
4a62ef1
Extend playwright e2e coverage across five admin features
sofiaIvarsRitense Aug 6, 2026
569e47d
Add playwright tests for Feature 14 — Translation Management
sofiaIvarsRitense Aug 6, 2026
782a41a
Add playwright tests for Feature 13E — Building Block Plugin Integration
sofiaIvarsRitense Aug 7, 2026
6b3a413
Add playwright tests for Feature 13E — Building Block Plugin Integrat…
sofiaIvarsRitense Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 52 additions & 42 deletions e2e/TEST_COVERAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
| Category | Features | Functions | ✅ Covered | ❌ Not Covered |
|-----------------------------|----------|-----------|------------|----------------|
| User Features (ROLE_USER) | 5 | 21 | 12 | 9 |
| Admin Features (ROLE_ADMIN) | 15 | 335 | 239 | 96 |
| **Total** | **20** | **356** | **251** | **105** |
| Admin Features (ROLE_ADMIN) | 15 | 345 | 278 | 67 |
| **Total** | **20** | **366** | **290** | **76** |

**Coverage:** `251 / 356` — `70.5%`
**Coverage:** `290 / 366` — `79.2%`

---

Expand Down Expand Up @@ -465,47 +465,57 @@

#### 13A · BB Overview

| # | Function | Test Scenarios | Coverage | Notes |
|:-----|:------------------------------|:---------------------------------------------------|:--------:|:------------------------------------------------|
| 13.1 | View building blocks list | Display list of building blocks | ❌ | |
| 13.2 | View BB metadata | View building block name, key, and version | ❌ | |
| 13.3 | Upload BB definition | Upload building block definition (ZIP, max 500 kb) | ❌ | |
| 13.4 | Acknowledge overwrite warning | Acknowledge overwrite warning for existing blocks | ❌ | |
| 13.5 | Create new building block | Create new building block | ❌ | |
| 13.6 | Enter BB name | Enter building block name | ❌ | |
| 13.7 | Auto-generate BB key | Auto-generate building block key | ❌ | |
| 13.8 | Enter BB version | Enter building block version | ❌ | |
| 13.9 | Enter BB description | Enter building block description | ❌ | |
| # | Function | Test Scenarios | Coverage | Notes |
|:------|:------------------------------|:-------------------------------------------------------------------|:--------:|:------------------------------------------------|
| 13.1 | View building blocks list | Display list of building blocks | ✅ | building-block-management.spec.ts |
| 13.2 | View BB metadata | View building block name, key, and version | ✅ | building-block-management.spec.ts |
| 13.3 | Upload BB definition | Upload building block definition (ZIP, max 500 kb) | ✅ | building-block-management.spec.ts |
| 13.4 | Acknowledge overwrite warning | Acknowledge overwrite warning for existing blocks | ✅ | building-block-management.spec.ts |
| 13.5 | Create new building block | Create new building block | ✅ | building-block-management.spec.ts |
| 13.6 | Enter BB name | Enter building block name | ✅ | building-block-management.spec.ts |
| 13.7 | Auto-generate BB key | Auto-generate building block key | ✅ | building-block-management.spec.ts |
| 13.8 | Enter BB version | Enter building block version | ✅ | building-block-management.spec.ts |
| 13.9 | Enter BB description | Enter building block description | ✅ | building-block-management.spec.ts |
| 13.9a | Reject invalid BB key | Duplicate key blocked · Key with invalid characters blocked | ✅ | building-block-management.spec.ts |
| 13.9b | Reject incomplete BB form | Save disabled while name or version is missing | ✅ | building-block-management.spec.ts |
| 13.9c | Block unacknowledged upload | Upload disabled until overwrite warning is acknowledged | ✅ | building-block-management.spec.ts |
| 13.9d | Reject invalid BB archive | Archive without a BB definition shows the import error | ✅ | building-block-management.spec.ts |

#### 13B · BB Details

| # | Function | Test Scenarios | Coverage | Notes |
|:------|:--------------------------|:-----------------------------------------------------|:--------:|:------------------------------------------------|
| 13.10 | View BB general info | View building block general information | ❌ | |
| 13.11 | View BB document tab | View building block document tab | ❌ | |
| 13.12 | View BB processes tab | View building block processes tab | ❌ | |
| 13.13 | View plugin configuration | View plugin configuration used (e.g. Zaak API) | ❌ | |
| 13.14 | Upload/update BB artwork | Upload or update building block artwork | ❌ | |
| 13.15 | Delete BB artwork | Delete building block artwork | ❌ | |
| 13.16 | Save BB metadata | Save building block metadata | ❌ | |
| 13.17 | Export BB as ZIP | Export building block as ZIP | ❌ | |
| 13.18 | Create draft version | Create draft version | ❌ | |
| 13.19 | Enter version tag | Enter new version tag for draft | ❌ | |
| 13.20 | View version status badge | View version status badge (`DRAFT` / `RELEASE`) | ❌ | |
| 13.21 | Switch versions | Switch between versions via dropdown | ❌ | |
| 13.22 | Finalize draft version | Finalize draft version (convert `DRAFT` → `RELEASE`) | ❌ | |
| # | Function | Test Scenarios | Coverage | Notes |
|:-------|:----------------------------------|:------------------------------------------------------------------------|:--------:|:--------------------------------------------------|
| 13.10 | View BB general info | View building block general information | ✅ | building-block-details-management.spec.ts |
| 13.11 | View BB document tab | View building block document tab | ✅ | building-block-details-management.spec.ts |
| 13.12 | View BB processes tab | View building block processes tab | ✅ | building-block-details-management.spec.ts |
| 13.13 | View plugin configuration | Plugins used listed · Empty message when none are used | ✅ | building-block-details-management.spec.ts |
| 13.14 | Upload/update BB artwork | Upload building block artwork | ✅ | building-block-details-management.spec.ts |
| 13.15 | Delete BB artwork | Delete artwork after confirming | ✅ | building-block-details-management.spec.ts |
| 13.16 | Save BB metadata | Save building block name and description | ✅ | building-block-details-management.spec.ts |
| 13.17 | Export BB as ZIP | Export building block as ZIP | ✅ | building-block-details-management.spec.ts |
| 13.18 | Create draft version | Create draft version from a finalized version | ✅ | building-block-details-management.spec.ts |
| 13.19 | Enter version tag | Enter new version tag for draft | ✅ | building-block-details-management.spec.ts |
| 13.20 | View version status badge | Draft badged `DRAFT: <tag>` · final badged `<tag>` (no `RELEASE` label) | ✅ | building-block-details-management.spec.ts |
| 13.21 | Switch versions | Switch between versions via dropdown | ✅ | building-block-details-management.spec.ts |
| 13.22 | Finalize draft version | Finalize draft version, which becomes read-only | ✅ | building-block-details-management.spec.ts |
| 13.22a | Reject incomplete BB metadata | Save disabled while pristine or with an empty name | ✅ | building-block-details-management.spec.ts |
| 13.22b | Reject artwork upload without file | Upload disabled until a file is selected | ✅ | building-block-details-management.spec.ts |
| 13.22c | Reject draft without version tag | Create draft disabled while the version tag is empty | ✅ | building-block-details-management.spec.ts |

#### 13C · BB Document

| # | Function | Test Scenarios | Coverage | Notes |
|:------|:---------------------------|:-------------------------------------------------------------|:--------:|:------------------------------------------------|
| 13.23 | View BB document structure | View building block document structure (JSON) | ❌ | |
| 13.24 | Edit document structure | Edit document structure in JSON editor | ❌ | |
| 13.25 | Manage required fields | Manage required fields with checkboxes | ❌ | |
| 13.26 | View field types | View field types (`string`, `object`, `array`, `boolean`, …) | ❌ | |
| 13.27 | View field descriptions | View field descriptions | ❌ | |
| 13.28 | Search/filter fields | Search and filter document fields | ❌ | |
| 13.29 | Save document config | Save document configuration | ❌ | |
| # | Function | Test Scenarios | Coverage | Notes |
|:-------|:----------------------------------|:----------------------------------------------------------------------------|:--------:|:--------------------------------------------------|
| 13.23 | View BB document structure | View building block document structure (JSON) | ✅ | building-block-document.spec.ts |
| 13.24 | Edit document structure | Edit document structure in the JSON editor | ✅ | building-block-document.spec.ts |
| 13.25 | Manage required fields | Panel grouped per object level · Mark and unmark required | ✅ | building-block-document.spec.ts |
| 13.26 | View field types | View field types (`string`, `integer`, `boolean`, `object`, `array`) | ✅ | building-block-document.spec.ts |
| 13.27 | View field descriptions | View field descriptions | ✅ | building-block-document.spec.ts |
| 13.28 | Search/filter fields | Search highlights matches and reports the match count | ✅ | building-block-document.spec.ts |
| 13.29 | Save document config | Save document configuration (edit and required-field changes) | ✅ | building-block-document.spec.ts |
| 13.29a | Reject unchanged document save | Save disabled until the document is changed | ✅ | building-block-document.spec.ts |
| 13.29b | Reject invalid document JSON | Parse error shown · Save disabled · document untouched | ✅ | building-block-document.spec.ts |
| 13.29c | Block edits on finalized version | Document readable but Save and required checkboxes disabled | ✅ | building-block-document.spec.ts |

#### 13D · BB Processes

Expand Down Expand Up @@ -726,9 +736,9 @@
| Metric | Count |
|:-------------------------|:-------:|
| Total Features | 20 |
| Total Functions | 356 |
| ✅ Covered by Playwright | 251 |
| ❌ Not covered | 105 |
| Total Functions | 366 |
| ✅ Covered by Playwright | 290 |
| ❌ Not covered | 76 |
| ⏳ In progress | 1 |
| `N/A` Not applicable | 2 |
| **Coverage %** | **70.5%** |
| **Coverage %** | **79.2%** |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
11 changes: 11 additions & 0 deletions e2e/constants/building-block-management-test-ids.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export {
BUILDING_BLOCK_MANAGEMENT_LIST_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_CREATE_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_UPLOAD_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_DETAIL_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_METADATA_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_ARTWORK_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_PLUGINS_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_DETAIL_ACTIONS_TEST_IDS,
BUILDING_BLOCK_VERSION_OPTION_TEST_ID_PREFIX,
} from '../../frontend/projects/valtimo/building-block-management/src/lib/constants/building-block-management.test-ids';
Comment on lines +1 to +13

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add the required license header.

This TypeScript file starts with export on Line 1. Add the standard EUPL header before the first export.

Proposed header
+/*
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
+ *
+ * Licensed under EUPL, Version 1.2 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 export {

As per path instructions, TypeScript files must start with the standard EUPL license header.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
export {
BUILDING_BLOCK_MANAGEMENT_LIST_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_CREATE_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_UPLOAD_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_DETAIL_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_METADATA_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_ARTWORK_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_PLUGINS_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_DETAIL_ACTIONS_TEST_IDS,
BUILDING_BLOCK_VERSION_OPTION_TEST_ID_PREFIX,
} from '../../frontend/projects/valtimo/building-block-management/src/lib/constants/building-block-management.test-ids';
/*
* Copyright 2015-2026 Ritense BV, the Netherlands.
*
* Licensed under EUPL, Version 1.2 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export {
BUILDING_BLOCK_MANAGEMENT_LIST_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_CREATE_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_UPLOAD_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_DETAIL_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_METADATA_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_ARTWORK_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_PLUGINS_TEST_IDS,
BUILDING_BLOCK_MANAGEMENT_DETAIL_ACTIONS_TEST_IDS,
BUILDING_BLOCK_VERSION_OPTION_TEST_ID_PREFIX,
} from '../../frontend/projects/valtimo/building-block-management/src/lib/constants/building-block-management.test-ids';

Source: Path instructions

2 changes: 2 additions & 0 deletions e2e/constants/components-test-ids.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@ export {
SINGLE_VALUE_TEST_IDS,
AUTO_KEY_INPUT_TEST_IDS,
RIGHT_SIDEBAR_TEST_IDS,
SCHEMA_EDITOR_TEST_IDS,
SCHEMA_EDITOR_REQUIRED_PROPERTY_TEST_ID_PREFIX,
} from '../../frontend/projects/valtimo/components/src/lib/constants/components.test-ids';
1 change: 1 addition & 0 deletions e2e/constants/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from './building-block-management-test-ids';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add the required license header.

Line 1 starts with code. Prepend the standard EUPL license header before this export.

As per path instructions, each *.ts file must start with the standard license header.

Source: Path instructions

export * from './case-management-test-ids';
export * from './dashboard-management-test-ids';
export * from './components-test-ids';
Expand Down
2 changes: 1 addition & 1 deletion e2e/playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export default defineConfig({
},
baseURL: process.env.qa_url ?? 'http://localhost:4200',
screenshot: process.env.CI ? 'only-on-failure' : 'on',
video: process.env.CI ? 'on' : 'on-first-retry',
video: process.env.CI ? 'retain-on-failure' : 'on-first-retry',
trace: {
mode: process.env.CI ? 'retain-on-failure' : 'on-first-retry',
snapshots: true,
Expand Down
69 changes: 69 additions & 0 deletions e2e/shared/overflow-menu/overflow-menu.utils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Copyright 2015-2026 Ritense BV, the Netherlands.
*
* Licensed under EUPL, Version 1.2 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import {expect, type Locator, type Page} from '@playwright/test';

/**
* Wrapper for the Valtimo `v-overflow-menu` component (the "More" menus in
* admin detail headers and carbon-list rows).
*
* The menu content is rendered in an overlay outside the trigger, so options are
* looked up page-wide rather than inside the trigger element. Options are only
* present in the DOM while the menu is open.
*/
export class OverflowMenu {
constructor(
private readonly page: Page,
private readonly triggerTestId: string
) {}

get trigger(): Locator {
return this.page.getByTestId(this.triggerTestId);
}

get menu(): Locator {
return this.page.getByRole('menu');
}

option(optionTestId: string): Locator {
return this.page.getByTestId(optionTestId);
}

async open() {
await expect(this.trigger).toBeEnabled();
await this.trigger.click();
await expect(this.menu).toBeVisible();
}

async close() {
await this.page.keyboard.press('Escape');
await expect(this.menu).not.toBeVisible();
}

/** Open the menu and click one of its options. */
async selectOption(optionTestId: string) {
await this.open();
const option = this.option(optionTestId);
await expect(option).toBeVisible();
await option.click();
}

/** Labels of the options currently offered, in render order. */
async optionLabels(): Promise<string[]> {
const labels = await this.menu.getByRole('menuitem').allInnerTexts();
return labels.map(label => label.trim());
}
}
Loading
Loading