OperationLogTest.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace Dcat\Admin\Tests\Feature;
  3. use Dcat\Admin\Models\OperationLog;
  4. use Dcat\Admin\Tests\TestCase;
  5. /**
  6. * @group log
  7. */
  8. class OperationLogTest extends TestCase
  9. {
  10. public function testOperationLogIndex()
  11. {
  12. $this->visit('admin/auth/logs')
  13. ->see('Operation log')
  14. ->see('List')
  15. ->see('GET')
  16. ->see('admin/auth/logs');
  17. }
  18. public function testGenerateLogs()
  19. {
  20. $table = config('admin.database.operation_log_table');
  21. $this->visit('admin/auth/menu')
  22. ->seePageIs('admin/auth/menu')
  23. ->visit('admin/auth/users')
  24. ->seePageIs('admin/auth/users')
  25. ->visit('admin/auth/permissions')
  26. ->seePageIs('admin/auth/permissions')
  27. ->visit('admin/auth/roles')
  28. ->seePageIs('admin/auth/roles')
  29. ->visit('admin/auth/logs')
  30. ->seePageIs('admin/auth/logs')
  31. ->seeInDatabase($table, ['path' => 'admin/auth/menu', 'method' => 'GET'])
  32. ->seeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET'])
  33. ->seeInDatabase($table, ['path' => 'admin/auth/permissions', 'method' => 'GET'])
  34. ->seeInDatabase($table, ['path' => 'admin/auth/roles', 'method' => 'GET']);
  35. $this->assertSame(4, OperationLog::count());
  36. }
  37. public function testDeleteLogs()
  38. {
  39. $table = config('admin.database.operation_log_table');
  40. $this->visit('admin/auth/logs')
  41. ->seePageIs('admin/auth/logs')
  42. ->assertEquals(0, OperationLog::count());
  43. $this->visit('admin/auth/users');
  44. $this->seeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET']);
  45. $this->delete('admin/auth/logs/1')
  46. ->assertEquals(0, OperationLog::count());
  47. }
  48. public function testDeleteMultipleLogs()
  49. {
  50. $table = config('admin.database.operation_log_table');
  51. $this->visit('admin/auth/menu')
  52. ->visit('admin/auth/users')
  53. ->visit('admin/auth/permissions')
  54. ->visit('admin/auth/roles')
  55. ->seeInDatabase($table, ['path' => 'admin/auth/menu', 'method' => 'GET'])
  56. ->seeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET'])
  57. ->seeInDatabase($table, ['path' => 'admin/auth/permissions', 'method' => 'GET'])
  58. ->seeInDatabase($table, ['path' => 'admin/auth/roles', 'method' => 'GET'])
  59. ->assertEquals(4, OperationLog::count());
  60. $this->delete('admin/auth/logs/1,2,3,4')
  61. ->notSeeInDatabase($table, ['path' => 'admin/auth/menu', 'method' => 'GET'])
  62. ->notSeeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET'])
  63. ->notSeeInDatabase($table, ['path' => 'admin/auth/permissions', 'method' => 'GET'])
  64. ->notSeeInDatabase($table, ['path' => 'admin/auth/roles', 'method' => 'GET'])
  65. ->assertEquals(0, OperationLog::count());
  66. }
  67. }