Download src/app/api/codes/validate/route.test.ts from HonzaH/Letschat: direct link, hf CLI and curl.
- Browser
- Download file 1.75 kB
-
https://huggingface.co/spaces/HonzaH/Letschat/resolve/main/src/app/api/codes/validate/route.test.ts
- Command line
-
hf download hf://spaces/HonzaH/Letschat/src/app/api/codes/validate/route.test.ts
-
curl -L -o route.test.ts https://huggingface.co/spaces/HonzaH/Letschat/resolve/main/src/app/api/codes/validate/route.test.ts
1.75 kB
| import { describe, it, expect, vi, beforeEach } from 'vitest' | |
| beforeEach(() => { | |
| vi.resetModules() | |
| }) | |
| describe('POST /api/codes/validate', () => { | |
| it('redirects to setup for unused code', async () => { | |
| vi.doMock('lib/logger', () => ({ logEvent: vi.fn() })) | |
| vi.doMock('lib/persistence', () => ({ getCodeByCode: async () => ({ id: 'c1', code: 'AAAAA', used: null }) })) | |
| const route = await import('./route') | |
| const req = { json: async () => ({ code: 'AAAAA' }) } as any | |
| const res: any = await route.POST(req) | |
| expect(res.status).toBe(200) | |
| }) | |
| it('requires PIN when code has pin_hash and session missing', async () => { | |
| vi.doMock('lib/logger', () => ({ logEvent: vi.fn() })) | |
| vi.doMock('lib/session', () => ({ getAnonymousSession: async () => null })) | |
| vi.doMock('lib/persistence', () => ({ | |
| getCodeByCode: async () => ({ id: 'c1', code: 'BBBBB', used: 1, pin_hash: 'x', room_id: 'r1' }) | |
| })) | |
| const route = await import('./route') | |
| const req = { json: async () => ({ code: 'BBBBB' }) } as any | |
| const res: any = await route.POST(req) | |
| expect(res.status).toBe(200) | |
| }) | |
| it('redirects to room when session matches for pin-protected code', async () => { | |
| vi.doMock('lib/logger', () => ({ logEvent: vi.fn() })) | |
| vi.doMock('lib/session', () => ({ getAnonymousSession: async () => ({ codeId: 'c1', sessionHash: 's1' }) })) | |
| vi.doMock('lib/persistence', () => ({ | |
| getCodeByCode: async () => ({ id: 'c1', code: 'CCCCC', used: 1, pin_hash: 'x', room_id: 'r1', session_hash: 's1' }) | |
| })) | |
| const route = await import('./route') | |
| const req = { json: async () => ({ code: 'CCCCC' }) } as any | |
| const res: any = await route.POST(req) | |
| expect(res.status).toBe(200) | |
| }) | |
| }) | |