diff --git a/packages/cli-kit/src/public/node/context/fqdn.ts b/packages/cli-kit/src/public/node/context/fqdn.ts index 483372e5135..c1fe41d4d64 100644 --- a/packages/cli-kit/src/public/node/context/fqdn.ts +++ b/packages/cli-kit/src/public/node/context/fqdn.ts @@ -115,7 +115,7 @@ export async function identityFqdn(): Promise { const productionFqdn = 'accounts.shopify.com' switch (environment) { case 'local': - return new DevServer('identity').host() + return new DevServer('identity').host({useMockIfNotRunning: true}) default: return productionFqdn } diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.test.ts b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.test.ts new file mode 100644 index 00000000000..41f7ff80d6d --- /dev/null +++ b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.test.ts @@ -0,0 +1,24 @@ +import {createServer} from './dev-server-2024.js' +import {beforeEach, describe, expect, test} from 'vitest' +import {assertCompatibleEnvironment} from './env.js' +import {vi} from 'vitest' + +vi.mock('./env.js') + +beforeEach(() => { + vi.mocked(assertCompatibleEnvironment).mockImplementation(() => true) +}) + +describe('createServer', () => { + describe('host', () => { + test('throws when dev server is not running and useMockIfNotRunning is not set', () => { + const server = createServer('test-project') + expect(() => server.host()).toThrow() + }) + + test('does not throw when useMockIfNotRunning is true', () => { + const server = createServer('test-project') + expect(() => server.host({useMockIfNotRunning: true})).not.toThrow() + }) + }) +}) diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts index 79ce264c54f..7b2b2d99bf1 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts @@ -16,9 +16,12 @@ export function createServer(projectName: string) { } } -function host(projectName: string, options: HostOptions = {}): string { +function host(projectName: string, options: HostOptions = {useMockIfNotRunning: false}): string { assertCompatibleEnvironment() - ;(assertRunningOverride || assertRunning2024)(projectName) + + if (!options.useMockIfNotRunning) { + assertRunning2024(projectName) + } const prefix = (options.nonstandardHostPrefix || projectName).replace(/_/g, '-') @@ -80,10 +83,3 @@ function resolveBackendHost(name: string): string { return host } } - -// Allow overrides for more concise test setup. Meh. -let assertRunningOverride: typeof assertRunning2024 | undefined - -export function setAssertRunning(override: typeof assertRunningOverride) { - assertRunningOverride = override -} diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/types.ts b/packages/cli-kit/src/public/node/vendor/dev_server/types.ts index d4fbd06a976..f40cad8a237 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/types.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/types.ts @@ -10,4 +10,5 @@ export interface DevServer { export interface HostOptions { nonstandardHostPrefix?: string + useMockIfNotRunning?: boolean }