99 sessionIDFromUrl ,
1010} from "../actions"
1111import { projectSwitchSelector , promptSelector , workspaceItemSelector , workspaceNewSessionSelector } from "../selectors"
12- import { createSdk , dirSlug } from "../utils"
12+ import { createSdk , dirSlug , sessionPath } from "../utils"
1313
1414function slugFromUrl ( url : string ) {
1515 return / \/ ( [ ^ / ] + ) \/ s e s s i o n (?: \/ | $ ) / . exec ( url ) ?. [ 1 ] ?? ""
@@ -51,7 +51,6 @@ test("switching back to a project opens the latest workspace session", async ({
5151
5252 const other = await createTestProject ( )
5353 const otherSlug = dirSlug ( other )
54- const stamp = Date . now ( )
5554 let rootDir : string | undefined
5655 let workspaceDir : string | undefined
5756 let sessionID : string | undefined
@@ -80,6 +79,7 @@ test("switching back to a project opens the latest workspace session", async ({
8079
8180 const workspaceSlug = slugFromUrl ( page . url ( ) )
8281 workspaceDir = base64Decode ( workspaceSlug )
82+ if ( ! workspaceDir ) throw new Error ( `Failed to decode workspace slug: ${ workspaceSlug } ` )
8383 await openSidebar ( page )
8484
8585 const workspace = page . locator ( workspaceItemSelector ( workspaceSlug ) ) . first ( )
@@ -92,15 +92,14 @@ test("switching back to a project opens the latest workspace session", async ({
9292
9393 await expect ( page ) . toHaveURL ( new RegExp ( `/${ workspaceSlug } /session(?:[/?#]|$)` ) )
9494
95- const prompt = page . locator ( promptSelector )
96- await expect ( prompt ) . toBeVisible ( )
97- await prompt . fill ( `project switch remembers workspace ${ stamp } ` )
98- await prompt . press ( "Enter" )
99-
100- await expect . poll ( ( ) => sessionIDFromUrl ( page . url ( ) ) ?? "" , { timeout : 30_000 } ) . not . toBe ( "" )
101- const created = sessionIDFromUrl ( page . url ( ) )
102- if ( ! created ) throw new Error ( `Failed to parse session id from URL: ${ page . url ( ) } ` )
95+ const created = await createSdk ( workspaceDir )
96+ . session . create ( )
97+ . then ( ( x ) => x . data ?. id )
98+ if ( ! created ) throw new Error ( `Failed to create session for workspace: ${ workspaceDir } ` )
10399 sessionID = created
100+
101+ await page . goto ( sessionPath ( workspaceDir , created ) )
102+ await expect ( page . locator ( promptSelector ) ) . toBeVisible ( )
104103 await expect ( page ) . toHaveURL ( new RegExp ( `/${ workspaceSlug } /session/${ created } (?:[/?#]|$)` ) )
105104
106105 await openSidebar ( page )
@@ -114,7 +113,8 @@ test("switching back to a project opens the latest workspace session", async ({
114113 await expect ( rootButton ) . toBeVisible ( )
115114 await rootButton . click ( )
116115
117- await expect ( page ) . toHaveURL ( new RegExp ( `/${ workspaceSlug } /session/${ created } (?:[/?#]|$)` ) )
116+ await expect . poll ( ( ) => sessionIDFromUrl ( page . url ( ) ) ?? "" ) . toBe ( created )
117+ await expect ( page ) . toHaveURL ( new RegExp ( `/session/${ created } (?:[/?#]|$)` ) )
118118 } ,
119119 { extra : [ other ] } ,
120120 )
0 commit comments