48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import * as asserts from '@std/assert';
|
|
import { EPHEMERAL_SERVER, get_ephemeral_listen_server } from './helpers.ts';
|
|
import * as path from '@std/path';
|
|
|
|
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.chdir('./tests/www');
|
|
Deno.env.set(
|
|
'SERVERUS_HANDLERS',
|
|
`${path.join(path.dirname(path.resolve(path.fromFileUrl(import.meta.url))), 'handlers')}${
|
|
old_handlers ? (';' + old_handlers) : ''
|
|
}`
|
|
);
|
|
test_server_info = await get_ephemeral_listen_server();
|
|
|
|
const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/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();
|
|
}
|
|
}
|
|
}
|
|
});
|