expect(Status::options())->toBe([ 'PENDING' => 0, 'DONE' => 1, ]); it('can return an indexed array of options from a pure enum') ->expect(Role::options())->toBe([ 0 => 'ADMIN', 1 => 'GUEST', ]); it('can return a string of options from a backed enum') ->expect(Status::stringOptions(fn ($name, $value) => "$name => $value", ', ')) ->toBe("PENDING => 0, DONE => 1"); it('can return a string of options from a pure enum') ->expect(Role::stringOptions(fn ($name, $value) => "$name => $value", ', ')) ->toBe("ADMIN => ADMIN, GUEST => GUEST"); it('returns default HTML options from backed enums') ->expect(Status::stringOptions()) ->toBe('\n'); it('returns default HTML options from pure enums') ->expect(Role::stringOptions()) ->toBe('\n'); it('returns default HTML options from pure enums with snake case') ->expect(MultiWordSnakeCaseEnum::stringOptions()) ->toBe('\n'); it('returns default HTML options from backed enums with snake case') ->expect(BackedMultiWordSnakeCaseEnum::stringOptions()) ->toBe('\n'); it('returns default HTML options from pure enums with pascal case') ->expect(BackedPascalCaseEnum::stringOptions()) ->toBe('\n');