@@ -11,10 +11,7 @@ test('A user can sign up and book an event', async ({ page }) => {
1111
1212 await page . goto ( 'http://localhost:3000' )
1313
14- await page
15- . getByRole ( 'navigation' )
16- . getByRole ( 'link' , { name : 'Sign In' } )
17- . click ( )
14+ await page . getByRole ( 'link' , { name : 'Sign In' } ) . click ( )
1815
1916 await page . getByRole ( 'link' , { name : 'Sign up' } ) . click ( )
2017
@@ -23,13 +20,13 @@ test('A user can sign up and book an event', async ({ page }) => {
2320 const email = `test${ seed } @example.com`
2421 const password = `someRandomPassword${ seed } `
2522
26- await page . locator ( '[ name=" name"]' ) . fill ( name )
27- await page . locator ( '[ name=" email"]' ) . fill ( email )
28- await page . locator ( '[ name=" password"]' ) . fill ( password )
23+ await page . getByRole ( 'textbox' , { name : ' name' } ) . fill ( name )
24+ await page . getByRole ( 'textbox' , { name : ' email' } ) . fill ( email )
25+ await page . getByRole ( 'textbox' , { name : ' password' } ) . fill ( password )
2926
3027 await page . getByRole ( 'button' , { name : 'Create account' } ) . click ( )
3128
32- await page . getByRole ( 'heading ' , { name : 'Italian Cooking Workshop ' } ) . click ( )
29+ await page . getByRole ( 'link ' , { name : 'Marathon City Run ' } ) . click ( )
3330
3431 // get the value of the current available capacity
3532 const availableCapacity = Number . parseInt (
@@ -38,40 +35,29 @@ test('A user can sign up and book an event', async ({ page }) => {
3835
3936 await page . getByRole ( 'button' , { name : 'Reserve your spot' } ) . click ( )
4037
41- await page . waitForResponse (
42- response =>
43- response . url ( ) . includes ( '/events/' ) &&
44- response . request ( ) . method ( ) === 'POST' &&
45- response . status ( ) === 200
46- )
47-
4838 // check that the reservation was successful by looking that we have
4939 // a "Booked" note on the page and that
50- // the "reserve" button is now disabled
40+ // the "reserve" button says "You have booked this event!" and is now disabled
5141 await expect ( page . getByTestId ( 'badge' ) . first ( ) ) . toHaveText ( 'Booked' )
52-
53- expect (
54- await page . getByRole ( 'button' , { name : 'You have booked this event!' } )
55- ) . toBeDisabled ( )
42+ const bookButton = await page . getByRole ( 'button' , {
43+ name : 'You have booked this event!' ,
44+ } )
45+ await expect ( bookButton ) . toBeDisabled ( )
46+ await expect ( bookButton ) . toBeVisible ( )
5647
5748 // check that the count of spots available went down
5849 const newAvailableCapacity = Number . parseInt (
5950 ( await page . getByTestId ( 'available-capacity' ) . textContent ( ) ) as string
6051 )
6152 expect ( newAvailableCapacity ) . toBeLessThan ( availableCapacity )
6253
63- await page
64- . getByRole ( 'navigation' )
65- . getByRole ( 'link' , { name : 'My Reservations' } )
66- . click ( )
54+ await page . getByRole ( 'link' , { name : 'My Reservations' } ) . click ( )
6755
68- await page . waitForSelector ( 'h1:has-text("My Reservations")' , {
69- state : 'visible' ,
70- } )
56+ await expect (
57+ page . getByRole ( 'heading' , { name : 'My Reservations' } )
58+ ) . toBeVisible ( )
7159
7260 expect (
73- await page
74- . getByRole ( 'heading' , { name : 'Italian Cooking Workshop' } )
75- . isVisible ( )
76- ) . toBeTruthy ( )
61+ await page . getByRole ( 'heading' , { name : 'Marathon City Run' } )
62+ ) . toBeVisible ( )
7763} )
0 commit comments