Summary
setupHarperWithFixture overwrites ctx.harper before calling startHarper, discarding caller-set fields such as hostname. In a multi-node test this makes the replication config's securePort reference a different address than the one Harper actually binds to, producing ECONNREFUSED on add_node.
Context / repro
Expected
setupHarperWithFixture should merge into / preserve caller-set fields on ctx.harper (especially hostname) rather than overwriting them, so the fixture helper is usable in multi-node / replication tests.
References
Filed by Claude (Opus 4.8) on behalf of Kris while implementing the release-testing coverage gaps.
Summary
setupHarperWithFixtureoverwritesctx.harperbefore callingstartHarper, discarding caller-set fields such ashostname. In a multi-node test this makes the replication config'ssecurePortreference a different address than the one Harper actually binds to, producingECONNREFUSEDonadd_node.Context / repro
ctx.harper.hostnamebeforesetupHarperWithFixturehad no effect because the function replacesctx.harperwholesale.startHarperdirectly with a manually-prepareddataRootDir+hostnameset onctx.harper, bypassingsetupHarperWithFixture.Expected
setupHarperWithFixtureshould merge into / preserve caller-set fields onctx.harper(especiallyhostname) rather than overwriting them, so the fixture helper is usable in multi-node / replication tests.References
integrationTests/cluster/cacheReplicationSource.test.mjs)Filed by Claude (Opus 4.8) on behalf of Kris while implementing the release-testing coverage gaps.