Skip to content

Commit bc1c55a

Browse files
committed
Improve smoke auth readiness diagnostics
1 parent 22cbc0f commit bc1c55a

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

tests/integration/scenarios/common.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -337,15 +337,16 @@ export async function waitForTerrariumPublicEndpoints(
337337
includeAuth: boolean,
338338
localIdpProvider: IntegrationIdpProvider
339339
): Promise<void> {
340-
await waitForHttpStatusResolved(`https://${host.domains.manage}`, [302, 303], { timeoutMs: 300000, resolveIp: host.server.ipv4 });
341-
await waitForHttpStatusResolved(`https://${host.domains.proxy}`, [302, 303], { timeoutMs: 300000, resolveIp: host.server.ipv4 });
342-
await waitForHttpStatusResolved(`https://${host.domains.lxd}`, [200, 302], { timeoutMs: 300000, resolveIp: host.server.ipv4 });
343340
if (includeAuth) {
341+
// Surface local IdP discovery/TLS readiness before oauth2-proxy turns those failures into 500s.
344342
await waitForHttpStatusResolved(localAuthDiscoveryUrl(host.domains.auth, localIdpProvider), [200], {
345343
timeoutMs: 300000,
346344
resolveIp: host.server.ipv4
347345
});
348346
}
347+
await waitForHttpStatusResolved(`https://${host.domains.manage}`, [302, 303], { timeoutMs: 300000, resolveIp: host.server.ipv4 });
348+
await waitForHttpStatusResolved(`https://${host.domains.proxy}`, [302, 303], { timeoutMs: 300000, resolveIp: host.server.ipv4 });
349+
await waitForHttpStatusResolved(`https://${host.domains.lxd}`, [200, 302], { timeoutMs: 300000, resolveIp: host.server.ipv4 });
349350
}
350351

351352
/** Verifies the UI endpoints and auth gates for a Terrarium management surface. */

tests/integration/scenarios/source.test.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,19 @@ describe("integration scenario IDP source wiring", () => {
2626
expect(common).not.toContain("context.config.zitadelCloudIssuer");
2727
});
2828

29-
test("public endpoint readiness uses provider-specific local auth discovery", () => {
29+
test("public endpoint readiness checks provider-specific local auth discovery first", () => {
3030
const common = source("tests/integration/scenarios/common.ts");
3131
const smoke = source("tests/integration/scenarios/smoke.ts");
3232

33-
expect(common).toContain("localAuthDiscoveryUrl(host.domains.auth, localIdpProvider)");
33+
const authDiscoveryProbe = common.indexOf("waitForHttpStatusResolved(localAuthDiscoveryUrl(host.domains.auth, localIdpProvider)");
34+
const manageProbe = common.indexOf("waitForHttpStatusResolved(`https://${host.domains.manage}`");
35+
const proxyProbe = common.indexOf("waitForHttpStatusResolved(`https://${host.domains.proxy}`");
36+
const lxdProbe = common.indexOf("waitForHttpStatusResolved(`https://${host.domains.lxd}`");
37+
expect(authDiscoveryProbe).toBeGreaterThanOrEqual(0);
38+
expect(authDiscoveryProbe).toBeLessThan(manageProbe);
39+
expect(authDiscoveryProbe).toBeLessThan(proxyProbe);
40+
expect(manageProbe).toBeLessThan(proxyProbe);
41+
expect(proxyProbe).toBeLessThan(lxdProbe);
3442
expect(common).toContain('provider === "logto" ? "/oidc/.well-known/openid-configuration"');
3543
expect(common).toContain(': "/.well-known/openid-configuration"');
3644
expect(smoke).toContain("waitForTerrariumPublicEndpoints(primary, true, context.config.idpProvider)");

0 commit comments

Comments
 (0)