fcd06afcb2
Запас ~3 часа до портального дедлайна 21:00 — эскалация на ярус 2/3 (медленный браузер / ручной оператор) происходит в рабочее время. RefreshSupplierSessionJob daily — на 15 мин раньше sync (17:45). Hourly RefreshSupplierSessionJob — без изменений. Spec §4.7. Task 9 of 12. Tests 2/2 (cron expression + timezone). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
1.4 KiB
PHP
38 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Jobs\Supplier\RefreshSupplierSessionJob;
|
|
use App\Jobs\Supplier\SyncSupplierProjectsJob;
|
|
use Illuminate\Console\Scheduling\Schedule;
|
|
|
|
/*
|
|
* Крон supplier-sync переехал 20:30 → 18:00 МСК (Task 9, spec §4.7) —
|
|
* запас ~3 часа до портального дедлайна 21:00 на эскалацию ярус 2/3.
|
|
* Session refresh — на 15 мин раньше sync (17:45).
|
|
*/
|
|
|
|
it('SyncSupplierProjectsJob is scheduled at 18:00 MSK', function (): void {
|
|
$schedule = app(Schedule::class);
|
|
$events = collect($schedule->events());
|
|
|
|
$sync = $events->first(fn ($e) => str_contains((string) $e->description, SyncSupplierProjectsJob::class)
|
|
|| str_contains((string) $e->command, 'SyncSupplierProjectsJob'));
|
|
|
|
expect($sync)->not->toBeNull();
|
|
expect($sync->expression)->toBe('0 18 * * *');
|
|
expect($sync->timezone)->toBe('Europe/Moscow');
|
|
});
|
|
|
|
it('Daily RefreshSupplierSessionJob is scheduled at 17:45 MSK', function (): void {
|
|
$schedule = app(Schedule::class);
|
|
$events = collect($schedule->events());
|
|
|
|
$daily = $events->first(fn ($e) => (str_contains((string) $e->description, RefreshSupplierSessionJob::class)
|
|
|| str_contains((string) $e->command, 'RefreshSupplierSessionJob'))
|
|
&& $e->expression === '45 17 * * *');
|
|
|
|
expect($daily)->not->toBeNull();
|
|
expect($daily->timezone)->toBe('Europe/Moscow');
|
|
});
|