test: give federation integration suites a realistic per-test timeout (#7)

The three test/ files boot real federated instances and drive S2S over HTTP,
with several tests deliberately waiting on log matchers (e.g. logMatched(...,
1_000) per remote). Vitest's 5s default per-test timeout is meant for unit tests
and is too tight here: under CI load the multi-remote fan-out tests in
federation-identity-deletion intermittently timed out (observed on the post-merge
main run), producing a flaky red check.

Set a file-level testTimeout of 30s in each of the three harness-based suites via
vi.setConfig. Scoped per-file so unit tests keep the strict 5s default; a genuine
hang still trips the 30s ceiling well before the 90s hook budget. No test logic
changed.
This commit is contained in:
TheZwiss
2026-07-10 00:51:18 +02:00
committed by GitHub
parent 9b6d1b18eb
commit c7d88481ad
3 changed files with 22 additions and 3 deletions
@@ -1,9 +1,14 @@
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { describe, it, expect, beforeAll, afterAll, vi } from 'vitest';
import { bootTwoInstances, type TwoInstanceHarness } from './helpers/twoInstanceHarness.js';
import { peerInstances } from './helpers/seedPeer.js';
import { registerLocal } from './helpers/testUsers.js';
import { buildHeadersForOrigin } from './helpers/hmacSign.js';
// Boots real federated instances and drives S2S over HTTP; the 5s unit-test
// default is too tight under CI load. See federation-identity-deletion.test.ts
// for the rationale. A genuine hang still trips this ceiling.
vi.setConfig({ testTimeout: 30_000 });
let harness: TwoInstanceHarness;
let sharedSecret: string;
@@ -1,4 +1,4 @@
import { describe, it, expect, afterEach } from 'vitest';
import { describe, it, expect, afterEach, vi } from 'vitest';
import {
bootTwoInstancesForHandshake,
registerAdmin,
@@ -11,6 +11,12 @@ import {
import type { TwoInstanceHarness } from './helpers/twoInstanceHarness.js';
import { openInspector } from './helpers/dbInspect.js';
// Boots real federated instances and drives the peering handshake over HTTP; the
// 5s unit-test default is too tight under CI load. See
// federation-identity-deletion.test.ts for the rationale. A genuine hang still
// trips this ceiling.
vi.setConfig({ testTimeout: 30_000 });
/**
* Acceptance-gate integration suite for the federation handshake desync bugs.
*
@@ -1,9 +1,17 @@
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { describe, it, expect, beforeAll, afterAll, vi } from 'vitest';
import { bootTwoInstances, bootHomePlusRemotes, type TwoInstanceHarness, type MultiRemoteHarness, type SpawnedInstance } from './helpers/twoInstanceHarness.js';
import { peerInstances } from './helpers/seedPeer.js';
import type { TestUser } from './helpers/testUsers.js';
import { connectWs } from './helpers/wsListener.js';
// Every test here boots real federated instances and drives S2S over HTTP, and
// several deliberately wait on log matchers (e.g. logMatched(..., 1_000) per
// remote). The 5s default per-test timeout is meant for unit tests and is too
// tight for this — under CI load the multi-remote fan-out tests intermittently
// timed out. Give the whole file a realistic ceiling; a genuine hang still trips
// it well before then. Hooks keep their own explicit timeouts (beforeAll 90s).
vi.setConfig({ testTimeout: 30_000 });
let harness: TwoInstanceHarness;
let sharedHmacSecret: string;