UsersTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace Tests\Feature;
  3. use Dcat\Admin\Models\Administrator;
  4. use Tests\TestCase;
  5. class UsersTest extends TestCase
  6. {
  7. public function testUsersIndexPage()
  8. {
  9. $this->visit('admin/auth/users')
  10. ->see('Administrator');
  11. }
  12. public function testCreateUser()
  13. {
  14. $user = [
  15. 'username' => 'Test',
  16. 'name' => 'Name',
  17. 'password' => '123456',
  18. 'password_confirmation' => '123456',
  19. ];
  20. // create user
  21. $this->visit('admin/auth/users/create')
  22. ->see('Create')
  23. ->submitForm('Submit', $user)
  24. ->seePageIs('admin/auth/users')
  25. ->seeInDatabase(config('admin.database.users_table'), ['username' => $user['username'], 'name' => $user['name']]);
  26. // assign role to user
  27. $this->visit('admin/auth/users/2/edit')
  28. ->see('Edit')
  29. ->submitForm('Submit', ['roles' => [1]])
  30. ->seePageIs('admin/auth/users')
  31. ->seeInDatabase(config('admin.database.role_users_table'), ['user_id' => 2, 'role_id' => 1]);
  32. $this->visit('admin/auth/logout')
  33. ->dontSeeIsAuthenticated('admin')
  34. ->seePageIs('admin/auth/login')
  35. ->submitForm('Login', ['username' => $user['username'], 'password' => $user['password']])
  36. ->see('dashboard')
  37. ->seeIsAuthenticated('admin')
  38. ->seePageIs('admin');
  39. $this->assertTrue($this->app['auth']->guard('admin')->getUser()->isAdministrator());
  40. $this->see('<span>Users</span>')
  41. ->see('<span>Roles</span>')
  42. ->see('<span>Permission</span>')
  43. ->see('<span>Operation log</span>')
  44. ->see('<span>Menu</span>');
  45. }
  46. public function testUpdateUser()
  47. {
  48. $this->visit('admin/auth/users/'.$this->user->id.'/edit')
  49. ->see('Edit')
  50. ->submitForm('Submit', ['name' => 'test', 'roles' => [1]])
  51. ->seePageIs('admin/auth/users')
  52. ->seeInDatabase(config('admin.database.users_table'), ['name' => 'test']);
  53. }
  54. public function testResetPassword()
  55. {
  56. $password = 'odjwyufkglte';
  57. $data = [
  58. 'password' => $password,
  59. 'password_confirmation' => $password,
  60. 'roles' => [1],
  61. ];
  62. $this->visit('admin/auth/users/'.$this->user->id.'/edit')
  63. ->see('Edit')
  64. ->submitForm('Submit', $data)
  65. ->seePageIs('admin/auth/users')
  66. ->visit('admin/auth/logout')
  67. ->dontSeeIsAuthenticated('admin')
  68. ->seePageIs('admin/auth/login')
  69. ->submitForm('Login', ['username' => $this->user->username, 'password' => $password])
  70. ->see('dashboard')
  71. ->seeIsAuthenticated('admin')
  72. ->seePageIs('admin');
  73. }
  74. }