1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-31 15:24:31 +03:00

Refactored some permission controls and increased testing for roles system

This commit is contained in:
Dan Brown
2016-03-02 22:35:01 +00:00
parent 985d2f1c2c
commit 8e274a5a84
8 changed files with 216 additions and 93 deletions

View File

@ -9,13 +9,14 @@ class RolesTest extends TestCase
parent::setUp();
}
/**
* Create a new basic role for testing purposes.
* @return static
*/
protected function createNewRole()
{
return \BookStack\Role::forceCreate([
'name' => 'test-role',
'display_name' => 'Test Role',
'description' => 'This is a role for testing'
]);
$permissionRepo = app('BookStack\Repos\PermissionsRepo');
return $permissionRepo->saveNewRole(factory(\BookStack\Role::class)->make()->toArray());
}
public function test_admin_can_see_settings()
@ -45,4 +46,38 @@ class RolesTest extends TestCase
->see('cannot be deleted');
}
public function test_role_create_update_delete_flow()
{
$testRoleName = 'Test Role';
$testRoleDesc = 'a little test description';
$testRoleUpdateName = 'An Super Updated role';
// Creation
$this->asAdmin()->visit('/settings')
->click('Roles')
->seePageIs('/settings/roles')
->click('Add new role')
->type('Test Role', 'display_name')
->type('A little test description', 'description')
->press('Save Role')
->seeInDatabase('roles', ['display_name' => $testRoleName, 'name' => 'test-role', 'description' => $testRoleDesc])
->seePageIs('/settings/roles');
// Updating
$this->asAdmin()->visit('/settings/roles')
->see($testRoleDesc)
->click($testRoleName)
->type($testRoleUpdateName, '#display_name')
->press('Save Role')
->seeInDatabase('roles', ['display_name' => $testRoleUpdateName, 'name' => 'test-role', 'description' => $testRoleDesc])
->seePageIs('/settings/roles');
// Deleting
$this->asAdmin()->visit('/settings/roles')
->click($testRoleUpdateName)
->click('Delete Role')
->see($testRoleUpdateName)
->press('Confirm')
->seePageIs('/settings/roles')
->dontSee($testRoleUpdateName);
}
}

View File

@ -79,8 +79,8 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
protected function getNewUser($attributes = [])
{
$user = factory(\BookStack\User::class)->create($attributes);
$userRepo = app('BookStack\Repos\UserRepo');
$userRepo->attachDefaultRole($user);
$role = \BookStack\Role::getRole('editor');
$user->attachRole($role);;
return $user;
}