1
- import { test } from "@playwright/test"
1
+ import { test , expect } from "@playwright/test"
2
2
import { email , password } from "../constants"
3
3
import { SignInPage } from "../pom"
4
4
import { clickButton , buttons , fillInput } from "../helpers"
5
+ import dayjs from "dayjs"
5
6
6
7
test ( "Basic flow" , async ( { baseURL, page } ) => {
7
8
// We're keeping entire flows in one test, which means the test needs extra time.
8
- test . setTimeout ( 120000 )
9
+ test . setTimeout ( 5 * 60 * 1000 )
9
10
await page . goto ( baseURL + "/" , { waitUntil : "networkidle" } )
10
11
11
12
// Log-in with the default credentials we set up in the development server
12
13
const signInPage = new SignInPage ( baseURL , page )
13
14
await signInPage . submitBuiltInAuthentication ( email , password )
14
15
15
16
// create Docker template
16
- await page . waitForSelector ( "text=Templates" )
17
17
await page . click ( "text=Templates" )
18
18
19
19
await clickButton ( page , buttons . starterTemplates )
@@ -27,15 +27,22 @@ test("Basic flow", async ({ baseURL, page }) => {
27
27
// create workspace
28
28
await clickButton ( page , buttons . createWorkspace )
29
29
30
- await fillInput ( page , "Workspace Name" , "my-workspace" )
30
+ // give workspace a unique name to avoid failure
31
+ await fillInput (
32
+ page ,
33
+ "Workspace Name" ,
34
+ `workspace-${ dayjs ( ) . format ( "MM-DD-hh-mm-ss" ) } ` ,
35
+ )
31
36
await clickButton ( page , buttons . submitCreateWorkspace )
32
37
33
38
// stop workspace
34
- await page . waitForSelector ( "text=Started" )
35
39
await clickButton ( page , buttons . stopWorkspace )
36
40
37
41
// start workspace
38
- await page . waitForSelector ( "text=Stopped" )
39
42
await clickButton ( page , buttons . startWorkspace )
40
- await page . waitForSelector ( "text=Started" )
43
+ const stopButton = page . getByRole ( "button" , {
44
+ name : buttons . stopWorkspace ,
45
+ exact : true ,
46
+ } )
47
+ await expect ( stopButton ) . toBeEnabled ( { timeout : 60_000 } )
41
48
} )
0 commit comments