@@ -95,6 +95,9 @@ let lastSyncedSessionStorePath: string | undefined;
|
95 | 95 | let lastSyncedSessionConfigJson: string | undefined; |
96 | 96 | let activeSuiteGatewayServerCount = 0; |
97 | 97 | let activeSuiteHookScopeCount = 0; |
| 98 | +// Gateway tests exercise RPC/server behavior, not production bind auto-detection by default. |
| 99 | +// Keep suite fixtures loopback-stable inside containers; bind-specific tests opt in explicitly. |
| 100 | +const DEFAULT_GATEWAY_TEST_BIND = "loopback" as const; |
98 | 101 | |
99 | 102 | function resolveGatewayTestMainSessionKeys(): string[] { |
100 | 103 | const resolved = resolveMainSessionKeyFromConfig(); |
@@ -316,7 +319,7 @@ async function resetGatewayTestState(options: { uniqueConfigRoot: boolean }) {
|
316 | 319 | sessionStoreSaveDelayMs.value = 0; |
317 | 320 | testTailnetIPv4.value = undefined; |
318 | 321 | testTailscaleWhois.value = null; |
319 | | -testState.gatewayBind = undefined; |
| 322 | +testState.gatewayBind = DEFAULT_GATEWAY_TEST_BIND; |
320 | 323 | testState.gatewayAuth = { mode: "token", token: "test-gateway-token-1234567890" }; |
321 | 324 | testState.gatewayControlUi = undefined; |
322 | 325 | testState.hooksConfig = undefined; |
@@ -407,7 +410,7 @@ async function resetGatewayTestRuntimeOnly() {
|
407 | 410 | sessionStoreSaveDelayMs.value = 0; |
408 | 411 | testTailnetIPv4.value = undefined; |
409 | 412 | testTailscaleWhois.value = null; |
410 | | -testState.gatewayBind = undefined; |
| 413 | +testState.gatewayBind = DEFAULT_GATEWAY_TEST_BIND; |
411 | 414 | testState.gatewayAuth = { mode: "token", token: "test-gateway-token-1234567890" }; |
412 | 415 | testState.gatewayControlUi = undefined; |
413 | 416 | testState.hooksConfig = undefined; |
|