1
1
import { visitAdminPage } from '@wordpress/e2e-test-utils' ;
2
2
3
+ // See https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagescreenshotoptions for more available options.
3
4
const screenshotOptions = {
4
5
fullPage : true ,
5
6
} ;
6
7
7
- async function hideDynamicElements ( elements ) {
8
+ async function hideElementVisibility ( elements ) {
8
9
for ( let i = 0 ; i < elements . length ; i ++ ) {
9
10
const elementOnPage = await page . $ ( elements [ i ] ) ;
10
11
if ( elementOnPage ) {
11
- await page . $eval ( elements [ i ] , ( el ) => {
12
+ await elementOnPage . evaluate ( ( el ) => {
12
13
el . style . visibility = 'hidden' ;
13
14
} ) ;
14
15
}
15
16
}
16
17
await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) ) ;
17
18
}
18
19
19
- const commonDynamicElements = [
20
- '#footer-upgrade' ,
21
- '#wp-admin-bar-root-default' ,
22
- '#toplevel_page_gutenberg' ,
23
- ] ;
20
+ async function removeElementFromLayout ( elements ) {
21
+ for ( let i = 0 ; i < elements . length ; i ++ ) {
22
+ const elementOnPage = await page . $ ( elements [ i ] ) ;
23
+ if ( elementOnPage ) {
24
+ await elementOnPage . evaluate ( ( el ) => {
25
+ el . style . visibility = 'hidden' ;
26
+ } ) ;
27
+ }
28
+ }
29
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) ) ;
30
+ }
31
+
32
+ const elementsToHide = [ '#footer-upgrade' , '#wp-admin-bar-root-default' ] ;
33
+
34
+ const elementsToRemove = [ '#toplevel_page_gutenberg' ] ;
24
35
25
36
describe ( 'Admin Visual Snapshots' , ( ) => {
26
37
beforeAll ( async ( ) => {
@@ -32,157 +43,179 @@ describe( 'Admin Visual Snapshots', () => {
32
43
33
44
it ( 'All Posts' , async ( ) => {
34
45
await visitAdminPage ( '/edit.php' ) ;
35
- await hideDynamicElements ( commonDynamicElements ) ;
46
+ await hideElementVisibility ( elementsToHide ) ;
47
+ await removeElementFromLayout ( elementsToRemove ) ;
36
48
const image = await page . screenshot ( screenshotOptions ) ;
37
49
expect ( image ) . toMatchImageSnapshot ( ) ;
38
50
} ) ;
39
51
40
52
it ( 'Categories' , async ( ) => {
41
53
await visitAdminPage ( '/edit-tags.php' , 'taxonomy=category' ) ;
42
- await hideDynamicElements ( commonDynamicElements ) ;
54
+ await hideElementVisibility ( elementsToHide ) ;
55
+ await removeElementFromLayout ( elementsToRemove ) ;
43
56
const image = await page . screenshot ( screenshotOptions ) ;
44
57
expect ( image ) . toMatchImageSnapshot ( ) ;
45
58
} ) ;
46
59
47
60
it ( 'Tags' , async ( ) => {
48
61
await visitAdminPage ( '/edit-tags.php' , 'taxonomy=post_tag' ) ;
49
- await hideDynamicElements ( commonDynamicElements ) ;
62
+ await hideElementVisibility ( elementsToHide ) ;
63
+ await removeElementFromLayout ( elementsToRemove ) ;
50
64
const image = await page . screenshot ( screenshotOptions ) ;
51
65
expect ( image ) . toMatchImageSnapshot ( ) ;
52
66
} ) ;
53
67
54
68
it ( 'Media Library' , async ( ) => {
55
69
await visitAdminPage ( '/upload.php' ) ;
56
- await hideDynamicElements ( commonDynamicElements ) ;
70
+ await hideElementVisibility ( elementsToHide ) ;
71
+ await removeElementFromLayout ( elementsToRemove ) ;
57
72
const image = await page . screenshot ( screenshotOptions ) ;
58
73
expect ( image ) . toMatchImageSnapshot ( ) ;
59
74
} ) ;
60
75
61
76
it ( 'Add New Media' , async ( ) => {
62
77
await visitAdminPage ( '/media-new.php' ) ;
63
- await hideDynamicElements ( commonDynamicElements ) ;
78
+ await hideElementVisibility ( elementsToHide ) ;
79
+ await removeElementFromLayout ( elementsToRemove ) ;
64
80
const image = await page . screenshot ( screenshotOptions ) ;
65
81
expect ( image ) . toMatchImageSnapshot ( ) ;
66
82
} ) ;
67
83
68
84
it ( 'All Pages' , async ( ) => {
69
85
await visitAdminPage ( '/edit.php' , 'post_type=page' ) ;
70
- await hideDynamicElements ( commonDynamicElements ) ;
86
+ await hideElementVisibility ( elementsToHide ) ;
87
+ await removeElementFromLayout ( elementsToRemove ) ;
71
88
const image = await page . screenshot ( screenshotOptions ) ;
72
89
expect ( image ) . toMatchImageSnapshot ( ) ;
73
90
} ) ;
74
91
75
92
it ( 'Comments' , async ( ) => {
76
93
await visitAdminPage ( '/edit-comments.php' ) ;
77
- await hideDynamicElements ( commonDynamicElements ) ;
94
+ await hideElementVisibility ( elementsToHide ) ;
95
+ await removeElementFromLayout ( elementsToRemove ) ;
78
96
const image = await page . screenshot ( screenshotOptions ) ;
79
97
expect ( image ) . toMatchImageSnapshot ( ) ;
80
98
} ) ;
81
99
82
100
it ( 'Widgets' , async ( ) => {
83
101
await visitAdminPage ( '/widgets.php' ) ;
84
- await hideDynamicElements ( commonDynamicElements ) ;
102
+ await hideElementVisibility ( elementsToHide ) ;
103
+ await removeElementFromLayout ( elementsToRemove ) ;
85
104
const image = await page . screenshot ( screenshotOptions ) ;
86
105
expect ( image ) . toMatchImageSnapshot ( ) ;
87
106
} ) ;
88
107
89
108
it ( 'Menus' , async ( ) => {
90
109
await visitAdminPage ( '/nav-menus.php' ) ;
91
- await hideDynamicElements ( commonDynamicElements ) ;
110
+ await hideElementVisibility ( elementsToHide ) ;
111
+ await removeElementFromLayout ( elementsToRemove ) ;
92
112
const image = await page . screenshot ( screenshotOptions ) ;
93
113
expect ( image ) . toMatchImageSnapshot ( ) ;
94
114
} ) ;
95
115
96
116
it ( 'Plugins' , async ( ) => {
97
117
await visitAdminPage ( '/plugins.php' ) ;
98
- await hideDynamicElements ( commonDynamicElements ) ;
118
+ await hideElementVisibility ( elementsToHide ) ;
119
+ await removeElementFromLayout ( elementsToRemove ) ;
99
120
const image = await page . screenshot ( screenshotOptions ) ;
100
121
expect ( image ) . toMatchImageSnapshot ( ) ;
101
122
} ) ;
102
123
103
124
it ( 'All Users' , async ( ) => {
104
125
await visitAdminPage ( '/users.php' ) ;
105
- await hideDynamicElements ( commonDynamicElements ) ;
126
+ await hideElementVisibility ( elementsToHide ) ;
127
+ await removeElementFromLayout ( elementsToRemove ) ;
106
128
const image = await page . screenshot ( screenshotOptions ) ;
107
129
expect ( image ) . toMatchImageSnapshot ( ) ;
108
130
} ) ;
109
131
110
132
it ( 'Add New User' , async ( ) => {
111
133
await visitAdminPage ( '/user-new.php' ) ;
112
- await hideDynamicElements ( [
113
- ...commonDynamicElements ,
134
+ await hideElementVisibility ( [
135
+ ...elementsToHide ,
114
136
'.password-input-wrapper' ,
115
137
] ) ;
138
+ await removeElementFromLayout ( elementsToRemove ) ;
116
139
const image = await page . screenshot ( screenshotOptions ) ;
117
140
expect ( image ) . toMatchImageSnapshot ( ) ;
118
141
} ) ;
119
142
120
143
it ( 'Your Profile' , async ( ) => {
121
144
await visitAdminPage ( '/profile.php' ) ;
122
- await hideDynamicElements ( commonDynamicElements ) ;
145
+ await hideElementVisibility ( elementsToHide ) ;
146
+ await removeElementFromLayout ( elementsToRemove ) ;
123
147
const image = await page . screenshot ( screenshotOptions ) ;
124
148
expect ( image ) . toMatchImageSnapshot ( ) ;
125
149
} ) ;
126
150
127
151
it ( 'Available Tools' , async ( ) => {
128
152
await visitAdminPage ( '/tools.php' ) ;
129
- await hideDynamicElements ( commonDynamicElements ) ;
153
+ await hideElementVisibility ( elementsToHide ) ;
154
+ await removeElementFromLayout ( elementsToRemove ) ;
130
155
const image = await page . screenshot ( screenshotOptions ) ;
131
156
expect ( image ) . toMatchImageSnapshot ( ) ;
132
157
} ) ;
133
158
134
159
it ( 'Import' , async ( ) => {
135
160
await visitAdminPage ( '/import.php' ) ;
136
- await hideDynamicElements ( commonDynamicElements ) ;
161
+ await hideElementVisibility ( elementsToHide ) ;
162
+ await removeElementFromLayout ( elementsToRemove ) ;
137
163
const image = await page . screenshot ( screenshotOptions ) ;
138
164
expect ( image ) . toMatchImageSnapshot ( ) ;
139
165
} ) ;
140
166
141
167
it ( 'Export' , async ( ) => {
142
168
await visitAdminPage ( '/export.php' ) ;
143
- await hideDynamicElements ( commonDynamicElements ) ;
169
+ await hideElementVisibility ( elementsToHide ) ;
170
+ await removeElementFromLayout ( elementsToRemove ) ;
144
171
const image = await page . screenshot ( screenshotOptions ) ;
145
172
expect ( image ) . toMatchImageSnapshot ( ) ;
146
173
} ) ;
147
174
148
175
it ( 'Export Personal Data' , async ( ) => {
149
176
await visitAdminPage ( '/export-personal-data.php' ) ;
150
- await hideDynamicElements ( commonDynamicElements ) ;
177
+ await hideElementVisibility ( elementsToHide ) ;
178
+ await removeElementFromLayout ( elementsToRemove ) ;
151
179
const image = await page . screenshot ( screenshotOptions ) ;
152
180
expect ( image ) . toMatchImageSnapshot ( ) ;
153
181
} ) ;
154
182
155
183
it ( 'Erase Personal Data' , async ( ) => {
156
184
await visitAdminPage ( '/erase-personal-data.php' ) ;
157
- await hideDynamicElements ( commonDynamicElements ) ;
185
+ await hideElementVisibility ( elementsToHide ) ;
186
+ await removeElementFromLayout ( elementsToRemove ) ;
158
187
const image = await page . screenshot ( screenshotOptions ) ;
159
188
expect ( image ) . toMatchImageSnapshot ( ) ;
160
189
} ) ;
161
190
162
191
it ( 'Reading Settings' , async ( ) => {
163
192
await visitAdminPage ( '/options-reading.php' ) ;
164
- await hideDynamicElements ( commonDynamicElements ) ;
193
+ await hideElementVisibility ( elementsToHide ) ;
194
+ await removeElementFromLayout ( elementsToRemove ) ;
165
195
const image = await page . screenshot ( screenshotOptions ) ;
166
196
expect ( image ) . toMatchImageSnapshot ( ) ;
167
197
} ) ;
168
198
169
199
it ( 'Discussion Settings' , async ( ) => {
170
200
await visitAdminPage ( '/options-discussion.php' ) ;
171
- await hideDynamicElements ( commonDynamicElements ) ;
201
+ await hideElementVisibility ( elementsToHide ) ;
202
+ await removeElementFromLayout ( elementsToRemove ) ;
172
203
const image = await page . screenshot ( screenshotOptions ) ;
173
204
expect ( image ) . toMatchImageSnapshot ( ) ;
174
205
} ) ;
175
206
176
207
it ( 'Media Settings' , async ( ) => {
177
208
await visitAdminPage ( '/options-media.php' ) ;
178
- await hideDynamicElements ( commonDynamicElements ) ;
209
+ await hideElementVisibility ( elementsToHide ) ;
210
+ await removeElementFromLayout ( elementsToRemove ) ;
179
211
const image = await page . screenshot ( screenshotOptions ) ;
180
212
expect ( image ) . toMatchImageSnapshot ( ) ;
181
213
} ) ;
182
214
183
215
it ( 'Privacy Settings' , async ( ) => {
184
216
await visitAdminPage ( '/options-privacy.php' ) ;
185
- await hideDynamicElements ( commonDynamicElements ) ;
217
+ await hideElementVisibility ( elementsToHide ) ;
218
+ await removeElementFromLayout ( elementsToRemove ) ;
186
219
const image = await page . screenshot ( screenshotOptions ) ;
187
220
expect ( image ) . toMatchImageSnapshot ( ) ;
188
221
} ) ;
0 commit comments