serverus/tests/04_test_overriding_handlers.test.ts

46 lines
1.2 KiB
TypeScript

import * as asserts from '@std/assert';
import { EPHEMERAL_SERVER, get_ephemeral_listen_server } from './helpers.ts';
Deno.test({
name: 'override the default handlers',
permissions: {
env: true,
read: true,
write: true,
net: true
},
fn: async () => {
let test_server_info: EPHEMERAL_SERVER | null = null;
const cwd = Deno.cwd();
const old_handlers: string | undefined = Deno.env.get('SERVERUS_HANDLERS');
try {
Deno.env.set(
'SERVERUS_HANDLERS',
`${import.meta.resolve('./handlers')}${old_handlers ? (';' + old_handlers) : ''}`
);
Deno.chdir('./tests/www');
test_server_info = await get_ephemeral_listen_server();
const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/api/echo/hello_world.foo`, {
method: 'GET'
});
const body = await response.text();
asserts.assert(response.ok);
asserts.assert(body);
asserts.assertEquals(body, 'foo');
} finally {
Deno.chdir(cwd);
Deno.env.delete('SERVERUS_HANDLERS');
if (old_handlers) {
Deno.env.set('SERVERUS_HANDLERS', old_handlers);
}
if (test_server_info) {
await test_server_info?.server?.stop();
}
}
}
});