<?php

declare(strict_types=1);

use App\Support\Diff\DiffSummary;

it('renders all shared summary badge counts with centralized state labels', function (): void {
    $this->view('filament.partials.diff.summary-badges', [
        'summary' => new DiffSummary(
            changedCount: 2,
            addedCount: 1,
            removedCount: 3,
            unchangedCount: 4,
        ),
    ])
        ->assertSee('2 changed')
        ->assertSee('1 added')
        ->assertSee('3 removed')
        ->assertSee('4 unchanged')
        ->assertSee('fi-badge');
});

it('renders a clear fallback when no diff rows are available', function (): void {
    $this->view('filament.partials.diff.summary-badges', [
        'summary' => null,
    ])
        ->assertSee('0 changed')
        ->assertSee('0 added')
        ->assertSee('0 removed')
        ->assertSee('0 unchanged')
        ->assertSee('No diff data available.');
});

it('renders summary counts from array payloads and preserves explicit no-change messaging', function (): void {
    $this->view('filament.partials.diff.summary-badges', [
        'summary' => [
            'changed' => 0,
            'added' => 0,
            'removed' => 0,
            'unchanged' => 4,
            'message' => 'No changes detected.',
        ],
    ])
        ->assertSee('0 changed')
        ->assertSee('0 added')
        ->assertSee('0 removed')
        ->assertSee('4 unchanged')
        ->assertSee('No changes detected.');
});
