diff --git a/packages/cli/src/setup.test.ts b/packages/cli/src/setup.test.ts index e335591e..da3753af 100644 --- a/packages/cli/src/setup.test.ts +++ b/packages/cli/src/setup.test.ts @@ -4,8 +4,13 @@ import { join } from 'node:path'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { contextBuildCommands, writeKtxSetupContextState } from './setup-context.js'; +import { runDemoTour } from './setup-demo-tour.js'; import { readKtxSetupStatus, runKtxSetup } from './setup.js'; +vi.mock('./setup-demo-tour.js', () => ({ + runDemoTour: vi.fn(async () => 0), +})); + function makeIo() { let stdout = ''; let stderr = ''; @@ -691,9 +696,8 @@ describe('setup status', () => { ); }); - it('runs the seeded demo when the first setup intent menu chooses packaged demo data', async () => { + it('runs the demo tour when the first setup intent menu chooses demo', async () => { const testIo = makeIo(); - const demo = vi.fn(async (_args: { projectDir: string }, _io: unknown) => 0); await expect( runKtxSetup( @@ -714,19 +718,15 @@ describe('setup status', () => { showEntryMenu: true, }, testIo.io, - { entryMenuDeps: { prompts: { select: vi.fn(async () => 'demo'), cancel: vi.fn() } }, demo }, + { entryMenuDeps: { prompts: { select: vi.fn(async () => 'demo'), cancel: vi.fn() } } }, ), ).resolves.toBe(0); - expect(demo).toHaveBeenCalledWith( - expect.objectContaining({ - command: 'seeded', - outputMode: 'viz', - inputMode: 'auto', - }), + expect(runDemoTour).toHaveBeenCalledWith( + { inputMode: 'auto' }, testIo.io, + expect.objectContaining({}), ); - expect(demo.mock.calls[0]?.[0].projectDir).toMatch(/ktx-demo-/); }); it('creates a project through run mode when --new is selected', async () => { diff --git a/packages/cli/src/setup.ts b/packages/cli/src/setup.ts index d72b5bb0..63369f9a 100644 --- a/packages/cli/src/setup.ts +++ b/packages/cli/src/setup.ts @@ -3,7 +3,6 @@ import { join, resolve } from 'node:path'; import { cancel, isCancel, select } from '@clack/prompts'; import { loadKtxProject } from '@ktx/context/project'; import type { KtxCliIo } from './cli-runtime.js'; -import type { KtxDemoArgs } from './demo.js'; import { formatSetupNextStepLines } from './next-steps.js'; import { isKtxSetupExitError, withSetupInterruptConfirmation } from './setup-interrupt.js'; import { @@ -146,7 +145,6 @@ export interface KtxSetupDeps { removeAgents?: typeof removeKtxAgentInstall; readyMenuDeps?: KtxSetupReadyMenuDeps; entryMenuDeps?: KtxSetupEntryMenuDeps; - demo?: (args: KtxDemoArgs, io: KtxCliIo) => Promise; } const SOURCE_DRIVERS = new Set(['dbt', 'metricflow', 'metabase', 'looker', 'lookml', 'notion']);