diff --git a/test/utils/esm-wrapper.mjs b/test/utils/esm-wrapper.mjs index 3611e317660..9365cdad24e 100644 --- a/test/utils/esm-wrapper.mjs +++ b/test/utils/esm-wrapper.mjs @@ -1,6 +1,6 @@ import { createServer } from 'node:http' import { test, after } from 'node:test' -import { +import undici, { Agent, Client, errors, @@ -99,3 +99,29 @@ test('named exports', (t) => { t.assert.strictEqual(typeof setGlobalDispatcher, 'function') t.assert.strictEqual(typeof getGlobalDispatcher, 'function') }) + +test('default import top-level request works with opts.dispatcher', async (t) => { + t.plan(4) + + const server = createServer({ joinDuplicateHeaders: true }, (req, res) => { + t.assert.strictEqual(req.method, 'GET') + t.assert.strictEqual(req.url, '/') + res.end('ok') + }) + + await new Promise((resolve) => server.listen(0, resolve)) + + const dispatcher = new undici.Agent({ allowH2: true }) + + t.after(async () => { + await dispatcher.close() + await new Promise((resolve) => server.close(resolve)) + }) + + const { statusCode, body } = await undici.request(`http://127.0.0.1:${server.address().port}`, { + dispatcher + }) + + t.assert.strictEqual(statusCode, 200) + t.assert.strictEqual(await body.text(), 'ok') +})