duoqi-api/src/__tests__/utils/json-parser.test.ts
Wang Zhuoxuan 5e7b7b1cda
Some checks failed
CI/CD Pipeline / Unit Tests (push) Failing after 34s
CI/CD Pipeline / Build & Deploy Test (push) Has been skipped
CI/CD Pipeline / Build & Deploy Production (push) Has been skipped
Add region-based leaderboard support
2026-06-08 15:43:54 +08:00

37 lines
1.0 KiB
TypeScript

import Fastify from 'fastify';
import { describe, expect, it } from 'vitest';
import { registerJsonBodyParser } from '../../utils/json-parser.js';
describe('registerJsonBodyParser', () => {
it('treats an empty application/json body as an empty object', async () => {
const app = Fastify();
registerJsonBodyParser(app);
app.post('/empty-json', async (request) => ({ body: request.body }));
const response = await app.inject({
method: 'POST',
url: '/empty-json',
headers: { 'content-type': 'application/json' },
payload: '',
});
expect(response.statusCode).toBe(200);
expect(response.json()).toEqual({ body: {} });
});
it('still rejects malformed JSON', async () => {
const app = Fastify();
registerJsonBodyParser(app);
app.post('/bad-json', async () => ({ ok: true }));
const response = await app.inject({
method: 'POST',
url: '/bad-json',
headers: { 'content-type': 'application/json' },
payload: '{',
});
expect(response.statusCode).toBe(400);
});
});