46 lines
1.2 KiB
TypeScript
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();
|
|
}
|
|
}
|
|
}
|
|
});
|