]> BookStack Code Mirror - bookstack/commitdiff
Added recycle-bin test to cover type deletions
authorDan Brown <redacted>
Sat, 6 Feb 2021 13:22:31 +0000 (13:22 +0000)
committerDan Brown <redacted>
Sat, 6 Feb 2021 13:22:31 +0000 (13:22 +0000)
tests/RecycleBinTest.php

index 60f06cfc4769a9d457fd401eb0727b6d5405ba6e..55a9571de40acbdd1896cd7e5208012f8a28719d 100644 (file)
@@ -1,7 +1,10 @@
 <?php namespace Tests;
 
 use BookStack\Entities\Models\Book;
+use BookStack\Entities\Models\Bookshelf;
+use BookStack\Entities\Models\Chapter;
 use BookStack\Entities\Models\Deletion;
+use BookStack\Entities\Models\Entity;
 use BookStack\Entities\Models\Page;
 use DB;
 use Illuminate\Support\Carbon;
@@ -129,6 +132,21 @@ class RecycleBinTest extends TestCase
         $redirectReq->assertNotificationContains('Deleted '.$itemCount.' total items from the recycle bin');
     }
 
+    public function test_permanent_delete_for_each_type()
+    {
+        /** @var Entity $entity */
+        foreach ([new Bookshelf, new Book, new Chapter, new Page] as $entity) {
+            $entity = $entity->newQuery()->first();
+            $this->asEditor()->delete($entity->getUrl());
+            $deletion = Deletion::query()->orderBy('id', 'desc')->firstOrFail();
+
+            $deleteReq = $this->asAdmin()->delete("/settings/recycle-bin/{$deletion->id}");
+            $deleteReq->assertRedirect('/settings/recycle-bin');
+            $this->assertDatabaseMissing('deletions', ['id' => $deletion->id]);
+            $this->assertDatabaseMissing($entity->getTable(), ['id' => $entity->id]);
+        }
+    }
+
     public function test_permanent_entity_delete_updates_existing_activity_with_entity_name()
     {
         $page = Page::query()->firstOrFail();