Skip to content

Commit 5917d88

Browse files
author
Алексей Тихомиров
committed
feat: add Worker::reset() method and call it in beforeEach hooks
1 parent eb5e035 commit 5917d88

4 files changed

Lines changed: 24 additions & 3 deletions

File tree

src/Worker.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff 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;

tests/Feature/CliIntegrationTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131

3232
// Повторная очистка кэша
3333
wp_cache_flush();
34+
35+
// Сброс состояния воркера для каждого теста
36+
WPQueue::worker()->reset();
3437
});
3538

3639
afterEach(function (): void {
@@ -192,7 +195,7 @@
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
});
@@ -207,7 +210,7 @@
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

@@ -218,7 +221,7 @@
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
});

tests/Feature/QueueIntegrationTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030

3131
// Повторная очистка кэша
3232
wp_cache_flush();
33+
34+
// Сброс состояния воркера для каждого теста
35+
WPQueue::worker()->reset();
3336
});
3437

3538
afterEach(function (): void {

tests/Feature/RestApiIntegrationTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
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();

0 commit comments

Comments
 (0)