true, '--name' => 'laraland']); } public function _before(FunctionalTester $I) { $this->initDatabase(); Passport::actingAs(Admin::find(1)); $I->seeAuthentication('api'); } public function _after(FunctionalTester $I) { } public function getAllPermissions(FunctionalTester $I) { $permission = Permission::find(1); $I->sendGET($this->endpoint); $I->seeResponseContainsJson([ 'data' => [ ['name' => $permission->name] ] ]); } public function getSinglePermission(FunctionalTester $I) { $permission = Permission::find(1); $I->sendGET($this->endpoint . '/' . $permission->id); $I->seeResponseContainsJson([ 'data' => [ 'name' => $permission->name ] ]); } public function storePermission(FunctionalTester $I) { Auth::user()->givePermissionTo('create-permission'); $permission = [ 'name' => 'maintenance', 'guard_name' => 'web' ]; $I->sendPOST($this->endpoint, $permission); $I->seeResponseContainsJson([ 'data' => [ 'name' => $permission['name'], 'guard_name' => $permission['guard_name'] ] ]); } public function updatePermission(FunctionalTester $I) { Auth::user()->givePermissionTo('update-permission'); $permission = Permission::find(1); $I->sendPUT($this->endpoint . '/' . $permission->id, [ 'name' => 'maintenance', 'guard_name' => $permission->guard_name ]); $I->seeResponseContainsJson([ 'data' => [ 'name' => 'maintenance' ] ]); } public function deletePermission(FunctionalTester $I) { $permission = Permission::find(1); $I->sendDELETE($this->endpoint . '/' . $permission->id); $I->seeResponseCodeIsSuccessful(); $I->seeResponseContains('deleted'); } public function attachRole(FunctionalTester $I) { $permission = Permission::find(1); $role = Role::find(1); $I->sendPATCH($this->endpoint . '/' . $permission->id . '/attach-role/' . $role->id); $I->seeResponseContainsJson([ 'data' => [ 'roles' => [ ['name' => $role->name] ] ] ]); } public function attachMultiRoles(FunctionalTester $I) { $permission = Permission::find(1); $roles = [1, 2, 3]; $I->sendPATCH($this->endpoint . '/' . $permission->id . '/attach-roles', $roles); $I->seeResponseContainsJson([ 'data' => [ 'roles' => [ ['id' => $roles[0]], ['id' => $roles[1]], ['id' => $roles[2]] ] ] ]); } public function removeRole(FunctionalTester $I) { $permission = Permission::find(1); $role = Role::find(1); $permission->assignRole($role); $I->sendPATCH($this->endpoint . '/' . $permission->id . '/remove-role/' . $role->id); $I->dontSeeResponseContainsJson([ 'data' => [ ['name' => $role->name] ] ]); } }