Download src/app/api/users/transfer-code/route.test.ts from HonzaH/Letschat: direct link, hf CLI and curl.
- Browser
- Download file 1.36 kB
-
https://huggingface.co/spaces/HonzaH/Letschat/resolve/main/src/app/api/users/transfer-code/route.test.ts
- Command line
-
hf download hf://spaces/HonzaH/Letschat/src/app/api/users/transfer-code/route.test.ts
-
curl -L -o route.test.ts https://huggingface.co/spaces/HonzaH/Letschat/resolve/main/src/app/api/users/transfer-code/route.test.ts
1.36 kB
| import { describe, it, expect, vi, beforeEach } from 'vitest' | |
| beforeEach(() => { | |
| vi.resetModules() | |
| }) | |
| describe('POST /api/users/transfer-code', () => { | |
| it('transfers code to authenticated user when PIN valid or not required', async () => { | |
| vi.doMock('lib/logger', () => ({ logEvent: vi.fn() })) | |
| vi.doMock('lib/appSession', () => ({ getAppSession: async () => ({ userId: 'user-1' }) })) | |
| vi.doMock('lib/supabase/server', () => ({ isSupabaseConfigured: () => true })) | |
| // Mock persistence | |
| const codeRow = { id: 'code-1', code: 'ABCDE', used: 1, user_id: null, pin_hash: null, room_id: 'room-1' } | |
| const getCodeByCodeMock = vi.fn().mockResolvedValue(codeRow) | |
| const getCodeForUserInRoomMock = vi.fn().mockResolvedValue(null) | |
| const updateCodeMock = vi.fn().mockResolvedValue({ ...codeRow, user_id: 'user-1' }) | |
| vi.doMock('lib/persistence', () => ({ | |
| getCodeByCode: getCodeByCodeMock, | |
| getCodeForUserInRoom: getCodeForUserInRoomMock, | |
| updateCode: updateCodeMock | |
| })) | |
| const route = await import('./route') | |
| const req = { json: async () => ({ code: 'ABCDE' }) } as any | |
| const res: any = await route.POST(req) | |
| expect(res.status).toBe(200) | |
| expect(getCodeByCodeMock).toHaveBeenCalled() | |
| expect(updateCodeMock).toHaveBeenCalledWith('code-1', { user_id: 'user-1', session_hash: null }) | |
| }) | |
| }) | |