77 type CreateFlowContext ,
88 type CreateFlowView ,
99 createInitialFlowView ,
10- createSettingsHint ,
1110 type CreateModeFlowView ,
11+ createSettingsHint ,
1212 type DisplayModeFlowView ,
1313 renderCreateStepLabel ,
1414 resolveCreateDisplaySteps ,
@@ -34,6 +34,7 @@ const createContext: CreateFlowContext = {
3434const renderWithUi = ( element : ReactElement ) : string =>
3535 renderToStaticMarkup ( createElement ( UiProvider , { primitives : webPrimitives } , element ) )
3636
37+ const webCreateSettingsNavigationHint = "↑ - up, ↓ - down, Enter - apply + down"
3738const webCreateSettingsChoiceHint = "←/→ - choose yes/no or GPU"
3839const createSettingsView = ( ) : DisplayModeFlowView => createFeatureRepoDisplaySettingsView ( createContext )
3940
@@ -54,6 +55,7 @@ const renderCreatePanel = (
5455const activeStepMarker = "> "
5556
5657const countActiveStepMarkers = ( html : string ) : number => html . split ( activeStepMarker ) . length - 1
58+ const renderedHelpLine = ( line : string ) : string => `>${ line } </div>`
5759
5860const renderStepLabels = ( createView : CreateFlowView ) : ReadonlyArray < string > => {
5961 const defaults = resolveCreateInputs ( createContext , createView . values )
@@ -204,10 +206,18 @@ describe("Create flow rendering", () => {
204206 } )
205207
206208 it ( "renders the settings navigation hint only after leaving the repo URL step" , ( ) => {
207- expect ( renderCreatePanel ( createInitialFlowView ( featureCreateRepoUrl ) ) ) . not . toContain ( createSettingsHint )
208- expect ( renderCreatePanel ( createInitialFlowView ( featureCreateRepoUrl ) ) ) . not . toContain ( webCreateSettingsChoiceHint )
209- expect ( renderCreatePanel ( createSettingsView ( ) ) ) . toContain ( createSettingsHint )
210- expect ( renderCreatePanel ( createSettingsView ( ) ) ) . toContain ( webCreateSettingsChoiceHint )
209+ expect ( renderCreatePanel ( createInitialFlowView ( featureCreateRepoUrl ) ) ) . not . toContain (
210+ renderedHelpLine ( createSettingsHint )
211+ )
212+ expect ( renderCreatePanel ( createInitialFlowView ( featureCreateRepoUrl ) ) ) . not . toContain (
213+ renderedHelpLine ( webCreateSettingsNavigationHint )
214+ )
215+ expect ( renderCreatePanel ( createInitialFlowView ( featureCreateRepoUrl ) ) ) . not . toContain (
216+ renderedHelpLine ( webCreateSettingsChoiceHint )
217+ )
218+ expect ( renderCreatePanel ( createSettingsView ( ) ) ) . not . toContain ( renderedHelpLine ( createSettingsHint ) )
219+ expect ( renderCreatePanel ( createSettingsView ( ) ) ) . toContain ( renderedHelpLine ( webCreateSettingsNavigationHint ) )
220+ expect ( renderCreatePanel ( createSettingsView ( ) ) ) . toContain ( renderedHelpLine ( webCreateSettingsChoiceHint ) )
211221 } )
212222
213223 it ( "renders terminal Create hints with the same repo/settings split" , ( ) => {
@@ -216,8 +226,9 @@ describe("Create flow rendering", () => {
216226
217227 expect ( repoHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
218228 expect ( repoHtml ) . not . toContain ( "Shift+Enter" )
219- expect ( settingsHtml ) . toContain ( createSettingsHint )
220- expect ( settingsHtml ) . not . toContain ( webCreateSettingsChoiceHint )
229+ expect ( settingsHtml ) . toContain ( renderedHelpLine ( createSettingsHint ) )
230+ expect ( settingsHtml ) . not . toContain ( renderedHelpLine ( webCreateSettingsNavigationHint ) )
231+ expect ( settingsHtml ) . not . toContain ( renderedHelpLine ( webCreateSettingsChoiceHint ) )
221232 } )
222233
223234 it ( "preserves hint visibility invariants for every Create step" , ( ) => {
@@ -231,10 +242,12 @@ describe("Create flow rendering", () => {
231242 const panelHtml = renderCreatePanel ( view )
232243 const compactPanelHtml = renderCreatePanel ( view , { compact : true } )
233244
234- expect ( panelHtml . includes ( createSettingsHint ) ) . toBe ( isSettings )
235- expect ( compactPanelHtml . includes ( createSettingsHint ) ) . toBe ( isSettings )
236- expect ( panelHtml . includes ( webCreateSettingsChoiceHint ) ) . toBe ( isSettings )
237- expect ( compactPanelHtml . includes ( webCreateSettingsChoiceHint ) ) . toBe ( isSettings )
245+ expect ( panelHtml ) . not . toContain ( renderedHelpLine ( createSettingsHint ) )
246+ expect ( compactPanelHtml ) . not . toContain ( renderedHelpLine ( createSettingsHint ) )
247+ expect ( panelHtml . includes ( renderedHelpLine ( webCreateSettingsNavigationHint ) ) ) . toBe ( isSettings )
248+ expect ( compactPanelHtml . includes ( renderedHelpLine ( webCreateSettingsNavigationHint ) ) ) . toBe ( isSettings )
249+ expect ( panelHtml . includes ( renderedHelpLine ( webCreateSettingsChoiceHint ) ) ) . toBe ( isSettings )
250+ expect ( compactPanelHtml . includes ( renderedHelpLine ( webCreateSettingsChoiceHint ) ) ) . toBe ( isSettings )
238251 expect ( panelHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
239252 expect ( compactPanelHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
240253 expect ( panelHtml ) . not . toContain ( "Shift+Enter" )
@@ -250,8 +263,9 @@ describe("Create flow rendering", () => {
250263 const view = step === 0 ? createInitialFlowView ( featureCreateRepoUrl ) : { ...terminalSettingsView , step }
251264 const terminalHtml = renderTerminalCreate ( view )
252265
253- expect ( terminalHtml . includes ( createSettingsHint ) ) . toBe ( step > 0 )
254- expect ( terminalHtml ) . not . toContain ( webCreateSettingsChoiceHint )
266+ expect ( terminalHtml . includes ( renderedHelpLine ( createSettingsHint ) ) ) . toBe ( step > 0 )
267+ expect ( terminalHtml ) . not . toContain ( renderedHelpLine ( webCreateSettingsNavigationHint ) )
268+ expect ( terminalHtml ) . not . toContain ( renderedHelpLine ( webCreateSettingsChoiceHint ) )
255269 expect ( terminalHtml ) . not . toContain ( "Enter = next, Esc = cancel." )
256270 expect ( terminalHtml ) . not . toContain ( "Shift+Enter" )
257271 } )
0 commit comments