47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Actions\Common\ExecuteMassActionInput;
|
|
use App\Enums\MassActionType;
|
|
use App\Models\Product;
|
|
|
|
describe('ExecuteMassActionInput', function (): void {
|
|
it('accepts a valid list of model ids for a supported action', function (): void {
|
|
// GIVEN
|
|
$modelClass = Product::class;
|
|
|
|
// WHEN
|
|
$input = new ExecuteMassActionInput(
|
|
modelClass: $modelClass,
|
|
action: MassActionType::Publish,
|
|
modelKeyList: [1, 2, 3],
|
|
);
|
|
|
|
// THEN
|
|
expect($input->modelClass)->toBe($modelClass)
|
|
->and($input->action)->toBe(MassActionType::Publish)
|
|
->and($input->modelKeyList)->toBe([1, 2, 3]);
|
|
});
|
|
|
|
it('rejects a non-Eloquent model class', function (): void {
|
|
// GIVEN
|
|
$invalidModelClass = \stdClass::class;
|
|
|
|
// WHEN & THEN
|
|
expect(fn () => new ExecuteMassActionInput(
|
|
modelClass: $invalidModelClass,
|
|
action: MassActionType::Star,
|
|
modelKeyList: [1],
|
|
))->toThrow(\InvalidArgumentException::class);
|
|
});
|
|
|
|
it('rejects an empty model key list', function (): void {
|
|
// WHEN & THEN
|
|
expect(fn () => new ExecuteMassActionInput(
|
|
modelClass: Product::class,
|
|
action: MassActionType::Unstar,
|
|
modelKeyList: [],
|
|
))->toThrow(\InvalidArgumentException::class);
|
|
});
|
|
});
|