diff --git a/client/package-lock.json b/client/package-lock.json index 3d40c3e87..20340ceda 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -7141,13 +7141,13 @@ } }, "node_modules/axios": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.0.tgz", - "integrity": "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.20.0.tgz", + "integrity": "sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", + "form-data": "^4.0.6", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } diff --git a/client/platform/web-girder/api/review.spec.ts b/client/platform/web-girder/api/review.spec.ts index de13de2ae..348966516 100644 --- a/client/platform/web-girder/api/review.spec.ts +++ b/client/platform/web-girder/api/review.spec.ts @@ -33,6 +33,11 @@ const parentConfig = { customTypeStyling: { fish: { color: '#123456' } }, }; +function folderIdFromRequestOptions(options?: { params?: unknown }): string { + const params = options?.params as { folderId?: string } | undefined; + return params?.folderId ?? ''; +} + describe('web stereo review through the real platform adapters', () => { let review: ReviewService; let scope: ReturnType; @@ -86,7 +91,7 @@ describe('web stereo review through the real platform adapters', () => { if (url === 'dive_dataset/rig/media') return { data: { imageData: [] } } as never; if (url === 'dive_dataset/rig/configuration') return { data: parentConfig } as never; if (url === 'dive_annotation/track') { - const folder = options?.params.folderId; + const folder = folderIdFromRequestOptions(options); if (folder === failCamera) throw new Error('Camera access denied'); return { data: JSON.parse(JSON.stringify(tracks[folder])) } as never; } @@ -105,7 +110,7 @@ describe('web stereo review through the real platform adapters', () => { throw new Error(`Unexpected GET ${url}`); }); vi.mocked(girderRest.patch).mockImplementation(async (_url, body, options) => { - const folder = options?.params.folderId; + const folder = folderIdFromRequestOptions(options); if (folder === failCamera) throw new Error('Write denied'); const { upsert, delete: deleted } = (body as SaveDetectionsArgs).tracks; tracks[folder] = tracks[folder].filter((item) => !deleted.includes(item.id)); @@ -196,7 +201,7 @@ describe('web stereo review through the real platform adapters', () => { review.entries.value[0].items.forEach((item) => review.deleteTrack(item)); await review.save(); expect(tracks).toEqual({ leftFolder: [], rightFolder: [] }); - expect(vi.mocked(girderRest.patch).mock.calls.every(([, , options]) => options?.params.folderId !== 'rig')).toBe(true); + expect(vi.mocked(girderRest.patch).mock.calls.every(([, , options]) => folderIdFromRequestOptions(options) !== 'rig')).toBe(true); }); it('loads each stereo video URL and frame rate without using the parent media', async () => {