nexstream-backend / backend /tests /api /error_handler.test.ts
nexstream-deploy
deploy: nexstream backend (experiment)
f3fa747
Raw
History Blame Contribute Delete
920 Bytes
import { describe, it, expect, afterEach, vi } from 'vitest';
import request from 'supertest';
import app from '../../src/app.js';
// malformed json trips the global error handler
function badJson() {
return request(app)
.post('/telemetry')
.set('Content-Type', 'application/json')
.send('{ broken');
}
describe('global error handler', () => {
afterEach(() => vi.unstubAllEnvs());
it('hides internal details in production', async () => {
vi.stubEnv('NODE_ENV', 'production');
const res = await badJson();
expect(res.status).toBe(500);
expect(res.body.error).toBe('Internal Server Error');
expect(res.body.details).toBeUndefined();
});
it('keeps details outside production for debugging', async () => {
vi.stubEnv('NODE_ENV', 'development');
const res = await badJson();
expect(res.status).toBe(500);
expect(typeof res.body.details).toBe('string');
});
});