<?php

use App\Enums\IsActive;

describe('IsActive Enum', function () {
    it('has correct active status cases', function () {
        $cases = IsActive::cases();

        expect($cases)->toHaveCount(2)
            ->and(collect($cases)->pluck('value')->toArray())
            ->toEqual([1, 2]);
    });

    it('can get value from case', function () {
        expect(IsActive::ACTIVE->value)->toBe(1)
            ->and(IsActive::INACTIVE->value)->toBe(2);
    });

    it('can get label from case', function () {
        expect(IsActive::ACTIVE->getLabel())->toBe('Aktif')
            ->and(IsActive::INACTIVE->getLabel())->toBe('Tidak Aktif');
    });

    it('can get color from case', function () {
        expect(IsActive::ACTIVE->getColor())->toBe('success')
            ->and(IsActive::INACTIVE->getColor())->toBe('danger');
    });

    it('can get options array', function () {
        $options = IsActive::options();

        expect($options)->toBeArray()
            ->and($options)->toHaveKey(1, 'Aktif')
            ->and($options)->toHaveKey(2, 'Tidak Aktif');
    });
});
