@@ -9,26 +9,29 @@ test('editing an existing list', async ({ listPage }) => {
9
9
await page . getByRole ( 'link' , { name : 'Edit' } ) . click ( ) ;
10
10
11
11
await test . step ( 'update list name and description' , async ( ) => {
12
- await page . getByLabel ( ' Name') . fill ( 'my action movies' ) ;
13
- await page . getByLabel ( ' Description') . fill ( 'my favorite action movies' ) ;
12
+ await page . getByRole ( 'textbox' , { name : ' Name' } ) . fill ( 'my action movies' ) ;
13
+ await page . getByRole ( 'textbox' , { name : ' Description' } ) . fill ( 'my favorite action movies' ) ;
14
14
await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
15
15
16
16
// Verify that the list name and description have been updated
17
- await expect . soft ( page . getByLabel ( 'Name' ) ) . toHaveValue ( 'my action movies' ) ;
18
- await expect
19
- . soft ( page . getByLabel ( 'Description' ) )
17
+ await expect ( page . getByRole ( 'textbox' , { name : 'Name' } ) ) . toHaveValue ( 'my action movies' ) ;
18
+ await expect ( page . getByRole ( 'textbox' , { name : 'Description' } ) )
20
19
. toHaveValue ( 'my favorite action movies' ) ;
20
+ // TODO: replace regex with text when Playwright is rolled.
21
+ await expect ( page . locator ( 'main' ) ) . toMatchAriaSnapshot ( `
22
+ - heading "my action movies" [level=1]
23
+ - textbox "Name": my action movies
24
+ - textbox "Description": /my favorite action movies/
25
+ ` ) ;
21
26
await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
22
27
} ) ;
23
28
24
29
await test . step ( 'verify updated list name and description on my list page' , async ( ) => {
25
30
await page . getByRole ( 'link' , { name : 'View List' } ) . click ( ) ;
26
- await expect
27
- . soft ( page . getByRole ( 'heading' , { level : 1 } ) )
28
- . toHaveText ( 'my action movies' ) ;
29
- await expect . soft ( page . getByRole ( 'heading' ) . nth ( 1 ) ) . toHaveText (
30
- 'my favorite action movies' ,
31
- ) ;
31
+ await expect ( page . getByRole ( 'main' ) ) . toMatchAriaSnapshot ( `
32
+ - heading "my action movies" [level=1]
33
+ - heading "my favorite action movies" [level=2]
34
+ ` ) ;
32
35
} ) ;
33
36
} ) ;
34
37
@@ -41,55 +44,54 @@ test('adding movies to a list', async ({ listPage }) => {
41
44
await addMovie ( page , 'Gunner' ) ;
42
45
43
46
// Verify that the movies have been added to the list
44
- await expect . soft ( page . getByRole ( 'listitem ' , { name : 'movie ' } ) ) . toHaveText ( [
45
- / T w i s t e r s / ,
46
- / T h e G a r f i e l d M o v i e / ,
47
- / B a d B o y s : R i d e o r D i e / ,
48
- / I n s i d e O u t 2 / ,
49
- / G u n n e r / ,
50
- ] ) ;
47
+ await expect ( page . getByRole ( 'list ' , { name : 'movies ' } ) ) . toMatchAriaSnapshot ( `
48
+ - listitem: " Twisters"
49
+ - listitem: " The Garfield Movie"
50
+ - listitem: " Bad Boys: Ride or Die"
51
+ - listitem: " Inside Out 2"
52
+ - listitem: " Gunner"
53
+ ` ) ;
51
54
} ) ;
52
55
53
56
test ( 'deleting movies from a list' , async ( { listPage } ) => {
54
57
// set the page to the listPage fixture
55
58
const page = listPage ;
56
59
57
60
await page . getByRole ( 'button' , { name : 'Add/Remove Movies' } ) . click ( ) ;
58
- await expect
59
- . soft ( page . getByRole ( 'listitem' , { name : 'movie' } ) )
60
- . toHaveText ( [ / T w i s t e r s / , / T h e G a r f i e l d M o v i e / , / B a d B o y s : R i d e o r D i e / ] ) ;
61
+ await expect ( page . getByRole ( 'list' , { name : 'movies' } ) ) . toMatchAriaSnapshot ( `
62
+ - listitem: "Twisters"
63
+ - listitem: "The Garfield Movie"
64
+ - listitem: "Bad Boys: Ride or Die"
65
+ ` ) ;
61
66
62
67
await test . step ( 'delete the second movie from list' , async ( ) => {
63
68
const movie2 = page
64
69
. getByRole ( 'listitem' )
65
70
. filter ( { hasText : / T h e G a r f i e l d M o v i e / } ) ;
66
- await movie2 . getByLabel ( ' Remove') . click ( ) ;
71
+ await movie2 . getByRole ( 'button' , { name : ' Remove' } ) . click ( ) ;
67
72
} ) ;
68
73
69
- await expect . soft ( page . getByRole ( 'listitem' , { name : 'movie' } ) ) . toHaveText ( [
70
- / T w i s t e r s / ,
71
- / B a d B o y s : R i d e o r D i e / ,
72
- ] ) ;
74
+ await expect ( page . getByRole ( 'list' , { name : 'movies' } ) ) . toMatchAriaSnapshot ( `
75
+ - listitem: "Twisters"
76
+ - listitem: "Bad Boys: Ride or Die"
77
+ ` ) ;
78
+ await expect ( page . getByRole ( 'listitem' , { name : 'movie' } ) ) . toHaveCount ( 2 ) ;
73
79
} ) ;
74
80
75
81
test ( 'sharing a list' , async ( { listPage } ) => {
76
82
// set the page to the listPage fixture
77
83
const page = listPage ;
78
84
79
85
await page . getByRole ( 'button' , { name : 'Share' } ) . click ( ) ;
80
- await expect
81
- . soft ( page . getByRole ( 'dialog' ) . getByRole ( 'heading' ) )
82
- . toHaveText ( 'Share my favorite movies' ) ;
83
-
84
- // Verify that the URL input in the dialog contains a value with "list"
85
- await expect
86
- . soft ( page . getByRole ( 'dialog' ) . getByLabel ( 'URL' ) )
87
- . toHaveValue ( / l i s t / ) ;
86
+ await expect ( page . getByRole ( 'dialog' ) ) . toMatchAriaSnapshot ( `
87
+ - heading "Share my favorite movies" [level=2]
88
+ - textbox "URL": /list/
89
+ ` ) ;
88
90
89
91
await test . step ( 'close the share dialog' , async ( ) => {
90
92
// Close the dialog by clicking outside of it
91
93
await page . locator ( 'body' ) . click ( { position : { x : 0 , y : 0 } } ) ;
92
- await expect . soft ( page . getByRole ( 'dialog' ) ) . not . toBeVisible ( ) ;
94
+ await expect ( page . getByRole ( 'dialog' ) ) . not . toBeVisible ( ) ;
93
95
} ) ;
94
96
} ) ;
95
97
@@ -101,14 +103,13 @@ test('deleting a list', async ({ listPage }) => {
101
103
await page . getByRole ( 'link' , { name : 'Delete List' } ) . click ( ) ;
102
104
103
105
await test . step ( 'confirm the deletion' , async ( ) => {
104
- await page . getByLabel ( / C l i c k t h e b u t t o n b e l o w / ) . click ( ) ;
106
+ await page . getByRole ( 'button' , { name : / C l i c k t h e b u t t o n b e l o w / } ) . click ( ) ;
105
107
await page . getByRole ( 'button' , { name : 'Yes' } ) . click ( ) ;
106
108
} ) ;
107
109
108
110
// Verify that the list has been deleted
109
- await expect . soft ( page ) . toHaveURL ( / m y - l i s t s / ) ;
110
- await expect
111
- . soft ( page . getByRole ( 'heading' , { level : 3 } ) )
111
+ await expect ( page ) . toHaveURL ( / m y - l i s t s / ) ;
112
+ await expect ( page . getByRole ( 'heading' , { level : 3 } ) )
112
113
. toHaveText ( / n o l i s t s / ) ;
113
- await expect . soft ( page . getByRole ( 'listitem' , { name : 'movie' } ) ) . toHaveCount ( 0 ) ;
114
+ await expect ( page . getByRole ( 'listitem' , { name : 'movie' } ) ) . toHaveCount ( 0 ) ;
114
115
} ) ;
0 commit comments