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); }); });