Candidate527b9a1e6(gander/row196-r6-prd19, basef48725cfc), the 39 manifest paths of CANDIDATE.sha256 537d30aef70b6cd1 atec1e7fad8. Duckworth approved round 1 outside B1/B2 (rev 2973, comment 30145) and round 2 merge-scoped (rev 2986, comment 30156). Gate gander-0066 on grant sage-2145: 2334 pass, 0 fail, 1 skip; mutants 38/38 killed. BUILD-LOG lines and Duckworth's C1 DEFERRED entry follow as a doc-only append.
25 lines
1.7 KiB
JavaScript
25 lines
1.7 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { createServer } from 'node:http';
|
|
import { mkdtempSync,rmSync } from 'node:fs';
|
|
import { tmpdir } from 'node:os';
|
|
import { join } from 'node:path';
|
|
import { bindTesterSocket, testerSocketPath, TESTER_ORIGIN } from '../../webui/src/tester-socket.mjs';
|
|
import { testerRequest } from '../src/tester-http.mjs';
|
|
test('tester HTTP helper uses instance socket, logical origin and JSON without retrying',async t=>{
|
|
const root=mkdtempSync(join(tmpdir(),'g196-h-'));let hits=0;
|
|
const server=await bindTesterSocket(createServer((q,r)=>{hits++;assert.equal(q.headers.host,new URL(TESTER_ORIGIN).host);assert.equal(q.headers.origin,TESTER_ORIGIN);r.setHeader('content-type','application/json');r.end('{"ok":true}');}),testerSocketPath(root));
|
|
t.after(async()=>{await new Promise(r=>server.close(r));rmSync(root,{recursive:true,force:true});});
|
|
assert.equal((await testerRequest({dataRoot:root,path:'/fixture',method:'POST',body:{x:1}})).body.ok,true);
|
|
assert.equal(hits,1);
|
|
for(const path of ['//remote','bad','/a\n'])await assert.rejects(testerRequest({dataRoot:root,path}),/tester-http-path/);
|
|
await assert.rejects(testerRequest({dataRoot:root,body:{x:'x'.repeat(16385)}}),/tester-http-size/);
|
|
});
|
|
test('tester HTTP timeout closes the socket and does not retry',async t=>{
|
|
const root=mkdtempSync(join(tmpdir(),'g196-h-'));let hits=0;
|
|
const server=await bindTesterSocket(createServer(()=>{hits++;}),testerSocketPath(root));
|
|
t.after(async()=>{server.closeAllConnections();await new Promise(r=>server.close(r));rmSync(root,{recursive:true,force:true});});
|
|
await assert.rejects(testerRequest({dataRoot:root,timeout:20}),/tester-http-timeout/);
|
|
assert.equal(hits,1);
|
|
});
|