test(behavior): cover config routing and registry seams
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { assertEquals } from 'jsr:@std/assert@^1.0.0';
|
||||
import { ApiRouter } from '../ts/api/router.ts';
|
||||
|
||||
class TestResponse {
|
||||
public statusCode = 200;
|
||||
public headers: Record<string, string> = {};
|
||||
public body = '';
|
||||
|
||||
public writeHead(statusCode: number, headers: Record<string, string>): TestResponse {
|
||||
this.statusCode = statusCode;
|
||||
this.headers = headers;
|
||||
return this;
|
||||
}
|
||||
|
||||
public end(body = ''): TestResponse {
|
||||
this.body = body;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
function createRouter(): ApiRouter {
|
||||
return new ApiRouter(
|
||||
{} as never,
|
||||
{} as never,
|
||||
{} as never,
|
||||
{} as never,
|
||||
['valid-key'],
|
||||
);
|
||||
}
|
||||
|
||||
Deno.test('ApiRouter returns 404 for unknown endpoints', async () => {
|
||||
const router = createRouter();
|
||||
const response = new TestResponse();
|
||||
|
||||
await router.route(
|
||||
{ method: 'GET', headers: {} } as never,
|
||||
response as never,
|
||||
'/does-not-exist',
|
||||
);
|
||||
|
||||
assertEquals(response.statusCode, 404);
|
||||
assertEquals(JSON.parse(response.body).error.type, 'invalid_request_error');
|
||||
});
|
||||
|
||||
Deno.test('ApiRouter rejects protected endpoints without a bearer token', async () => {
|
||||
const router = createRouter();
|
||||
const response = new TestResponse();
|
||||
|
||||
await router.route(
|
||||
{ method: 'GET', headers: {} } as never,
|
||||
response as never,
|
||||
'/v1/models',
|
||||
);
|
||||
|
||||
assertEquals(response.statusCode, 401);
|
||||
assertEquals(JSON.parse(response.body).error.type, 'authentication_error');
|
||||
});
|
||||
Reference in New Issue
Block a user