From 0b66835c26b4f080bf4350d2b7ab57551db8a3c6 Mon Sep 17 00:00:00 2001 From: Alex Montague Date: Thu, 20 Nov 2025 17:54:24 -0500 Subject: [PATCH] add option to bypass running service check if configured --- .../cli-kit/src/public/node/context/fqdn.ts | 2 +- .../vendor/dev_server/dev-server-2024.test.ts | 24 +++++++++++++++++++ .../node/vendor/dev_server/dev-server-2024.ts | 14 ++++------- .../public/node/vendor/dev_server/types.ts | 1 + 4 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.test.ts 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 }