File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -178,6 +178,18 @@ public function getMaxTime(): int
178178 return $ this ->maxTime ;
179179 }
180180
181+ /**
182+ * Reset worker state for testing or reuse.
183+ * Clears counters and limits to initial values.
184+ */
185+ public function reset (): void
186+ {
187+ $ this ->jobsProcessed = 0 ;
188+ $ this ->maxJobs = 0 ;
189+ $ this ->maxTime = 0 ;
190+ $ this ->startTime = time ();
191+ }
192+
181193 public function getMemoryLimit (): int
182194 {
183195 return $ this ->memoryLimit ;
Original file line number Diff line number Diff line change 3131
3232 // Повторная очистка кэша
3333 wp_cache_flush ();
34+
35+ // Сброс состояния воркера для каждого теста
36+ WPQueue::worker ()->reset ();
3437});
3538
3639afterEach (function (): void {
192195 $ worker ->runNextJob ('default ' );
193196
194197 $ logs = WPQueue::logs ()->recent (10 );
195- $ failed = array_filter ($ logs , fn ($ log ) => $ log ['status ' ] === 'failed ' );
198+ $ failed = array_filter ($ logs , fn ($ log ) => $ log ['status ' ] === 'failed ' );
196199
197200 expect ($ failed )->not ->toBeEmpty ();
198201});
207210
208211 // Проверяем что задача провалилась
209212 $ logs = WPQueue::logs ()->recent (10 );
210- $ failed = array_filter ($ logs , fn ($ log ) => $ log ['status ' ] === 'failed ' );
213+ $ failed = array_filter ($ logs , fn ($ log ) => $ log ['status ' ] === 'failed ' );
211214
212215 expect ($ failed )->not ->toBeEmpty ();
213216
218221
219222 // Проверяем что теперь 2 проваленные задачи
220223 $ logs = WPQueue::logs ()->recent (10 );
221- $ failed = array_filter ($ logs , fn ($ log ) => $ log ['status ' ] === 'failed ' );
224+ $ failed = array_filter ($ logs , fn ($ log ) => $ log ['status ' ] === 'failed ' );
222225
223226 expect (count ($ failed ))->toBe (2 );
224227});
Original file line number Diff line number Diff line change 3030
3131 // Повторная очистка кэша
3232 wp_cache_flush ();
33+
34+ // Сброс состояния воркера для каждого теста
35+ WPQueue::worker ()->reset ();
3336});
3437
3538afterEach (function (): void {
Original file line number Diff line number Diff line change 2626 // Повторная очистка кэша
2727 wp_cache_flush ();
2828
29+ // Сброс состояния воркера для каждого теста
30+ WPQueue::worker ()->reset ();
31+
2932 // Мок для REST API
3033 global $ wp_rest_server ;
3134 $ wp_rest_server = new \WP_REST_Server ();
You can’t perform that action at this time.
0 commit comments