Installed laravel-permission and laravel-modules
This commit is contained in:
153
tests/functional/ApiPermissionsCest.php
Normal file
153
tests/functional/ApiPermissionsCest.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
use App\Admin;
|
||||
use Laravel\Passport\Passport;
|
||||
use App\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class ApiPermissionsCest
|
||||
{
|
||||
private $endpoint = '/api/permissions';
|
||||
|
||||
private function initDatabase()
|
||||
{
|
||||
Artisan::call('migrate');
|
||||
Artisan::call('db:seed');
|
||||
Artisan::call('passport:client', ['--password' => 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]
|
||||
]
|
||||
]);
|
||||
}
|
||||
}
|
||||
153
tests/functional/ApiRolesCest.php
Normal file
153
tests/functional/ApiRolesCest.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
use Laravel\Passport\Passport;
|
||||
use App\Role;
|
||||
use App\Permission;
|
||||
use App\Admin;
|
||||
|
||||
class ApiRolesCest
|
||||
{
|
||||
private $endpoint = '/api/roles';
|
||||
|
||||
private function initDatabase()
|
||||
{
|
||||
Artisan::call('migrate');
|
||||
Artisan::call('db:seed');
|
||||
Artisan::call('passport:client', ['--password' => 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 getAllRoles(FunctionalTester $I)
|
||||
{
|
||||
$role = Role::find(1);
|
||||
|
||||
$I->sendGET($this->endpoint);
|
||||
|
||||
$I->seeResponseContainsJson([
|
||||
'data' => [
|
||||
['name' => $role->name]
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function getSingleRole(FunctionalTester $I)
|
||||
{
|
||||
$role = Role::find(1);
|
||||
|
||||
$I->sendGET($this->endpoint . '/' . $role->id);
|
||||
|
||||
$I->seeResponseContainsJson([
|
||||
'data' => [
|
||||
'name' => $role->name
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function storeRole(FunctionalTester $I)
|
||||
{
|
||||
Auth::user()->givePermissionTo('create-role');
|
||||
|
||||
$role = [
|
||||
'name' => 'mahasiswa',
|
||||
'guard_name' => 'web'
|
||||
];
|
||||
|
||||
$I->sendPOST($this->endpoint, $role);
|
||||
|
||||
$I->seeResponseContainsJson([
|
||||
'data' => [
|
||||
'name' => $role['name']
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateRole(FunctionalTester $I)
|
||||
{
|
||||
Auth::user()->givePermissionTo('update-role');
|
||||
|
||||
$role = Role::find(1);
|
||||
$update = [
|
||||
'name' => 'mahasiswa',
|
||||
'guard_name' => 'web'
|
||||
];
|
||||
|
||||
$I->sendPUT($this->endpoint . '/' . $role->id, $update);
|
||||
|
||||
$I->seeResponseContainsJson([
|
||||
'data' => [
|
||||
'name' => $update['name'],
|
||||
'guard_name' => $update['guard_name']
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteRole(FunctionalTester $I)
|
||||
{
|
||||
$role = Role::find(1);
|
||||
|
||||
$I->sendDELETE($this->endpoint . '/' . $role->id);
|
||||
|
||||
$I->seeResponseCodeIsSuccessful();
|
||||
$I->seeResponseContains('deleted');
|
||||
}
|
||||
|
||||
public function attachPermission(FunctionalTester $I)
|
||||
{
|
||||
$role = Role::find(1);
|
||||
$permission = Permission::find(1);
|
||||
|
||||
$I->sendPATCH($this->endpoint . '/' . $role->id . '/attach-permission/' . $permission->id);
|
||||
|
||||
$I->seeResponseContainsJson([
|
||||
'data' => [
|
||||
'permissions' => [
|
||||
['name' => $permission->name]
|
||||
]
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function attachMultiPermissions(FunctionalTester $I)
|
||||
{
|
||||
$role = Role::find(1);
|
||||
$permissions = [1, 2, 3];
|
||||
|
||||
$I->sendPATCH($this->endpoint . '/' . $role->id . '/attach-permissions', $permissions);
|
||||
|
||||
$I->seeResponseContainsJson([
|
||||
'permissions' => [
|
||||
['id' => $permissions[0]],
|
||||
['id' => $permissions[1]],
|
||||
['id' => $permissions[2]]
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function removePermission(FunctionalTester $I)
|
||||
{
|
||||
$role = Role::find(1);
|
||||
$permission = Permission::find(1);
|
||||
|
||||
$I->sendPATCH($this->endpoint . '/' . $role->id . '/remove-permission/' . $permission->id);
|
||||
|
||||
$I->dontSeeResponseContainsJson([
|
||||
'data' => [
|
||||
'permissions' => [
|
||||
['name' => $permission->id]
|
||||
]
|
||||
]
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user