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