role factory

This commit is contained in:
denisdulici
2020-01-13 11:24:59 +03:00
parent 489b459e13
commit 3fa3064950
3 changed files with 31 additions and 17 deletions

View File

@ -7,10 +7,12 @@ $factory->define(Permission::class, function (Faker $faker) {
$map = ['Create', 'Read', 'Update', 'Delete']; $map = ['Create', 'Read', 'Update', 'Delete'];
$prefix = $faker->randomElement($map); $prefix = $faker->randomElement($map);
$word_1 = $faker->word;
$word_2 = $faker->word;
return [ return [
'name' => strtolower($prefix) . '-' . strtolower($faker->word) . '-' . strtolower($faker->word), 'name' => strtolower($prefix) . '-' . strtolower($word_1) . '-' . strtolower($word_2),
'display_name' => $prefix . ' ' . $faker->text(5), 'display_name' => $prefix . ' ' . $word_1 . ' ' . $word_2,
'description' => $prefix . ' ' . $faker->text(5), 'description' => $prefix . ' ' . $word_1 . ' ' . $word_2,
]; ];
}); });

View File

@ -0,0 +1,16 @@
<?php
use App\Models\Auth\Permission;
use App\Models\Auth\Role;
use Faker\Generator as Faker;
$factory->define(Role::class, function (Faker $faker) {
$name = $faker->word;
return [
'name' => strtolower($name),
'display_name' => $name,
'description' => $name,
'permissions' => Permission::take(10)->pluck('id')->toArray(),
];
});

View File

@ -3,7 +3,7 @@
namespace Tests\Feature\Auth; namespace Tests\Feature\Auth;
use App\Jobs\Auth\CreateRole; use App\Jobs\Auth\CreateRole;
use App\Models\Auth\Permission; use App\Models\Auth\Role;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class RolesTest extends FeatureTestCase class RolesTest extends FeatureTestCase
@ -28,7 +28,7 @@ class RolesTest extends FeatureTestCase
public function testItShouldCreateRole() public function testItShouldCreateRole()
{ {
$this->loginAs() $this->loginAs()
->post(route('roles.store'), $this->getRoleRequest()) ->post(route('roles.store'), $this->getRequest())
->assertStatus(200); ->assertStatus(200);
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
@ -36,7 +36,7 @@ class RolesTest extends FeatureTestCase
public function testItShouldSeeRoleUpdatePage() public function testItShouldSeeRoleUpdatePage()
{ {
$role = $this->dispatch(new CreateRole($this->getRoleRequest())); $role = $this->dispatch(new CreateRole($this->getRequest()));
$this->loginAs() $this->loginAs()
->get(route('roles.edit', $role->id)) ->get(route('roles.edit', $role->id))
@ -46,22 +46,23 @@ class RolesTest extends FeatureTestCase
public function testItShouldUpdateRole() public function testItShouldUpdateRole()
{ {
$request = $this->getRoleRequest(); $request = $this->getRequest();
$role = $this->dispatch(new CreateRole($request)); $role = $this->dispatch(new CreateRole($request));
$request['name'] = $this->faker->name; $request['display_name'] = $this->faker->word;
$this->loginAs() $this->loginAs()
->patch(route('roles.update', $role->id), $request) ->patch(route('roles.update', $role->id), $request)
->assertStatus(200); ->assertStatus(200)
->assertSee($request['display_name']);
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }
public function testItShouldDeleteRole() public function testItShouldDeleteRole()
{ {
$role = $this->dispatch(new CreateRole($this->getRoleRequest())); $role = $this->dispatch(new CreateRole($this->getRequest()));
$this->loginAs() $this->loginAs()
->delete(route('roles.destroy', $role->id)) ->delete(route('roles.destroy', $role->id))
@ -70,13 +71,8 @@ class RolesTest extends FeatureTestCase
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }
private function getRoleRequest() public function getRequest()
{ {
return [ return factory(Role::class)->raw();
'name' => $this->faker->text(5),
'display_name' => $this->faker->text(5),
'description' => $this->faker->text(5),
'permissions' => Permission::take(10)->pluck('id')->toArray(),
];
} }
} }