From 66a4c014ad81cdaa9fc3467ce865e6dfdd203bfe Mon Sep 17 00:00:00 2001 From: Chi Cong Tran Date: Thu, 28 Aug 2025 12:43:56 +0200 Subject: [PATCH] add tests for API endpoint: list/[vorgang] --- tests/APIListVorgang.test.ts | 73 ++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tests/APIListVorgang.test.ts diff --git a/tests/APIListVorgang.test.ts b/tests/APIListVorgang.test.ts new file mode 100644 index 0000000..9eed193 --- /dev/null +++ b/tests/APIListVorgang.test.ts @@ -0,0 +1,73 @@ +import { describe, test, expect, vi } from 'vitest'; +import { GET } from '../src/routes/api/list/[vorgang]/+server'; + +vi.mock('$lib/server/vorgangService', () => ({ + getCrimesListByToken: vi.fn() +})); + +import { getCrimesListByToken } from '$lib/server/vorgangService'; + +const MockEvent = { + params: { vorgang: '123' }, + locals: { + user: { id: 'admin', admin: true } + } +}; + +describe('API-Endpoints: list/[vorgang]', () => { + test('Unerlaubter Zugriff', async () => { + const event = { + locals: { + user: null + } + }; + + const response = await GET(event); + expect(response.status).toBe(401); + + const json = await response.json(); + const errorObj = { error: 'Unauthorized' }; + expect(json).toEqual(errorObj); + }); + + test('Vorgang ohne Tatorte', async () => { + const testTatorte = []; + + vi.mocked(getCrimesListByToken).mockReturnValueOnce(testTatorte); + + const response = await GET(MockEvent); + expect(response.status).toBe(200); + + const json = await response.json(); + expect(json).toEqual(testTatorte); + }); + + test('Vorgang mit Tatorte', async () => { + const testTatorte = [ + { + name: 'model-A', + lastModified: '2025-08-28T09:44:12.453Z', + etag: '558f35716f6af953f9bb5d75f6d77e6a', + size: 8947140, + prefix: '7596e4d5-c51f-482d-a4aa-ff76434305fc', + show_button: true + }, + { + name: 'model-z', + lastModified: '2025-08-28T10:37:20.142Z', + etag: '43e3989c32c4682bee407baaf83b6fa0', + size: 35788560, + prefix: '7596e4d5-c51f-482d-a4aa-ff76434305fc', + show_button: true + } + ]; + + vi.mocked(getCrimesListByToken).mockReturnValueOnce(testTatorte); + + const response = await GET(MockEvent); + expect(response.status).toBe(200); + + const json = await response.json(); + expect(json).toEqual(testTatorte); + }); +});