@@ -118,74 +118,68 @@ public function test_perflab_get_admin_pointers(): void {
118
118
}
119
119
120
120
/**
121
- * @return array<string, array{ hook_suffix: string|null, expected: bool }>
121
+ * @return array<string, array{
122
+ * initial_wp_pointers: string,
123
+ * hook_suffix: string|null,
124
+ * expected: bool,
125
+ * dismissed_wp_pointers: string,
126
+ * }>
122
127
*/
123
128
public function data_provider_test_perflab_admin_pointer (): array {
124
129
return array (
125
130
'null ' => array (
126
- 'set_up ' => null ,
131
+ 'initial_wp_pointers ' => '' ,
127
132
'hook_suffix ' => null ,
128
133
'expected ' => false ,
129
134
'dismissed_wp_pointers ' => '' ,
130
135
),
131
136
'edit.php ' => array (
132
- 'set_up ' => null ,
137
+ 'initial_wp_pointers ' => '' ,
133
138
'hook_suffix ' => 'edit.php ' ,
134
139
'expected ' => false ,
135
140
'dismissed_wp_pointers ' => '' ,
136
141
),
137
142
'dashboard_not_dismissed ' => array (
138
- 'set_up ' => null ,
143
+ 'initial_wp_pointers ' => '' ,
139
144
'hook_suffix ' => 'index.php ' ,
140
145
'expected ' => true ,
141
146
'dismissed_wp_pointers ' => 'perflab-feature-view-transitions ' ,
142
147
),
143
148
'plugins_not_dismissed ' => array (
144
- 'set_up ' => null ,
149
+ 'initial_wp_pointers ' => '' ,
145
150
'hook_suffix ' => 'plugins.php ' ,
146
151
'expected ' => true ,
147
152
'dismissed_wp_pointers ' => 'perflab-feature-view-transitions ' ,
148
153
),
149
154
'dashboard_new_dismissed ' => array (
150
- 'set_up ' => static function (): void {
151
- // Note: If the No-cache BFCache plugin (not part of the monorepo) is installed, then this test will likely fail and it should be skipped.
152
- update_user_meta ( wp_get_current_user ()->ID , 'dismissed_wp_pointers ' , 'perflab-admin-pointer ' );
153
- },
155
+ // Note: If the No-cache BFCache plugin (not part of the monorepo) is installed, then this test will likely fail and it should be skipped.
156
+ 'initial_wp_pointers ' => 'perflab-admin-pointer ' ,
154
157
'hook_suffix ' => 'index.php ' ,
155
158
'expected ' => true ,
156
159
'dismissed_wp_pointers ' => 'perflab-admin-pointer,perflab-feature-view-transitions ' ,
157
160
),
158
161
'dashboard_one_dismissed ' => array (
159
- 'set_up ' => static function (): void {
160
- // Note: The No-cache BFCache plugin is not part of the monorepo, so it is not automatically installed in the dev environment.
161
- update_user_meta ( wp_get_current_user ()->ID , 'dismissed_wp_pointers ' , 'perflab-admin-pointer,perflab-feature-nocache-bfcache ' );
162
- },
162
+ // Note: The No-cache BFCache plugin is not part of the monorepo, so it is not automatically installed in the dev environment.
163
+ 'initial_wp_pointers ' => 'perflab-admin-pointer,perflab-feature-nocache-bfcache ' ,
163
164
'hook_suffix ' => 'index.php ' ,
164
165
'expected ' => false ,
165
166
'dismissed_wp_pointers ' => 'perflab-admin-pointer,perflab-feature-nocache-bfcache,perflab-feature-view-transitions ' ,
166
167
),
167
168
'dashboard_all_dismissed ' => array (
168
- 'set_up ' => static function (): void {
169
- update_user_meta ( wp_get_current_user ()->ID , 'dismissed_wp_pointers ' , implode ( ', ' , array_keys ( perflab_get_admin_pointers () ) ) );
170
- },
169
+ 'initial_wp_pointers ' => implode ( ', ' , array_keys ( perflab_get_admin_pointers () ) ),
171
170
'hook_suffix ' => 'index.php ' ,
172
171
'expected ' => false ,
173
172
'dismissed_wp_pointers ' => implode ( ', ' , array_keys ( perflab_get_admin_pointers () ) ),
174
173
),
175
174
'perflab_screen_first_time ' => array (
176
- 'set_up ' => static function (): void {
177
- $ _GET ['page ' ] = PERFLAB_SCREEN ;
178
- },
179
- 'hook_suffix ' => 'options-general.php ' ,
175
+ 'initial_wp_pointers ' => '' ,
176
+ 'hook_suffix ' => 'settings_page_ ' . PERFLAB_SCREEN ,
180
177
'expected ' => false ,
181
178
'dismissed_wp_pointers ' => implode ( ', ' , array_keys ( perflab_get_admin_pointers () ) ),
182
179
),
183
180
'perflab_screen_second_time ' => array (
184
- 'set_up ' => static function (): void {
185
- $ _GET ['page ' ] = PERFLAB_SCREEN ;
186
- update_user_meta ( wp_get_current_user ()->ID , 'dismissed_wp_pointers ' , 'perflab-admin-pointer ' );
187
- },
188
- 'hook_suffix ' => 'options-general.php ' ,
181
+ 'initial_wp_pointers ' => 'perflab-admin-pointer ' ,
182
+ 'hook_suffix ' => 'settings_page_ ' . PERFLAB_SCREEN ,
189
183
'expected ' => false ,
190
184
'dismissed_wp_pointers ' => implode ( ', ' , array_keys ( perflab_get_admin_pointers () ) ),
191
185
),
@@ -196,17 +190,15 @@ public function data_provider_test_perflab_admin_pointer(): array {
196
190
* @covers ::perflab_admin_pointer
197
191
* @dataProvider data_provider_test_perflab_admin_pointer
198
192
*
199
- * @param Closure|null $set_up Set up.
200
- * @param string|null $hook_suffix Hook suffix.
201
- * @param bool $expected Expected.
202
- * @param string $dismissed_wp_pointers Dismissed admin pointers.
193
+ * @param string $initial_wp_pointers Set up.
194
+ * @param string|null $hook_suffix Hook suffix.
195
+ * @param bool $expected Expected.
196
+ * @param string $dismissed_wp_pointers Dismissed admin pointers.
203
197
*/
204
- public function test_perflab_admin_pointer ( ? Closure $ set_up , ?string $ hook_suffix , bool $ expected , string $ dismissed_wp_pointers ): void {
198
+ public function test_perflab_admin_pointer ( string $ initial_wp_pointers , ?string $ hook_suffix , bool $ expected , string $ dismissed_wp_pointers ): void {
205
199
$ user_id = self ::factory ()->user ->create ( array ( 'role ' => 'administrator ' ) );
206
200
wp_set_current_user ( $ user_id );
207
- if ( $ set_up instanceof Closure ) {
208
- $ set_up ();
209
- }
201
+ update_user_meta ( wp_get_current_user ()->ID , 'dismissed_wp_pointers ' , $ initial_wp_pointers );
210
202
$ this ->assertFalse ( is_network_admin () || is_user_admin () );
211
203
perflab_admin_pointer ( $ hook_suffix );
212
204
0 commit comments