Initial commit

This commit is contained in:
ponzischeme89
2026-05-02 08:26:18 +12:00
commit b7ea05f150
119 changed files with 13641 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
import { json } from '@sveltejs/kit';
import { getPool } from '$lib/server/db';
export async function GET() {
const pool = getPool();
let database: 'disabled' | 'up' | 'down' = 'disabled';
if (pool) {
try {
await pool.query('select 1');
database = 'up';
} catch (error) {
console.error('Health check database query failed.', error);
database = 'down';
}
}
return json(
{
status: database === 'down' ? 'degraded' : 'ok',
database,
timestamp: new Date().toISOString()
},
{
status: database === 'down' ? 503 : 200
}
);
}
+57
View File
@@ -0,0 +1,57 @@
import { beforeEach, describe, expect, it, vi } from 'vitest';
vi.mock('$lib/server/db', () => ({
getPool: vi.fn()
}));
import { getPool } from '$lib/server/db';
import { GET } from './+server';
describe('health endpoint', () => {
beforeEach(() => {
vi.mocked(getPool).mockReset();
});
it('reports a disabled database when no connection string is configured', async () => {
vi.mocked(getPool).mockReturnValue(null);
const response = await GET();
const body = await response.json();
expect(response.status).toBe(200);
expect(body).toMatchObject({
status: 'ok',
database: 'disabled'
});
});
it('reports an available database when the query succeeds', async () => {
vi.mocked(getPool).mockReturnValue({
query: vi.fn().mockResolvedValue({})
} as never);
const response = await GET();
const body = await response.json();
expect(response.status).toBe(200);
expect(body).toMatchObject({
status: 'ok',
database: 'up'
});
});
it('reports a degraded status when the database query fails', async () => {
vi.mocked(getPool).mockReturnValue({
query: vi.fn().mockRejectedValue(new Error('connection refused'))
} as never);
const response = await GET();
const body = await response.json();
expect(response.status).toBe(503);
expect(body).toMatchObject({
status: 'degraded',
database: 'down'
});
});
});