'use strict'; const common = require('../common'); const assert = require('node:assert'); const http = require('node:http'); const debug = require('node:util').debuglog('test'); const testResBody = 'response content\n'; { const server = http.createServer(common.mustCall((req, res) => { debug('Server sending early hints...'); assert.throws(() => { res.writeEarlyHints('bad argument type'); }, (err) => err.code === 'ERR_INVALID_ARG_TYPE'); assert.throws(() => { res.writeEarlyHints({ link: '; ' }); }, (err) => err.code === 'ERR_INVALID_ARG_VALUE'); assert.throws(() => { res.writeEarlyHints({ link: 'rel=preload; ' }); }, (err) => err.code === 'ERR_INVALID_ARG_VALUE'); assert.throws(() => { res.writeEarlyHints({ link: 'invalid string' }); }, (err) => err.code === 'ERR_INVALID_ARG_VALUE'); debug('Server sending full response...'); res.end(testResBody); server.close(); })); server.listen(0, common.mustCall(() => { const req = http.request({ port: server.address().port, path: '/' }); req.end(); debug('Client sending request...'); req.on('information', common.mustNotCall()); })); }