37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { describe, test, expect, vi } from 'vitest';
|
|
import { handle } from '../../src/hooks.server';
|
|
|
|
const event = {
|
|
url: new URL("http://localhost/api/list"),
|
|
cookies: { get: vi.fn(() => null) },
|
|
locals: {user: null}
|
|
};
|
|
|
|
vi.mock('$lib/auth', () => ({
|
|
decryptToken: vi.fn()
|
|
}));
|
|
|
|
describe('API-Endpoints: Zugangs-Mechanismus', () => {
|
|
test('Unautorisierter Zugriff', async () => {
|
|
const resolve = vi.fn();
|
|
|
|
const response = await handle({ event, resolve });
|
|
|
|
expect(response.status).toBe(401);
|
|
const body = await response.json();
|
|
expect(body.error).toBe('Unauthorized');
|
|
expect(resolve).not.toHaveBeenCalled();
|
|
});
|
|
|
|
test('Authentifizierter Zugriff', async () => {
|
|
event.locals = {user: { id: 'admin', admin: true }}
|
|
|
|
const resolve = vi.fn(() => new Response('ok', { status: 200 }));
|
|
|
|
const response = await handle({ event, resolve });
|
|
|
|
expect(response.status).toBe(200);
|
|
expect(await response.text()).toBe('ok');
|
|
expect(resolve).toHaveBeenCalled();
|
|
});
|
|
}) |