@@ -20,6 +20,7 @@ import {
20
20
prometheusPort ,
21
21
requireEnterpriseTests ,
22
22
} from "./constants" ;
23
+ import { expectUrl } from "./expectUrl" ;
23
24
import {
24
25
Agent ,
25
26
type App ,
@@ -49,20 +50,18 @@ export const createWorkspace = async (
49
50
richParameters : RichParameter [ ] = [ ] ,
50
51
buildParameters : WorkspaceBuildParameter [ ] = [ ] ,
51
52
) : Promise < string > => {
52
- await page . goto ( " /templates/" + templateName + " /workspace" , {
53
+ await page . goto ( ` /templates/${ templateName } /workspace` , {
53
54
waitUntil : "domcontentloaded" ,
54
55
} ) ;
55
- await expect ( page ) . toHaveURL ( " /templates/" + templateName + " /workspace" ) ;
56
+ await expectUrl ( page ) . toHavePathName ( ` /templates/${ templateName } /workspace` ) ;
56
57
57
58
const name = randomName ( ) ;
58
59
await page . getByLabel ( "name" ) . fill ( name ) ;
59
60
60
61
await fillParameters ( page , richParameters , buildParameters ) ;
61
62
await page . getByTestId ( "form-submit" ) . click ( ) ;
62
63
63
- // Workaround: OutdatedAgent lands at "http://localhost:3111/@admin/8d6225b7?resources=echo_dev"
64
- // and this is also a correct location.
65
- await page . waitForURL ( new RegExp ( "/@admin/" + name ) ) ;
64
+ await expectUrl ( page ) . toHavePathName ( "/@admin/" + name ) ;
66
65
67
66
await page . waitForSelector ( "*[data-testid='build-status'] >> text=Running" , {
68
67
state : "visible" ,
@@ -79,8 +78,8 @@ export const verifyParameters = async (
79
78
await page . goto ( "/@admin/" + workspaceName + "/settings/parameters" , {
80
79
waitUntil : "domcontentloaded" ,
81
80
} ) ;
82
- await expect ( page ) . toHaveURL (
83
- " /@admin/" + workspaceName + " /settings/parameters" ,
81
+ await expectUrl ( page ) . toHavePathName (
82
+ ` /@admin/${ workspaceName } /settings/parameters` ,
84
83
) ;
85
84
86
85
for ( const buildParameter of expectedBuildParameters ) {
@@ -141,7 +140,7 @@ export const createTemplate = async (
141
140
} ) ;
142
141
143
142
await page . goto ( "/templates/new" , { waitUntil : "domcontentloaded" } ) ;
144
- await expect ( page ) . toHaveURL ( "/templates/new" ) ;
143
+ await expectUrl ( page ) . toHavePathName ( "/templates/new" ) ;
145
144
146
145
await page . getByTestId ( "file-upload" ) . setInputFiles ( {
147
146
buffer : await createTemplateVersionTar ( responses ) ,
@@ -151,7 +150,7 @@ export const createTemplate = async (
151
150
const name = randomName ( ) ;
152
151
await page . getByLabel ( "Name *" ) . fill ( name ) ;
153
152
await page . getByTestId ( "form-submit" ) . click ( ) ;
154
- await expect ( page ) . toHaveURL ( `/templates/${ name } /files` , {
153
+ await expectUrl ( page ) . toHavePathName ( `/templates/${ name } /files` , {
155
154
timeout : 30000 ,
156
155
} ) ;
157
156
return name ;
@@ -161,7 +160,7 @@ export const createTemplate = async (
161
160
// random name.
162
161
export const createGroup = async ( page : Page ) : Promise < string > => {
163
162
await page . goto ( "/groups/create" , { waitUntil : "domcontentloaded" } ) ;
164
- await expect ( page ) . toHaveURL ( "/groups/create" ) ;
163
+ await expectUrl ( page ) . toHavePathName ( "/groups/create" ) ;
165
164
166
165
const name = randomName ( ) ;
167
166
await page . getByLabel ( "Name" , { exact : true } ) . fill ( name ) ;
@@ -222,7 +221,7 @@ export const stopWorkspace = async (page: Page, workspaceName: string) => {
222
221
await page . goto ( "/@admin/" + workspaceName , {
223
222
waitUntil : "domcontentloaded" ,
224
223
} ) ;
225
- await expect ( page ) . toHaveURL ( " /@admin/" + workspaceName ) ;
224
+ await expectUrl ( page ) . toHavePathName ( ` /@admin/${ workspaceName } ` ) ;
226
225
227
226
await page . getByTestId ( "workspace-stop-button" ) . click ( ) ;
228
227
@@ -241,7 +240,7 @@ export const buildWorkspaceWithParameters = async (
241
240
await page . goto ( "/@admin/" + workspaceName , {
242
241
waitUntil : "domcontentloaded" ,
243
242
} ) ;
244
- await expect ( page ) . toHaveURL ( " /@admin/" + workspaceName ) ;
243
+ await expectUrl ( page ) . toHavePathName ( ` /@admin/${ workspaceName } ` ) ;
245
244
246
245
await page . getByTestId ( "build-parameters-button" ) . click ( ) ;
247
246
@@ -753,7 +752,7 @@ export const updateTemplateSettings = async (
753
752
await page . goto ( `/templates/${ templateName } /settings` , {
754
753
waitUntil : "domcontentloaded" ,
755
754
} ) ;
756
- await expect ( page ) . toHaveURL ( `/templates/${ templateName } /settings` ) ;
755
+ await expectUrl ( page ) . toHavePathName ( `/templates/${ templateName } /settings` ) ;
757
756
758
757
for ( const [ key , value ] of Object . entries ( templateSettingValues ) ) {
759
758
// Skip max_port_share_level for now since the frontend is not yet able to handle it
@@ -767,7 +766,7 @@ export const updateTemplateSettings = async (
767
766
await page . getByTestId ( "form-submit" ) . click ( ) ;
768
767
769
768
const name = templateSettingValues . name ?? templateName ;
770
- await expect ( page ) . toHaveURL ( `/templates/${ name } ` ) ;
769
+ await expectUrl ( page ) . toHavePathName ( `/templates/${ name } ` ) ;
771
770
} ;
772
771
773
772
export const updateWorkspace = async (
@@ -779,7 +778,7 @@ export const updateWorkspace = async (
779
778
await page . goto ( "/@admin/" + workspaceName , {
780
779
waitUntil : "domcontentloaded" ,
781
780
} ) ;
782
- await expect ( page ) . toHaveURL ( " /@admin/" + workspaceName ) ;
781
+ await expectUrl ( page ) . toHavePathName ( ` /@admin/${ workspaceName } ` ) ;
783
782
784
783
await page . getByTestId ( "workspace-update-button" ) . click ( ) ;
785
784
await page . getByTestId ( "confirm-button" ) . click ( ) ;
@@ -801,8 +800,8 @@ export const updateWorkspaceParameters = async (
801
800
await page . goto ( "/@admin/" + workspaceName + "/settings/parameters" , {
802
801
waitUntil : "domcontentloaded" ,
803
802
} ) ;
804
- await expect ( page ) . toHaveURL (
805
- " /@admin/" + workspaceName + " /settings/parameters" ,
803
+ await expectUrl ( page ) . toHavePathName (
804
+ ` /@admin/${ workspaceName } /settings/parameters` ,
806
805
) ;
807
806
808
807
await fillParameters ( page , richParameters , buildParameters ) ;
@@ -827,7 +826,9 @@ export async function openTerminalWindow(
827
826
// Specify that the shell should be `bash`, to prevent inheriting a shell that
828
827
// isn't POSIX compatible, such as Fish.
829
828
const commandQuery = `?command=${ encodeURIComponent ( "/usr/bin/env bash" ) } ` ;
830
- await expect ( terminal ) . toHaveURL ( `/@admin/${ workspaceName } .dev/terminal` ) ;
829
+ await expectUrl ( terminal ) . toHavePathName (
830
+ `/@admin/${ workspaceName } .dev/terminal` ,
831
+ ) ;
831
832
await terminal . goto ( `/@admin/${ workspaceName } .dev/terminal${ commandQuery } ` ) ;
832
833
833
834
return terminal ;
0 commit comments