From 71dd0d2655a05ada3db97b4acd12f0de8571a618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Batuhan=20Ba=C5=9F?= Date: Fri, 19 Oct 2018 12:34:14 +0300 Subject: [PATCH] Permission and Role tests added --- tests/Feature/Auth/PermissionsTest.php | 84 ++++++++++++++++++++++++ tests/Feature/Auth/RolesTest.php | 90 ++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 tests/Feature/Auth/PermissionsTest.php create mode 100644 tests/Feature/Auth/RolesTest.php diff --git a/tests/Feature/Auth/PermissionsTest.php b/tests/Feature/Auth/PermissionsTest.php new file mode 100644 index 000000000..876e77c6b --- /dev/null +++ b/tests/Feature/Auth/PermissionsTest.php @@ -0,0 +1,84 @@ +loginAs() + ->get(route('permissions.index')) + ->assertStatus(200) + ->assertSeeText(trans_choice('general.permissions', 2)); + } + + public function testItShouldSeePermissionCreatePage() + { + $this->loginAs() + ->get(route('permissions.create')) + ->assertStatus(200) + ->assertSeeText(trans('general.title.new', ['type' => trans_choice('general.permissions', 1)])); + } + + public function testItShouldCreatePermission() + { + $this->loginAs() + ->post(route('permissions.store'), $this->getPermissionRequest()) + ->assertStatus(302) + ->assertRedirect(route('permissions.index')); + + $this->assertFlashLevel('success'); + } + + public function testItShouldSeePermissionUpdatePage() + { + $permission = Permission::create($this->getPermissionRequest()); + + $this->loginAs() + ->get(route('permissions.edit', ['permission' => $permission->id])) + ->assertStatus(200) + ->assertSee($permission->name); + } + + public function testItShouldUpdatePermission() + { + $request = $this->getPermissionRequest(); + + $permission = Permission::create($request); + + $request['name'] = $this->faker->name; + + $this->loginAs() + ->patch(route('permissions.update', $permission->id), $request) + ->assertStatus(302) + ->assertRedirect(route('permissions.index')); + + $this->assertFlashLevel('success'); + } + + public function testItShouldDeletePermission() + { + $permission = Permission::create($this->getPermissionRequest()); + + $this->loginAs() + ->delete(route('permissions.destroy', $permission->id)) + ->assertStatus(302) + ->assertRedirect(route('permissions.index')); + + $this->assertFlashLevel('success'); + + } + + private function getPermissionRequest() + { + return [ + 'name' => $this->faker->text(5), + 'display_name' => $this->faker->text(5), + 'description' => $this->faker->text(5), + ]; + } +} \ No newline at end of file diff --git a/tests/Feature/Auth/RolesTest.php b/tests/Feature/Auth/RolesTest.php new file mode 100644 index 000000000..7f688429e --- /dev/null +++ b/tests/Feature/Auth/RolesTest.php @@ -0,0 +1,90 @@ +loginAs() + ->get(route('roles.index')) + ->assertStatus(200) + ->assertSeeText(trans_choice('general.roles', 2)); + } + + public function testItShouldSeeRoleCreatePage() + { + $this->loginAs() + ->get(route('roles.create')) + ->assertStatus(200) + ->assertSeeText(trans('general.title.new', ['type' => trans_choice('general.roles', 1)])); + } + + public function testItShouldCreateRole() + { + $r = route('roles.store'); + $rr = $this->getRoleRequest(); + + $this->loginAs() + ->post($r, $rr) + ->assertStatus(302) + ->assertRedirect(route('roles.index')); + + $this->assertFlashLevel('success'); + } + + public function testItShouldSeeRoleUpdatePage() + { + $role = Role::create($this->getRoleRequest()); + + $this->loginAs() + ->get(route('roles.edit', ['role' => $role->id])) + ->assertStatus(200) + ->assertSee($role->name); + } + + public function testItShouldUpdateRole() + { + $request = $this->getRoleRequest(); + + $role = Role::create($request); + + $request['name'] = $this->faker->name; + + $this->loginAs() + ->patch(route('roles.update', $role->id), $request) + ->assertStatus(302) + ->assertRedirect(route('roles.index')); + + $this->assertFlashLevel('success'); + } + + public function testItShouldDeleteRole() + { + $role = Role::create($this->getRoleRequest()); + + $this->loginAs() + ->delete(route('roles.destroy', $role->id)) + ->assertStatus(302) + ->assertRedirect(route('roles.index')); + + $this->assertFlashLevel('success'); + } + + private function getRoleRequest() + { + $permissions = array(0=>'93', 1=>'94', 2=>'95', 3=>'97', 4=>'99', 5=>'100', 6=>'96', 7=>'98', 8=>'101'); + + return [ + 'name' => $this->faker->text(5), + 'display_name' => $this->faker->text(5), + 'description' => $this->faker->text(5), + 'permissions' => $permissions, + ]; + } +} \ No newline at end of file