]> BookStack Code Mirror - bookstack/blobdiff - tests/Actions/AuditLogTest.php
Fixed OIDC Logout
[bookstack] / tests / Actions / AuditLogTest.php
index d699724f5129d1936e5f39f88fb1ff4f648eab17..5e355ca096b81914de60a0b2f3aff7859d195b90 100644 (file)
@@ -2,23 +2,18 @@
 
 namespace Tests\Actions;
 
-use function app;
-use BookStack\Actions\Activity;
-use BookStack\Actions\ActivityLogger;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\UserRepo;
-use BookStack\Entities\Models\Chapter;
-use BookStack\Entities\Models\Page;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Activity;
+use BookStack\Activity\Tools\ActivityLogger;
 use BookStack\Entities\Repos\PageRepo;
 use BookStack\Entities\Tools\TrashCan;
+use BookStack\Users\UserRepo;
 use Carbon\Carbon;
-use function config;
 use Tests\TestCase;
 
 class AuditLogTest extends TestCase
 {
-    /** @var ActivityLogger */
-    protected $activityService;
+    protected ActivityLogger $activityService;
 
     protected function setUp(): void
     {
@@ -28,17 +23,17 @@ class AuditLogTest extends TestCase
 
     public function test_only_accessible_with_right_permissions()
     {
-        $viewer = $this->getViewer();
+        $viewer = $this->users->viewer();
         $this->actingAs($viewer);
 
         $resp = $this->get('/settings/audit');
         $this->assertPermissionError($resp);
 
-        $this->giveUserPermissions($viewer, ['settings-manage']);
+        $this->permissions->grantUserRolePermissions($viewer, ['settings-manage']);
         $resp = $this->get('/settings/audit');
         $this->assertPermissionError($resp);
 
-        $this->giveUserPermissions($viewer, ['users-manage']);
+        $this->permissions->grantUserRolePermissions($viewer, ['users-manage']);
         $resp = $this->get('/settings/audit');
         $resp->assertStatus(200);
         $resp->assertSeeText('Audit Log');
@@ -46,9 +41,9 @@ class AuditLogTest extends TestCase
 
     public function test_shows_activity()
     {
-        $admin = $this->getAdmin();
+        $admin = $this->users->admin();
         $this->actingAs($admin);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
         $activity = Activity::query()->orderBy('id', 'desc')->first();
 
@@ -56,13 +51,13 @@ class AuditLogTest extends TestCase
         $resp->assertSeeText($page->name);
         $resp->assertSeeText('page_create');
         $resp->assertSeeText($activity->created_at->toDateTimeString());
-        $this->withHtml($resp)->assertElementContains('.table-user-item', $admin->name);
+        $this->withHtml($resp)->assertElementContains('a[href*="users/' . $admin->id . '"]', $admin->name);
     }
 
     public function test_shows_name_for_deleted_items()
     {
-        $this->actingAs($this->getAdmin());
-        $page = Page::query()->first();
+        $this->actingAs($this->users->admin());
+        $page = $this->entities->page();
         $pageName = $page->name;
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
@@ -76,12 +71,12 @@ class AuditLogTest extends TestCase
 
     public function test_shows_activity_for_deleted_users()
     {
-        $viewer = $this->getViewer();
+        $viewer = $this->users->viewer();
         $this->actingAs($viewer);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
-        $this->actingAs($this->getAdmin());
+        $this->actingAs($this->users->admin());
         app(UserRepo::class)->destroy($viewer);
 
         $resp = $this->get('settings/audit');
@@ -90,8 +85,8 @@ class AuditLogTest extends TestCase
 
     public function test_filters_by_key()
     {
-        $this->actingAs($this->getAdmin());
-        $page = Page::query()->first();
+        $this->actingAs($this->users->admin());
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $resp = $this->get('settings/audit');
@@ -103,8 +98,8 @@ class AuditLogTest extends TestCase
 
     public function test_date_filters()
     {
-        $this->actingAs($this->getAdmin());
-        $page = Page::query()->first();
+        $this->actingAs($this->users->admin());
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $yesterday = (Carbon::now()->subDay()->format('Y-m-d'));
@@ -125,14 +120,14 @@ class AuditLogTest extends TestCase
 
     public function test_user_filter()
     {
-        $admin = $this->getAdmin();
-        $editor = $this->getEditor();
+        $admin = $this->users->admin();
+        $editor = $this->users->editor();
         $this->actingAs($admin);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $this->actingAs($editor);
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $this->activityService->add(ActivityType::CHAPTER_UPDATE, $chapter);
 
         $resp = $this->actingAs($admin)->get('settings/audit?user=' . $admin->id);
@@ -147,9 +142,8 @@ class AuditLogTest extends TestCase
     public function test_ip_address_logged_and_visible()
     {
         config()->set('app.proxies', '*');
-        $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $editor = $this->users->editor();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
@@ -172,9 +166,8 @@ class AuditLogTest extends TestCase
     public function test_ip_address_is_searchable()
     {
         config()->set('app.proxies', '*');
-        $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $editor = $this->users->editor();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
@@ -199,9 +192,8 @@ class AuditLogTest extends TestCase
     {
         config()->set('app.proxies', '*');
         config()->set('app.env', 'demo');
-        $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $editor = $this->users->editor();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
@@ -223,9 +215,8 @@ class AuditLogTest extends TestCase
     {
         config()->set('app.proxies', '*');
         config()->set('app.ip_address_precision', 2);
-        $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $editor = $this->users->editor();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',