30 lines
1.0 KiB
PHP
30 lines
1.0 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
use App\Support\OpsUx\OperationUxPresenter;
|
||
|
||
it('builds canonical queued toast copy', function (): void {
|
||
$toast = OperationUxPresenter::queuedToast('policy.sync');
|
||
|
||
expect($toast->getTitle())->toBe('Policy sync queued');
|
||
expect($toast->getBody())->toBe('Running in the background.');
|
||
})->group('ops-ux');
|
||
|
||
it('enforces queued toast duration within 3–5 seconds', function (): void {
|
||
$toast = OperationUxPresenter::queuedToast('policy.sync');
|
||
|
||
$duration = $toast->getDuration();
|
||
|
||
expect($duration)->toBeInt();
|
||
expect($duration)->toBeGreaterThanOrEqual(3000);
|
||
expect($duration)->toBeLessThanOrEqual(5000);
|
||
})->group('ops-ux');
|
||
|
||
it('builds canonical already-queued toast copy', function (): void {
|
||
$toast = OperationUxPresenter::alreadyQueuedToast('backup_set.add_policies');
|
||
|
||
expect($toast->getTitle())->toBe('Backup set update already queued');
|
||
expect($toast->getBody())->toBe('A matching run is already queued or running.');
|
||
})->group('ops-ux');
|