You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
<?php
|
|
|
|
namespace Tests\Feature\Collection;
|
|
|
|
use App\Models\Collection;
|
|
use App\Documents\UserDocument;
|
|
use Tests\Bootstrap;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class CollectionStoreTest extends Bootstrap
|
|
{
|
|
public function test_collection_store_success()
|
|
{
|
|
$this->modelWithPolicy('collections', ['permission:collections.store'])
|
|
->loginAs(['collections.store'])
|
|
->postJson(route('api.collections.store'), $collection = $this->make(Collection::class))
|
|
->assertCreated();
|
|
}
|
|
|
|
/**
|
|
* @testWith
|
|
* ["name:gtString"]
|
|
* ["name:numeric"]
|
|
* ["name:null"]
|
|
* ["path:gtString"]
|
|
* ["path:numeric"]
|
|
* ["public:string"]
|
|
* ["disk:numeric"]
|
|
* ["disk:null"]
|
|
* ["disk:gtString"]
|
|
* ["count:null"]
|
|
* ["count:string"]
|
|
* ["count:gt:100000"]
|
|
*
|
|
*/
|
|
public function test_collection_store_unprocessable($field)
|
|
{
|
|
$this->modelWithPolicy('collections', ['permission:collections.store'])
|
|
->loginAsAdmin()
|
|
->postJson(route("api.collections.store"), $collection = $this->make(collection::class, smash: $field, withDependency: true))
|
|
->assertUnprocessable();
|
|
}
|
|
|
|
public function test_collection_store_forbidden()
|
|
{
|
|
$this->modelWithPolicy('collections', ['permission:collections.store'])
|
|
->loginAs(['wrong.permission'])
|
|
->postJson(route("api.collections.store"), [])
|
|
->assertForbidden();
|
|
}
|
|
}
|