Skip to content

Commit b8ab3f1

Browse files
committed
fix(app): use mode-aware create test helpers
1 parent 56cd34f commit b8ab3f1

3 files changed

Lines changed: 21 additions & 9 deletions

File tree

packages/app/tests/docker-git/app-ready-create-fixture.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import type { Dispatch, SetStateAction } from "react"
22
import { expect, vi } from "vitest"
33

4-
import { type CreateFlowView, createInitialFlowView } from "../../src/docker-git/menu-create-shared.js"
4+
import {
5+
type CreateFlowView,
6+
createInitialFlowView,
7+
resolveCreateDisplaySteps
8+
} from "../../src/docker-git/menu-create-shared.js"
59
import type { CreateInputs, CreateStep } from "../../src/docker-git/menu-types.js"
610
import type { submitCreateInputs } from "../../src/web/actions-projects.js"
711
import type { GithubAuthStatus } from "../../src/web/api.js"
@@ -165,7 +169,7 @@ export const createSettingsFlowViewAtStep = (
165169
): CreateFlowView => ({
166170
...createSettingsFlowView(),
167171
buffer,
168-
step: resolveRequiredCreateStepIndex(stepName)
172+
step: resolveRequiredCreateStepIndex(stepName, resolveCreateDisplaySteps())
169173
})
170174

171175
const createActionFrame = (

packages/app/tests/docker-git/app-ready-create.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
import { expectedOutDirForRepoUrl, repositoryCreateInputArbitrary } from "./create-flow-test-helpers.js"
2121

2222
const submitCreateInputsMock = vi.hoisted(() => vi.fn<typeof submitCreateInputs>())
23+
const testProjectsRoot = "/home/dev/.docker-git"
2324

2425
vi.mock("../../src/web/actions-projects.js", () => ({
2526
submitCreateInputs: submitCreateInputsMock
@@ -151,7 +152,7 @@ describe("app-ready-create", () => {
151152

152153
expect(submitCreateInputsMock).toHaveBeenCalledTimes(1)
153154
expectQuickCreateInputs(submitCreateInputsMock, {
154-
outDir: expectedOutDirForRepoUrl(repoUrl),
155+
outDir: expectedOutDirForRepoUrl(repoUrl, testProjectsRoot),
155156
repoRef: expectedRepoRef,
156157
repoUrl
157158
})

packages/app/tests/docker-git/create-flow-test-helpers.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import {
99
createInitialFlowView,
1010
type CreateModeFlowView,
1111
type DisplayModeFlowView,
12-
resolveCreateDisplaySteps
12+
resolveCreateDisplaySteps,
13+
resolveCreateFlowSteps
1314
} from "../../src/docker-git/menu-create-shared.js"
1415
import type { CreateStep } from "../../src/docker-git/menu-types.js"
1516

@@ -38,8 +39,8 @@ export const repositoryCreateInputArbitrary = fc.record({
3839
: `https://github.com/${owner}/${repo}/tree/${branch}`
3940
}))
4041

41-
export const expectedOutDirForRepoUrl = (repoUrl: string): string =>
42-
`/home/dev/.docker-git/${deriveRepoPathParts(resolveRepoInput(repoUrl).repoUrl).pathParts.join("/")}`
42+
export const expectedOutDirForRepoUrl = (repoUrl: string, projectsRoot: string): string =>
43+
`${projectsRoot}/${deriveRepoPathParts(resolveRepoInput(repoUrl).repoUrl).pathParts.join("/")}`
4344

4445
export const expectCreateContinueView = (
4546
next: ReturnType<typeof advanceCreateFlow>
@@ -61,8 +62,11 @@ export const expectCreateCompleteInputs = (
6162
return next.inputs
6263
}
6364

64-
export const resolveRequiredCreateStepIndex = (stepName: CreateStep): number => {
65-
const step = resolveCreateDisplaySteps().indexOf(stepName)
65+
export const resolveRequiredCreateStepIndex = (
66+
stepName: CreateStep,
67+
steps: ReadonlyArray<CreateStep>
68+
): number => {
69+
const step = steps.indexOf(stepName)
6670
if (step === -1) {
6771
throw new TypeError(`expected Create step: ${stepName}`)
6872
}
@@ -120,9 +124,12 @@ export function createFlowViewAtStep(
120124
stepName: CreateStep,
121125
buffer = "draft"
122126
): CreateFlowView {
127+
const steps = view.mode === "display"
128+
? resolveCreateDisplaySteps()
129+
: resolveCreateFlowSteps(view.values)
123130
return {
124131
...view,
125132
buffer,
126-
step: resolveRequiredCreateStepIndex(stepName)
133+
step: resolveRequiredCreateStepIndex(stepName, steps)
127134
}
128135
}

0 commit comments

Comments
 (0)