1
0
Files
2020-08-06 15:36:28 +08:00

106 lines
3.7 KiB
PHP

<?php
use Encore\Admin\Auth\Database\Administrator;
use Encore\Admin\Auth\Database\Role;
class RolesTest extends TestCase
{
public function setUp()
{
parent::setUp();
$this->be(Administrator::first(), 'admin');
}
public function testRolesIndex()
{
$this->visit('admin/auth/roles')
->see('Roles')
->see('administrator');
}
public function testAddRole()
{
$this->visit('admin/auth/roles/create')
->see('Roles')
->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
->seePageIs('admin/auth/roles')
->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
->assertEquals(2, Role::count());
}
public function testAddRoleToUser()
{
$user = [
'username' => 'Test',
'name' => 'Name',
'password' => '123456',
'password_confirmation' => '123456',
];
$this->visit('admin/auth/users/create')
->see('Create')
->submitForm('Submit', $user)
->seePageIs('admin/auth/users')
->seeInDatabase(config('admin.database.users_table'), ['username' => 'Test']);
$this->assertEquals(1, Role::count());
$this->visit('admin/auth/roles/create')
->see('Roles')
->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
->seePageIs('admin/auth/roles')
->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
->assertEquals(2, Role::count());
$this->assertFalse(Administrator::find(2)->isRole('developer'));
$this->visit('admin/auth/users/2/edit')
->see('Edit')
->submitForm('Submit', ['roles' => [2]])
->seePageIs('admin/auth/users')
->seeInDatabase(config('admin.database.role_users_table'), ['user_id' => 2, 'role_id' => 2]);
$this->assertTrue(Administrator::find(2)->isRole('developer'));
$this->assertFalse(Administrator::find(2)->inRoles(['editor', 'operator']));
$this->assertTrue(Administrator::find(2)->inRoles(['developer', 'operator', 'editor']));
}
public function testDeleteRole()
{
$this->assertEquals(1, Role::count());
$this->visit('admin/auth/roles/create')
->see('Roles')
->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
->seePageIs('admin/auth/roles')
->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
->assertEquals(2, Role::count());
$this->delete('admin/auth/roles/2')
->assertEquals(1, Role::count());
$this->delete('admin/auth/roles/1')
->assertEquals(0, Role::count());
}
public function testEditRole()
{
$this->visit('admin/auth/roles/create')
->see('Roles')
->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
->seePageIs('admin/auth/roles')
->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
->assertEquals(2, Role::count());
$this->visit('admin/auth/roles/2/edit')
->see('Roles')
->submitForm('Submit', ['name' => 'blablabla'])
->seePageIs('admin/auth/roles')
->seeInDatabase(config('admin.database.roles_table'), ['name' => 'blablabla'])
->assertEquals(2, Role::count());
}
}