diff --git a/shared/src/messages.ts b/shared/src/messages.ts index 70c04e7..a89220e 100644 --- a/shared/src/messages.ts +++ b/shared/src/messages.ts @@ -29,7 +29,7 @@ export const gotoLocation = z.object({ export type GotoLocation = z.infer export const deleteTraceFile = z.object({ - message: z.literal('deletTraceFile'), + message: z.literal('deleteTraceFile').or(z.literal('deletTraceFile')), fileName: z.string(), dirName: z.string(), }) diff --git a/src/handleMessages.ts b/src/handleMessages.ts index 4f321c3..4754ee0 100644 --- a/src/handleMessages.ts +++ b/src/handleMessages.ts @@ -51,6 +51,7 @@ export function handleMessage(panel: vscode.WebviewPanel, message: unknown): voi break } + case 'deleteTraceFile': case 'deletTraceFile': { deleteTraceFiles(data.fileName, data.dirName) } diff --git a/test/delete-trace-file-message.test.ts b/test/delete-trace-file-message.test.ts new file mode 100644 index 0000000..8bbdfeb --- /dev/null +++ b/test/delete-trace-file-message.test.ts @@ -0,0 +1,24 @@ +import { describe, expect, it } from 'vitest' +import { message } from '../shared/src/messages' + +describe('deleteTraceFile message', () => { + it('accepts the corrected message name', () => { + const parsed = message.safeParse({ + dirName: 'traces', + fileName: 'trace.json', + message: 'deleteTraceFile', + }) + + expect(parsed.success).toBe(true) + }) + + it('keeps accepting the legacy misspelled message name', () => { + const parsed = message.safeParse({ + dirName: 'traces', + fileName: 'trace.json', + message: 'deletTraceFile', + }) + + expect(parsed.success).toBe(true) + }) +}) diff --git a/ui/components/fileManager.client.vue b/ui/components/fileManager.client.vue index 1dd83fd..ceada1c 100644 --- a/ui/components/fileManager.client.vue +++ b/ui/components/fileManager.client.vue @@ -4,7 +4,7 @@ import { files, traceRunning } from '../src/appState' const sendMessage = useNuxtApp().$sendMessage function deleteTraceFile(fileName: string, dirName: string) { - sendMessage('deletTraceFile', { fileName, dirName }) + sendMessage('deleteTraceFile', { fileName, dirName }) const newFiles = files.value.filter(x => !(x.dirName === dirName && x.fileName === fileName)) files.value = newFiles }