<?php

use App\Enums\VerificationStatus;

test('verification status enum has expected cases', function () {
    expect(VerificationStatus::cases())->toHaveCount(4);
});

test('verification status enum labels and colors', function (VerificationStatus $status, string $label, string $color) {
    expect($status->getLabel())->toBe($label);
    expect($status->getColor())->toBe($color);
})->with([
    [VerificationStatus::PENDING, 'Menunggu Verifikasi', 'warning'],
    [VerificationStatus::APPROVED, 'Disetujui', 'success'],
    [VerificationStatus::NEED_REVISION, 'Perlu Revisi', 'info'],
    [VerificationStatus::REJECTED, 'Ditolak', 'danger'],
]);

test('verification status enum options method returns correct array', function () {
    expect(VerificationStatus::options())->toEqual([
        1 => 'Menunggu Verifikasi',
        2 => 'Disetujui',
        3 => 'Perlu Revisi',
        4 => 'Ditolak',
    ]);
});

test('verification status enum values method returns correct array', function () {
    expect(VerificationStatus::values())->toEqual([1, 2, 3, 4]);
});

test('verification status enum comment method returns correct string', function () {
    expect(VerificationStatus::comment())->toBe('1: Menunggu Verifikasi, 2: Disetujui, 3: Perlu Revisi, 4: Ditolak');
});
