48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
import * as asserts from '@std/assert';
|
|
import { EPHEMERAL_SERVER, get_ephemeral_listen_server } from './helpers.ts';
|
|
|
|
Deno.test({
|
|
name: 'test that routes are sorted most to least specific',
|
|
permissions: {
|
|
env: true,
|
|
read: true,
|
|
write: true,
|
|
net: true
|
|
},
|
|
fn: async () => {
|
|
let test_server_info: EPHEMERAL_SERVER | null = null;
|
|
|
|
try {
|
|
Deno.env.set('SERVERUS_ROOT', './tests/www');
|
|
test_server_info = await get_ephemeral_listen_server();
|
|
|
|
const echoes: Record<string, string> = {
|
|
'': 'echo! .... echo. ................... echo?',
|
|
hi: 'hello',
|
|
yo: 'yo',
|
|
'whoa there': 'whoa there'
|
|
};
|
|
|
|
for await (const key of Object.keys(echoes)) {
|
|
const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/echo/${key}`, {
|
|
method: 'GET'
|
|
});
|
|
|
|
const body = await response.text();
|
|
|
|
asserts.assert(response.ok);
|
|
asserts.assert(body);
|
|
console.dir({
|
|
body,
|
|
key
|
|
});
|
|
asserts.assertEquals(body, echoes[key]);
|
|
}
|
|
} finally {
|
|
Deno.env.delete('SERVERUS_ROOT');
|
|
if (test_server_info) {
|
|
await test_server_info?.server?.stop();
|
|
}
|
|
}
|
|
}
|
|
});
|