import { describe, it, expect, beforeAll, vi, } from 'vitest'; import { FastifyInstance } from 'fastify'; import { generate } from '@modal-sh/oblique-strategies-core'; import { createServer } from '../server'; import { addRoutes } from '../routes'; vi.mock('@modal-sh/oblique-strategies-core'); describe('Example', () => { let server: FastifyInstance; beforeAll(() => { server = createServer(); addRoutes(server); }); beforeAll(() => { vi.mocked(generate).mockReturnValue('card text'); }); it('draws a card from default set', async () => { const response = await server .inject() .post('/api/draw') .headers({ Accept: 'text/plain', }); expect(response.statusCode).toBe(200); expect(generate).toBeCalled(); expect(response.body).toBe('card text'); }); it('draws a card from custom sets', async () => { const response = await server .inject() .post('/api/draw') .query({ cards: ['default', 'text:hello|world'], }) .headers({ Accept: 'text/plain', }); expect(response.statusCode).toBe(200); expect(generate).toBeCalledWith(['default', 'text:hello|world']); expect(response.body).toBe('card text'); }); });