From 5cd490f765e2fddf166b45555767b6dceb39a5eb Mon Sep 17 00:00:00 2001 From: Lilach Date: Mon, 27 Jul 2026 13:34:25 +0100 Subject: [PATCH 1/3] enable UI V1 in E2E tests --- devops-pipelines/move-playwright-test.yml | 6 +----- devops-pipelines/templates/e2e-playwright-test-job.yml | 3 +++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/devops-pipelines/move-playwright-test.yml b/devops-pipelines/move-playwright-test.yml index 8dca26b50..6030740e8 100644 --- a/devops-pipelines/move-playwright-test.yml +++ b/devops-pipelines/move-playwright-test.yml @@ -54,11 +54,7 @@ jobs: displayName: "Run E2E Tests" env: CI: true - # Staging renders the v1 ("Shared Drive") transfer screen for the E2E - # user, so drive it with the v1 page object. Without this the tests - # default to the old screen and the Egress panel never reads its rows - # (file appears in the UI but the old-screen selectors miss it). - TRANSFER_MATERIALS_V1: true + TRANSFER_MATERIALS_V1: true # Staging renders the v1 ("Shared Drive") transfer screen for the E2E user TEST_FILE_SIZE_MB: ${{ parameters.testFileSizeMb }} BASE_URL: $(RedirectUrlLccUi) CMS_LOGIN_PAGE: "$(LccApiBaseUrl)/api/tactical/login" diff --git a/devops-pipelines/templates/e2e-playwright-test-job.yml b/devops-pipelines/templates/e2e-playwright-test-job.yml index 5f46c24a2..33024d501 100644 --- a/devops-pipelines/templates/e2e-playwright-test-job.yml +++ b/devops-pipelines/templates/e2e-playwright-test-job.yml @@ -23,6 +23,8 @@ jobs: value: "20.x" - name: workingDir value: "$(System.DefaultWorkingDirectory)/e2e/pw" + - name: transferMaterialsV1 # Staging renders the v1 ("Shared Drive") transfer screen for the E2E user. + value: ${{ ne(parameters.environment, 'dev') }} steps: - task: UseNode@1 @@ -45,6 +47,7 @@ jobs: displayName: "Run E2E Tests" env: CI: true + TRANSFER_MATERIALS_V1: $(transferMaterialsV1) BASE_URL: $(RedirectUrlLccUi) CMS_LOGIN_PAGE: "$(LccApiBaseUrl)/api/tactical/login" EGRESS_BASE_URL: $(EgressOptionsUrl) From 94366af526fd227d8502a7272654530b888f0843 Mon Sep 17 00:00:00 2001 From: Lilach Date: Fri, 31 Jul 2026 10:52:36 +0100 Subject: [PATCH 2/3] upgrade UI webapp runtime (+ pipelines node version) to node 24 --- README.md | 2 +- devops-pipelines/api-postman-test.yml | 2 +- devops-pipelines/lighthouse-test.yml | 2 +- devops-pipelines/move-playwright-test.yml | 6 +++--- devops-pipelines/templates/e2e-playwright-test-job.yml | 2 +- devops-pipelines/templates/smoke-test-steps.yml | 2 +- devops-pipelines/templates/ui-build-and-deploy-stages.yml | 4 ++-- devops-pipelines/ui/ui-pr-build-and-test.yml | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f5628619a..06f9297e0 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Large and Complex Cases (LACC) project aims to deliver a secure, auditable, ### Prerequisites - [.NET 8 SDK](https://dotnet.microsoft.com/download) -- [Node.js (v20+)](https://nodejs.org/) +- [Node.js (v24+)](https://nodejs.org/) - [npm](https://www.npmjs.com/) - PowerShell (for local scripts) - PostgreSQL (see [Local Development Guide](doc/local-development.md) for setup details) diff --git a/devops-pipelines/api-postman-test.yml b/devops-pipelines/api-postman-test.yml index e0a5881c6..48783e33b 100644 --- a/devops-pipelines/api-postman-test.yml +++ b/devops-pipelines/api-postman-test.yml @@ -31,7 +31,7 @@ jobs: - task: UseNode@1 displayName: "Use Node.js" inputs: - version: "20.x" + version: "24.x" - script: | if command -v pwsh &> /dev/null; then diff --git a/devops-pipelines/lighthouse-test.yml b/devops-pipelines/lighthouse-test.yml index de76bf397..226ae2a17 100644 --- a/devops-pipelines/lighthouse-test.yml +++ b/devops-pipelines/lighthouse-test.yml @@ -11,7 +11,7 @@ variables: - group: lacc-automated-testing-${{ parameters.environment }} - group: lacc-backend-config-${{ parameters.environment }} - name: nodeVersion - value: "20.x" + value: "24.x" - name: workingDir value: "ui-spa" diff --git a/devops-pipelines/move-playwright-test.yml b/devops-pipelines/move-playwright-test.yml index c8165e592..fdd380bcb 100644 --- a/devops-pipelines/move-playwright-test.yml +++ b/devops-pipelines/move-playwright-test.yml @@ -1,6 +1,6 @@ schedules: - - cron: '0 1 * * Tue-Sat' - displayName: 'Weekday 1am UTC test' + - cron: "0 1 * * Tue-Sat" + displayName: "Weekday 1am UTC test" branches: include: - main @@ -27,7 +27,7 @@ jobs: - group: lacc-automated-testing-${{ parameters.environment }} - group: lacc-backend-config-${{ parameters.environment }} - name: nodeVersion - value: "20.x" + value: "24.x" - name: workingDir value: "$(System.DefaultWorkingDirectory)/e2e/pw" diff --git a/devops-pipelines/templates/e2e-playwright-test-job.yml b/devops-pipelines/templates/e2e-playwright-test-job.yml index 33024d501..80ac1d199 100644 --- a/devops-pipelines/templates/e2e-playwright-test-job.yml +++ b/devops-pipelines/templates/e2e-playwright-test-job.yml @@ -20,7 +20,7 @@ jobs: - group: lacc-automated-testing-${{ parameters.environment }} - group: lacc-backend-config-${{ parameters.environment }} - name: nodeVersion - value: "20.x" + value: "24.x" - name: workingDir value: "$(System.DefaultWorkingDirectory)/e2e/pw" - name: transferMaterialsV1 # Staging renders the v1 ("Shared Drive") transfer screen for the E2E user. diff --git a/devops-pipelines/templates/smoke-test-steps.yml b/devops-pipelines/templates/smoke-test-steps.yml index aae4ee709..e8fef80f2 100644 --- a/devops-pipelines/templates/smoke-test-steps.yml +++ b/devops-pipelines/templates/smoke-test-steps.yml @@ -10,7 +10,7 @@ steps: - task: UseNode@1 displayName: "Use Node.js" inputs: - version: "20.x" + version: "24.x" - script: | if command -v newman &> /dev/null; then diff --git a/devops-pipelines/templates/ui-build-and-deploy-stages.yml b/devops-pipelines/templates/ui-build-and-deploy-stages.yml index 4e66cbb65..c7f08d249 100644 --- a/devops-pipelines/templates/ui-build-and-deploy-stages.yml +++ b/devops-pipelines/templates/ui-build-and-deploy-stages.yml @@ -54,7 +54,7 @@ stages: variables: - group: lacc-ui-config-${{ parameters.environment }} - name: nodeVersion - value: "20.x" + value: "24.x" - name: workingDir value: ui-spa steps: @@ -125,7 +125,7 @@ stages: deployToSlotOrASE: ${{ parameters.deployToSlot }} slotName: ${{ parameters.slotName }} packageForLinux: "$(Pipeline.Workspace)/$(buildArtifact)" - RuntimeStack: "NODE|20-lts" + RuntimeStack: "NODE|24-lts" StartupCommand: "pm2 serve /home/site/wwwroot/ --no-daemon --spa" displayName: "Deploy app to ${{ parameters.environment }}" diff --git a/devops-pipelines/ui/ui-pr-build-and-test.yml b/devops-pipelines/ui/ui-pr-build-and-test.yml index d9ed39125..2813ec10d 100644 --- a/devops-pipelines/ui/ui-pr-build-and-test.yml +++ b/devops-pipelines/ui/ui-pr-build-and-test.yml @@ -12,7 +12,7 @@ pool: "LACC PreProd Pool" variables: - name: nodeVersion - value: "20.x" + value: "24.x" - name: workingDir value: ui-spa - name: covDir From 53a27a79288c55bfde7b90f437409e60ac3233d4 Mon Sep 17 00:00:00 2001 From: renjithabby Date: Fri, 31 Jul 2026 11:57:53 +0100 Subject: [PATCH 3/3] enforced strict version of node for the project --- ui-spa/.npmrc | 1 + ui-spa/package.json | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 ui-spa/.npmrc diff --git a/ui-spa/.npmrc b/ui-spa/.npmrc new file mode 100644 index 000000000..4fd021952 --- /dev/null +++ b/ui-spa/.npmrc @@ -0,0 +1 @@ +engine-strict=true \ No newline at end of file diff --git a/ui-spa/package.json b/ui-spa/package.json index c23cbe19f..29e7927d1 100644 --- a/ui-spa/package.json +++ b/ui-spa/package.json @@ -3,6 +3,10 @@ "private": true, "version": "0.0.0", "type": "module", + "engines": { + "node": "24.x", + "npm": "11.x" + }, "scripts": { "dev": "vite", "build": "tsc -b && vite build", @@ -88,4 +92,4 @@ "react": "^16.8.0 || ^17 || ^18 || ^19" } } -} +} \ No newline at end of file