diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index c6118754b..af9dd1026 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 with: - node-version: 20 + node-version: 22 cache: 'yarn' - name: Install dependencies run: yarn --immutable @@ -40,7 +40,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 with: - node-version: 20 + node-version: 22 cache: 'yarn' - name: Install dependencies # Ubuntu 16+ does not install libgconf-2-4 by default, so we need to install it ourselves (for Cypress) @@ -62,7 +62,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 with: - node-version: 20 + node-version: 22 cache: 'yarn' - name: Install dependencies @@ -210,7 +210,7 @@ jobs: - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 with: - node-version: 20 + node-version: 22 cache: 'yarn' - name: Install dependencies diff --git a/Dockerfile b/Dockerfile index 7d3e7ce43..483e9a77d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Dockerfile to build and serve OperationsGateway # Build stage -FROM node:20.18.1-alpine3.20@sha256:b5b9467fe7b33aad47f1ec3f6e0646a658f85f05c18d4243024212a91f3b7554 as builder +FROM node:22.12.0-alpine3.20@sha256:96cc8323e25c8cc6ddcb8b965e135cfd57846e8003ec0d7bcec16c5fd5f6d39f as builder WORKDIR /operationsgateway-build diff --git a/package.json b/package.json index dac40d034..f36f4d290 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@tanstack/react-query": "5.61.3", "@tanstack/react-query-devtools": "5.61.3", "@tanstack/react-table": "8.20.5", - "@types/node": "20.17.1", + "@types/node": "22.10.1", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@vitejs/plugin-react": "4.3.4", diff --git a/src/api/functions.test.tsx b/src/api/functions.test.tsx index 59b528b67..82328dbfa 100644 --- a/src/api/functions.test.tsx +++ b/src/api/functions.test.tsx @@ -101,12 +101,14 @@ describe('useValidateFunctions', () => { await act(async () => { await expect( result.current.mutateAsync([functions[3]]) - ).rejects.toThrowError(); - }); - - expect(result.current.error?.response?.data).toEqual({ - detail: - "Error at index 0: 'centre' accepts {'waveform'} type(s), 'scalar' provided", + ).rejects.toMatchObject({ + response: { + data: { + detail: + "Error at index 0: 'centre' accepts {'waveform'} type(s), 'scalar' provided", + }, + }, + }); }); }); diff --git a/src/views/dataView.component.test.tsx b/src/views/dataView.component.test.tsx index 172155804..69abd27b0 100644 --- a/src/views/dataView.component.test.tsx +++ b/src/views/dataView.component.test.tsx @@ -89,6 +89,9 @@ describe('Data View', () => { await flushPromises(); }); + await screen.findByRole('progressbar'); + await waitForElementToBeRemoved(() => screen.queryByRole('progressbar')); + const shotnumHeader = await screen.findByRole('columnheader', { name: 'Shot Number', }); @@ -99,7 +102,7 @@ describe('Data View', () => { expect(dialogue).toBeVisible(); }); - it('opens the functions dialogue when the functions button in a data header is clicked', async () => { + it('opens the functions dialogue when the functions button is clicked and closes when the close button is clicked', async () => { const user = userEvent.setup(); const state = { ...getInitialState(), @@ -121,6 +124,9 @@ describe('Data View', () => { await flushPromises(); }); + await screen.findByRole('progressbar'); + await waitForElementToBeRemoved(() => screen.queryByRole('progressbar')); + const functionAHeader = await screen.findByRole('columnheader', { name: 'a', }); diff --git a/yarn.lock b/yarn.lock index ef6989425..3c2cd46ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1850,7 +1850,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": +"@types/node@npm:*, @types/node@npm:22.10.1": version: 22.10.1 resolution: "@types/node@npm:22.10.1" dependencies: @@ -1859,15 +1859,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:20.17.1": - version: 20.17.1 - resolution: "@types/node@npm:20.17.1" - dependencies: - undici-types: "npm:~6.19.2" - checksum: 10c0/214cf1fffff9c80ae0d49d7dd1f04254215d49711276fff44ff6f61e36dc8d53520509a88add6955fe029b2259c87eaf284b43bc1236d4f4f06bd80c46f0e2b8 - languageName: node - linkType: hard - "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -6874,7 +6865,7 @@ __metadata: "@testing-library/react": "npm:16.0.0" "@testing-library/user-event": "npm:14.5.2" "@types/eslint-plugin-jsx-a11y": "npm:6.10.0" - "@types/node": "npm:20.17.1" + "@types/node": "npm:22.10.1" "@types/react": "npm:18.3.3" "@types/react-dom": "npm:18.3.0" "@typescript-eslint/typescript-estree": "npm:8.16.0" @@ -8910,13 +8901,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2": - version: 6.19.8 - resolution: "undici-types@npm:6.19.8" - checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 - languageName: node - linkType: hard - "undici-types@npm:~6.20.0": version: 6.20.0 resolution: "undici-types@npm:6.20.0"