diff --git a/src/services/agent-environment-credentials.test.ts b/src/services/agent-environment-credentials.test.ts index ffe3e1e68..c34385d47 100644 --- a/src/services/agent-environment-credentials.test.ts +++ b/src/services/agent-environment-credentials.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/agent-environment-options.test.ts b/src/services/agent-environment-options.test.ts index 42a2ec1da..74a9a01eb 100644 --- a/src/services/agent-environment-options.test.ts +++ b/src/services/agent-environment-options.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; diff --git a/src/services/agent-environment-proxy.test.ts b/src/services/agent-environment-proxy.test.ts index 4cfcfc971..95095a200 100644 --- a/src/services/agent-environment-proxy.test.ts +++ b/src/services/agent-environment-proxy.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/agent-environment-runtime.test.ts b/src/services/agent-environment-runtime.test.ts index 370c852e6..534c65114 100644 --- a/src/services/agent-environment-runtime.test.ts +++ b/src/services/agent-environment-runtime.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/agent-service.test.ts b/src/services/agent-service.test.ts index f7dc603ff..063d4d520 100644 --- a/src/services/agent-service.test.ts +++ b/src/services/agent-service.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; diff --git a/src/services/agent-volumes.test.ts b/src/services/agent-volumes.test.ts index 3e1cbf526..36d899442 100644 --- a/src/services/agent-volumes.test.ts +++ b/src/services/agent-volumes.test.ts @@ -1,7 +1,5 @@ -import { generateDockerCompose } from '../compose-generator'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; import { logger } from '../logger'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; diff --git a/src/services/api-proxy-service-config.test.ts b/src/services/api-proxy-service-config.test.ts index d1797d18c..4f4c9dd5e 100644 --- a/src/services/api-proxy-service-config.test.ts +++ b/src/services/api-proxy-service-config.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; import { mockNetworkConfigWithProxy } from './api-proxy-service.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/api-proxy-service-env-forwarding.test.ts b/src/services/api-proxy-service-env-forwarding.test.ts index 04c50678a..0468f99ad 100644 --- a/src/services/api-proxy-service-env-forwarding.test.ts +++ b/src/services/api-proxy-service-env-forwarding.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, useTempWorkDir } from './service-test-setup.test-utils'; import { mockNetworkConfigWithProxy } from './api-proxy-service.test-utils'; import * as fs from 'fs'; import * as path from 'path'; diff --git a/src/services/api-proxy-service-key-isolation.test.ts b/src/services/api-proxy-service-key-isolation.test.ts index 79d940104..dfcb123ee 100644 --- a/src/services/api-proxy-service-key-isolation.test.ts +++ b/src/services/api-proxy-service-key-isolation.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; import { mockNetworkConfigWithProxy } from './api-proxy-service.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/api-proxy-service-rate-limit.test.ts b/src/services/api-proxy-service-rate-limit.test.ts index c29b61d30..8ce066233 100644 --- a/src/services/api-proxy-service-rate-limit.test.ts +++ b/src/services/api-proxy-service-rate-limit.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, useTempWorkDir } from './service-test-setup.test-utils'; import { mockNetworkConfigWithProxy } from './api-proxy-service.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/cli-proxy-service.test.ts b/src/services/cli-proxy-service.test.ts index d838bd73b..27b4bde2e 100644 --- a/src/services/cli-proxy-service.test.ts +++ b/src/services/cli-proxy-service.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/doh-proxy-service.test.ts b/src/services/doh-proxy-service.test.ts index d2bd37fef..066f1220f 100644 --- a/src/services/doh-proxy-service.test.ts +++ b/src/services/doh-proxy-service.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports) diff --git a/src/services/service-test-setup.test-utils.ts b/src/services/service-test-setup.test-utils.ts new file mode 100644 index 000000000..2eb1adb82 --- /dev/null +++ b/src/services/service-test-setup.test-utils.ts @@ -0,0 +1,15 @@ +/** + * Shared test setup for service unit tests. + * + * Re-exports the common imports used across all service test files, so each + * test file only needs a single import from this module for the shared pieces. + * + * Note: `jest.mock('execa', ...)` along with the `mockConfig` let-binding and + * `useTempWorkDir()` call must remain in each individual test file. Jest hoists + * jest.mock() calls to the top of each file before imports are resolved, so the + * factory closure cannot reference variables from an imported module. + */ + +export { generateDockerCompose } from '../compose-generator'; +export type { WrapperConfig } from '../types'; +export { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; diff --git a/src/services/squid-service.test.ts b/src/services/squid-service.test.ts index ede82871e..6c8c1d1ca 100644 --- a/src/services/squid-service.test.ts +++ b/src/services/squid-service.test.ts @@ -1,6 +1,4 @@ -import { generateDockerCompose } from '../compose-generator'; -import { WrapperConfig } from '../types'; -import { baseConfig, mockNetworkConfig, useTempWorkDir } from '../test-helpers/docker-test-fixtures.test-utils'; +import { generateDockerCompose, WrapperConfig, baseConfig, mockNetworkConfig, useTempWorkDir } from './service-test-setup.test-utils'; // Create mock functions (must remain per-file — jest.mock() is hoisted before imports)