(onheadersHandler, extraOpts = {})
| 26 | const encoder = new TextEncoder(); |
| 27 | |
| 28 | async function makeServer(onheadersHandler, extraOpts = {}) { |
| 29 | const done = Promise.withResolvers(); |
| 30 | const ep = await listen(mustCall(async (ss) => { |
| 31 | ss.onstream = mustCall((stream) => { |
| 32 | // The server completes its response before the client's |
| 33 | // callback throws, so the server stream always resolves. |
| 34 | stream.closed.then(mustCall()); |
| 35 | }); |
| 36 | await ss.closed; |
| 37 | done.resolve(); |
| 38 | }), { |
| 39 | sni: { '*': { keys: [key], certs: [cert] } }, |
| 40 | transportParams: { maxIdleTimeout: 1 }, |
| 41 | onheaders: onheadersHandler, |
| 42 | ...extraOpts, |
| 43 | }); |
| 44 | return { ep, done }; |
| 45 | } |
| 46 | |
| 47 | // Sync throw in onheaders callback destroys the stream. |
| 48 | { |
no test coverage detected
searching dependent graphs…