API Surface Issue
Category
Naming collision - Multiple modules export the same testHelpers name
Summary
Six modules export a constant named testHelpers, causing naming collisions that force test files to use import aliasing. This creates maintenance burden and reduces code readability.
Affected Files
-
src/host-iptables-shared.ts:27
export const testHelpers = { resetIpv6State };
-
src/copilot-api-resolver.ts:88
export const testHelpers = {
deriveCopilotApiTargetFromProviderBaseUrl,
deriveCopilotApiBasePathFromProviderBaseUrl,
};
-
src/host-env.ts:52
export const testHelpers = { subnetsOverlap };
-
src/container-lifecycle.ts:469
export const testHelpers = { isAgentExternallyKilled, resetAgentExternallyKilled };
-
src/host-iptables-network.ts:67
export const testHelpers = { cleanupFirewallNetwork };
-
src/logs/log-discovery.ts:168
export const testHelpers = { isContainerRunning };
Evidence of Real Impact
Test files are already forced to use import aliasing to avoid conflicts:
src/host-iptables-network.test.ts:
import { testHelpers as networkTestHelpers } from ./host-iptables-network;
import { testHelpers } from ./host-iptables-shared;
src/docker-manager-lifecycle.test.ts:
import { testHelpers as lifecycleTestHelpers } from ./container-lifecycle;
Recommended Fix
Rename each testHelpers export to be module-specific:
src/host-iptables-shared.ts → iptablesSharedTestHelpers
src/copilot-api-resolver.ts → copilotApiResolverTestHelpers
src/host-env.ts → hostEnvTestHelpers
src/container-lifecycle.ts → containerLifecycleTestHelpers
src/host-iptables-network.ts → iptablesNetworkTestHelpers
src/logs/log-discovery.ts → logDiscoveryTestHelpers
This follows the pattern already established by import aliasing but makes it explicit in the export name, eliminating the need for manual aliasing at import sites.
Impact
- Dead code risk: Low (all exports are used)
- Maintenance burden: High (forces import aliasing, reduces code clarity)
- Collision risk: High (6 modules with identical export names)
Priority Score: 7
- Naming collision across 6 modules: +2
- Evidence of actual conflicts: +3
- Maintenance burden: +2
Detected by Export Audit workflow. Triggered by push to main on 2026-05-25
Generated by API Surface & Export Audit · ● 4.5M · ◷
API Surface Issue
Category
Naming collision - Multiple modules export the same
testHelpersnameSummary
Six modules export a constant named
testHelpers, causing naming collisions that force test files to use import aliasing. This creates maintenance burden and reduces code readability.Affected Files
src/host-iptables-shared.ts:27
src/copilot-api-resolver.ts:88
src/host-env.ts:52
src/container-lifecycle.ts:469
src/host-iptables-network.ts:67
src/logs/log-discovery.ts:168
Evidence of Real Impact
Test files are already forced to use import aliasing to avoid conflicts:
src/host-iptables-network.test.ts:
src/docker-manager-lifecycle.test.ts:
Recommended Fix
Rename each
testHelpersexport to be module-specific:src/host-iptables-shared.ts→iptablesSharedTestHelperssrc/copilot-api-resolver.ts→copilotApiResolverTestHelperssrc/host-env.ts→hostEnvTestHelperssrc/container-lifecycle.ts→containerLifecycleTestHelperssrc/host-iptables-network.ts→iptablesNetworkTestHelperssrc/logs/log-discovery.ts→logDiscoveryTestHelpersThis follows the pattern already established by import aliasing but makes it explicit in the export name, eliminating the need for manual aliasing at import sites.
Impact
Priority Score: 7
Detected by Export Audit workflow. Triggered by push to main on 2026-05-25