@@ -161,19 +161,19 @@ describe("Markdown file-like href behavior", () => {
161161 expect ( onOpenFileLink ) . toHaveBeenCalledWith ( "/workspace/dist/assets" ) ;
162162 } ) ;
163163
164- it ( "keeps generic workspace routes as normal markdown links" , ( ) => {
164+ it ( "keeps exact workspace routes as normal markdown links" , ( ) => {
165165 const onOpenFileLink = vi . fn ( ) ;
166166 render (
167167 < Markdown
168- value = "See [overview ](/workspace/reviews/overview )"
168+ value = "See [reviews ](/workspace/reviews)"
169169 className = "markdown"
170170 workspacePath = "/Users/sotiriskaniras/Documents/Development/Forks/CodexMonitor"
171171 onOpenFileLink = { onOpenFileLink }
172172 /> ,
173173 ) ;
174174
175- const link = screen . getByText ( "overview " ) . closest ( "a" ) ;
176- expect ( link ?. getAttribute ( "href" ) ) . toBe ( "/workspace/reviews/overview " ) ;
175+ const link = screen . getByText ( "reviews " ) . closest ( "a" ) ;
176+ expect ( link ?. getAttribute ( "href" ) ) . toBe ( "/workspace/reviews" ) ;
177177
178178 const clickEvent = createEvent . click ( link as Element , {
179179 bubbles : true ,
@@ -588,4 +588,48 @@ describe("Markdown file-like href behavior", () => {
588588 expect ( clickEvent . defaultPrevented ) . toBe ( true ) ;
589589 expect ( onOpenFileLink ) . toHaveBeenCalledWith ( "/tmp/report#L12.md" ) ;
590590 } ) ;
591+
592+ it ( "still opens mounted file links when the workspace basename is settings" , ( ) => {
593+ const onOpenFileLink = vi . fn ( ) ;
594+ render (
595+ < Markdown
596+ value = "See [app](/workspace/settings/src/App.tsx)"
597+ className = "markdown"
598+ onOpenFileLink = { onOpenFileLink }
599+ /> ,
600+ ) ;
601+
602+ const link = screen . getByText ( "app" ) . closest ( "a" ) ;
603+ expect ( link ?. getAttribute ( "href" ) ) . toBe ( "/workspace/settings/src/App.tsx" ) ;
604+
605+ const clickEvent = createEvent . click ( link as Element , {
606+ bubbles : true ,
607+ cancelable : true ,
608+ } ) ;
609+ fireEvent ( link as Element , clickEvent ) ;
610+ expect ( clickEvent . defaultPrevented ) . toBe ( true ) ;
611+ expect ( onOpenFileLink ) . toHaveBeenCalledWith ( "/workspace/settings/src/App.tsx" ) ;
612+ } ) ;
613+
614+ it ( "linkifies mounted file paths when the nested workspace basename is reviews" , ( ) => {
615+ const onOpenFileLink = vi . fn ( ) ;
616+ const { container } = render (
617+ < Markdown
618+ value = "See /workspaces/team/reviews/src/App.tsx for details."
619+ className = "markdown"
620+ onOpenFileLink = { onOpenFileLink }
621+ /> ,
622+ ) ;
623+
624+ const link = container . querySelector ( 'a[href^="codex-file:"]' ) ;
625+ expect ( link ) . not . toBeNull ( ) ;
626+
627+ const clickEvent = createEvent . click ( link as Element , {
628+ bubbles : true ,
629+ cancelable : true ,
630+ } ) ;
631+ fireEvent ( link as Element , clickEvent ) ;
632+ expect ( clickEvent . defaultPrevented ) . toBe ( true ) ;
633+ expect ( onOpenFileLink ) . toHaveBeenCalledWith ( "/workspaces/team/reviews/src/App.tsx" ) ;
634+ } ) ;
591635} ) ;
0 commit comments