<?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('Queued for execution. Open the operation for progress and next steps.');
})->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.update');

    expect($toast->getTitle())->toBe('Backup set update already queued');
    expect($toast->getBody())->toBe('A matching operation is already queued or running. No action needed unless it stays stuck.');
})->group('ops-ux');
