From bcb867bb2eff82a11c2365434daf6af8003ba235 Mon Sep 17 00:00:00 2001 From: "Will Gibson (Made Tech)" <261894875+willgibson-madetech@users.noreply.github.com> Date: Thu, 9 Apr 2026 17:02:17 +0100 Subject: [PATCH 1/5] Install the per-commit hooks --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4bbc823ef..29c9f6078 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,8 @@ setup-root: cd . && \ asdf install && \ node --version && \ - npm install + npm install && \ + npm run prepare .PHONY: setup-backoffice setup-backoffice: From 5b7c7bc2aa9bf9cadd905405c27f70d1bfa69556 Mon Sep 17 00:00:00 2001 From: "Will Gibson (Made Tech)" <261894875+willgibson-madetech@users.noreply.github.com> Date: Fri, 10 Apr 2026 09:16:08 +0100 Subject: [PATCH 2/5] Add application URLs --- README.md | 3 +++ backoffice/package-lock.json | 31 ++++++++++++++++++++++++++++--- webapp/package-lock.json | 32 ++++++++++++++++++++++++-------- 3 files changed, 55 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f69517fa0..0d5aa509e 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,9 @@ Before you start... # From the root of this repository make serve ``` + - The application will be available at the following URLs: + - Webapp http://localhost:3000 + - Backoffice http://localhost:3001 ## Infrastructure-as-code diff --git a/backoffice/package-lock.json b/backoffice/package-lock.json index 8fe38169f..67bf6b4c3 100644 --- a/backoffice/package-lock.json +++ b/backoffice/package-lock.json @@ -242,6 +242,7 @@ "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.39.0.tgz", "integrity": "sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==", "license": "MIT", + "peer": true, "dependencies": { "@azure/msal-common": "13.3.3" }, @@ -301,6 +302,7 @@ "integrity": "sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -2438,6 +2440,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2461,6 +2464,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -2589,6 +2593,7 @@ "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.5.5", "@emotion/cache": "^10.0.27", @@ -2638,6 +2643,7 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2749,6 +2755,7 @@ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -5206,6 +5213,7 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -5271,6 +5279,7 @@ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.17.1.tgz", "integrity": "sha512-2B33kQf+GmPnrvXXweWAx+crbiUEsxCdCN979QDYnlH9ox4pd+0/IBriWLV+l6ORoBF60w39cWjFnJYGFdzXcw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.23.9", "@mui/core-downloads-tracker": "^5.17.1", @@ -5466,6 +5475,7 @@ "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.17.1.tgz", "integrity": "sha512-aJrmGfQpyF0U4D4xYwA6ueVtQcEMebET43CUmKMP7e7iFh3sMIF3sBR0l8Urb4pqx1CBjHAaWgB0ojpND4Q3Jg==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.23.9", "@mui/private-theming": "^5.17.1", @@ -6855,7 +6865,6 @@ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -6876,7 +6885,6 @@ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6893,7 +6901,6 @@ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7234,6 +7241,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -7255,6 +7263,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.85.tgz", "integrity": "sha512-5oBDUsRDsrYq4DdyHaL99gE1AJCfuDhyxqF6/55fvvOIRkp1PpKuwJ+aMiGJR+GJt7YqMNclPROTHF20vY2cXA==", "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "^0.16", @@ -7266,6 +7275,7 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.26.tgz", "integrity": "sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg==", "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^17.0.0" } @@ -7392,6 +7402,7 @@ "integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.32.1", "@typescript-eslint/types": "8.32.1", @@ -7596,6 +7607,7 @@ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -8602,6 +8614,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -10140,6 +10153,7 @@ "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -14272,6 +14286,7 @@ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -15976,6 +15991,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -16142,6 +16158,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -16167,6 +16184,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -16319,6 +16337,7 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.9.2" } @@ -16560,6 +16579,7 @@ "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -16769,6 +16789,7 @@ "integrity": "sha512-ld+kQU8YTdGNjOLfRWBzewJpU5cwEv/h5yyqlSeJcj6Yh8U4TDA9UA5FPicqDz/xgRPWRSYIQNiFks21TbA9KQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -17610,6 +17631,7 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -17898,6 +17920,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18156,6 +18179,7 @@ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -18302,6 +18326,7 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 56967c7b5..b50cda905 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -2539,6 +2539,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2578,6 +2579,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2598,6 +2600,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2618,6 +2621,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2638,6 +2642,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2658,6 +2663,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2678,6 +2684,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2698,6 +2705,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2718,6 +2726,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2738,6 +2747,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2758,6 +2768,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2778,6 +2789,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2798,6 +2810,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2818,6 +2831,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4571,7 +4585,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -5582,6 +5596,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, "license": "Apache-2.0", "optional": true, "bin": { @@ -6731,7 +6746,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -7822,7 +7837,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7887,7 +7902,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -7930,7 +7945,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -10624,7 +10639,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -10902,6 +10917,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, "license": "MIT", "optional": true }, @@ -11454,7 +11470,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -13133,7 +13149,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" From b3b5b25987d861e2c33d9515be15bbe4e5c53f52 Mon Sep 17 00:00:00 2001 From: "Will Gibson (Made Tech)" <261894875+willgibson-madetech@users.noreply.github.com> Date: Mon, 20 Apr 2026 10:49:39 +0100 Subject: [PATCH 3/5] Updates while catching up with Wilf --- README.md | 2 ++ tests/.env.example | 2 ++ tests/README.md | 23 ++++++++++++++++++----- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0d5aa509e..efc19b8fb 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,8 @@ Before you start... - Webapp http://localhost:3000 - Backoffice http://localhost:3001 +Todo: mention running the tests + ## Infrastructure-as-code The [Terraform](./terraform) directory contains the Terraform code for managing the infrastructure for the Beacons diff --git a/tests/.env.example b/tests/.env.example index 144101611..9f5a88a36 100644 --- a/tests/.env.example +++ b/tests/.env.example @@ -1,3 +1,5 @@ +# Todo: Should be same as ../webapp/.env.local + WEBAPP_CLIENT_ID=1ccbe14d-00e3-43ac-a434-8f7a38e03366 WEBAPP_CLIENT_SECRET=change-me AAD_TENANT_ID=513fb495-9a90-425b-a49a-bc6ebe2a429e diff --git a/tests/README.md b/tests/README.md index 0e33eb8b0..2244bb002 100644 --- a/tests/README.md +++ b/tests/README.md @@ -11,15 +11,28 @@ To run end-to-end tests locally: - Copy `tests/.env.example` as `tests/.env` and populate it with the contents of the "Beacons Webapp Local .env.local config" secure note in 1Password for the corresponding environment variables. -```sh -$ docker compose -f docker-compose.e2e.yml up -$ npm run test:e2e +```shell +docker compose -f docker-compose.e2e.yml up +``` + +In another terminal window... + +```shell +npm run test:e2e ``` ### Occasional Cypress test failures -- Automated end-to-end tests require the `SESSION_TOKEN`, and may fail unexpectedly, due to rotating session tokens. To resolve this, log into local/dev/staging webapp using the test account. Locate the session token in dev tools: Application -> cookies -> \_\_Secure-next-auth.session-token -> value. -- Copy this value and update the corresponding secret in the GitHub repository. +Automated end-to-end tests require the `SESSION_TOKEN`, and may fail unexpectedly, due to rotating session tokens. + +To resolve this: + +- Log into local, dev or staging using the "Test B2C account" from 1Password. +- Locate the session token in dev tools: Application -> cookies -> \_\_Secure-next-auth.session-token -> value. +- Copy this value and update the corresponding secret: + - `SESSION_TOKEN` in your local `.env` files. + - `SESSION_TOKEN` in the "Beacons Webapp Local .env.local config" secure note in 1Password. + - `TEST_WEBAPP_AZURE_B2C_SESSION_TOKEN` in the GitHub repository. ## Smoke testing From c94fa0fb171b098bf5a784630c531dc70238991d Mon Sep 17 00:00:00 2001 From: "Will Gibson (Made Tech)" <261894875+willgibson-madetech@users.noreply.github.com> Date: Mon, 20 Apr 2026 14:02:56 +0100 Subject: [PATCH 4/5] A few wording updates --- tests/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/README.md b/tests/README.md index 42f11ab84..e11893701 100644 --- a/tests/README.md +++ b/tests/README.md @@ -5,7 +5,7 @@ the Beacons system, see the `../webapp/`, `../service/` and `../backoffice/` dir ## End-to-end testing -Automated end-to-end tests use [Cypress](https://www.cypress.io/) and are run in GitHub Actions against the publish images before deploying to the `dev` and `staging` environments. +Automated end-to-end tests use [Cypress](https://www.cypress.io/) and are run in GitHub Actions against the published images before deploying to the `dev` and `staging` environments. To run end-to-end tests locally: @@ -32,16 +32,18 @@ To resolve this: - Copy this value and update the corresponding secret: - `SESSION_TOKEN` in your local `.env` files. - `SESSION_TOKEN` in the "Beacons Webapp Local .env.local config" secure note in 1Password. - - `TEST_WEBAPP_AZURE_B2C_SESSION_TOKEN` in the GitHub repository. + - `TEST_WEBAPP_AZURE_B2C_SESSION_TOKEN` in the GitHub Actions secrets. ## Integration testing +Todo: Does this belong in Service? + As part of our integration tests, a test user "test@test.com" is created in the Azure TEST tenancy. As a part of these tests, this user should be automatically deleted. In the event that the test user is not deleted, the integration tests can fail: - "Another object with the same value for property proxyAddresses already exists." -In order to remediate this failure, the "test@test.com" user will need to be deleted from the test tenancy. The tests should then succeed. +In order to remediate this failure, the "test@test.com" user will need to be deleted from the test B2C tenant in Azure. The tests should then succeed. ## Smoke testing From 7f3be2fa4646dcc3c8f6bc4861f476e9d1bd1b20 Mon Sep 17 00:00:00 2001 From: "Will Gibson (Made Tech)" <261894875+willgibson-madetech@users.noreply.github.com> Date: Mon, 20 Apr 2026 15:21:32 +0100 Subject: [PATCH 5/5] More part baked stuff --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 965a35019..9f0d50d72 100644 --- a/README.md +++ b/README.md @@ -24,13 +24,22 @@ It comprises three applications: - The SPA is served by Spring Boot. - Application specific documentation is in the [README](./backoffice/README.md). +## Documentation available + +We have the Beacons Runbook in Google Drive. + +In this repository you can find: + +- [The main README](./README.md) +- ?????? + ## Testing Application specific tests are covered in the READMEs linked to above. If you are working towards a release, look at the [end-to-end and smoke test documentation](./tests/README.md). -Known issues and resolution for Unit, Integration and End-to-end testing are documented in the [tests README.md file](./tests/README.md). +Known issues and resolutions for Unit, Integration and End-to-end testing are documented in the [tests README.md file](./tests/README.md). ## Architecture