88 type CreateFlowView ,
99 createInitialFlowView ,
1010 createSettingsHint ,
11+ type CreateModeFlowView ,
1112 type DisplayModeFlowView ,
1213 renderCreateStepLabel ,
1314 resolveCreateDisplaySteps ,
@@ -20,6 +21,7 @@ import { UiProvider } from "../../src/ui/primitives.js"
2021import { CreatePanel } from "../../src/web/panel-create-select.js"
2122import {
2223 createFeatureRepoDisplaySettingsView ,
24+ createFeatureRepoSettingsView ,
2325 createFlowViewAtStep ,
2426 featureCreateRepoUrl
2527} from "./create-flow-test-helpers.js"
@@ -70,7 +72,9 @@ const createSettingsViewAtStep = (
7072 buffer : string
7173) : CreateFlowView => createFlowViewAtStep ( createSettingsView ( ) , stepName , buffer )
7274
73- const renderTerminalCreate = ( createView : CreateFlowView ) : string => {
75+ const createTerminalSettingsView = ( ) : CreateModeFlowView => createFeatureRepoSettingsView ( createContext )
76+
77+ const renderTerminalCreate = ( createView : CreateModeFlowView ) : string => {
7478 const defaults = resolveCreateInputs ( createContext , createView . values )
7579 const steps = resolveCreateFlowSteps ( createView . values )
7680 const step = steps [ createView . step ] ?? "repoUrl"
@@ -208,7 +212,7 @@ describe("Create flow rendering", () => {
208212
209213 it ( "renders terminal Create hints with the same repo/settings split" , ( ) => {
210214 const repoHtml = renderTerminalCreate ( createInitialFlowView ( featureCreateRepoUrl ) )
211- const settingsHtml = renderTerminalCreate ( createSettingsView ( ) )
215+ const settingsHtml = renderTerminalCreate ( createTerminalSettingsView ( ) )
212216
213217 expect ( repoHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
214218 expect ( repoHtml ) . not . toContain ( "Shift+Enter" )
@@ -218,27 +222,37 @@ describe("Create flow rendering", () => {
218222
219223 it ( "preserves hint visibility invariants for every Create step" , ( ) => {
220224 const settingsView = createSettingsView ( )
221- const lastStep = resolveCreateFlowSteps ( settingsView . values ) . length - 1
225+ const lastDisplayStep = resolveCreateDisplaySteps ( settingsView . values ) . length - 1
222226
223227 fc . assert (
224- fc . property ( fc . integer ( { min : 0 , max : lastStep } ) , ( step ) => {
228+ fc . property ( fc . integer ( { min : 0 , max : lastDisplayStep } ) , ( step ) => {
225229 const view = step === 0 ? createInitialFlowView ( featureCreateRepoUrl ) : { ...settingsView , step }
226230 const isSettings = step > 0
227231 const panelHtml = renderCreatePanel ( view )
228232 const compactPanelHtml = renderCreatePanel ( view , { compact : true } )
229- const terminalHtml = renderTerminalCreate ( view )
230233
231234 expect ( panelHtml . includes ( createSettingsHint ) ) . toBe ( isSettings )
232235 expect ( compactPanelHtml . includes ( createSettingsHint ) ) . toBe ( isSettings )
233- expect ( terminalHtml . includes ( createSettingsHint ) ) . toBe ( isSettings )
234236 expect ( panelHtml . includes ( webCreateSettingsChoiceHint ) ) . toBe ( isSettings )
235237 expect ( compactPanelHtml . includes ( webCreateSettingsChoiceHint ) ) . toBe ( isSettings )
236- expect ( terminalHtml ) . not . toContain ( webCreateSettingsChoiceHint )
237238 expect ( panelHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
238239 expect ( compactPanelHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
239- expect ( terminalHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
240240 expect ( panelHtml ) . not . toContain ( "Shift+Enter" )
241241 expect ( compactPanelHtml ) . not . toContain ( "Shift+Enter" )
242+ } )
243+ )
244+
245+ const terminalSettingsView = createTerminalSettingsView ( )
246+ const lastTerminalStep = resolveCreateFlowSteps ( terminalSettingsView . values ) . length - 1
247+
248+ fc . assert (
249+ fc . property ( fc . integer ( { min : 0 , max : lastTerminalStep } ) , ( step ) => {
250+ const view = step === 0 ? createInitialFlowView ( featureCreateRepoUrl ) : { ...terminalSettingsView , step }
251+ const terminalHtml = renderTerminalCreate ( view )
252+
253+ expect ( terminalHtml . includes ( createSettingsHint ) ) . toBe ( step > 0 )
254+ expect ( terminalHtml ) . not . toContain ( webCreateSettingsChoiceHint )
255+ expect ( terminalHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
242256 expect ( terminalHtml ) . not . toContain ( "Shift+Enter" )
243257 } )
244258 )
0 commit comments