import { describe, it, expect, beforeAll, vi, } from 'vitest'; import { FastifyInstance } from 'fastify'; import { generate } from '@theoryofnekomata/oblique-strategies-core'; import { createServer } from '../src/server'; import { addRoutes } from '../src/routes'; vi.mock('@theoryofnekomata/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('/') .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('/') .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'); }); });