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.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}/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(); } } } });