<?php namespace Tests;
+use BookStack\Actions\ActivityType;
+use BookStack\Actions\Comment;
+use BookStack\Actions\CommentRepo;
use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Entities\Bookshelf;
-use BookStack\Entities\Page;
+use BookStack\Entities\Models\Bookshelf;
+use BookStack\Entities\Models\Page;
use BookStack\Auth\User;
use BookStack\Entities\Repos\PageRepo;
use Symfony\Component\Console\Exception\RuntimeException;
{
$this->asEditor();
$page = Page::first();
- \Activity::add($page, 'page_update', $page->book->id);
+ \Activity::addForEntity($page, ActivityType::PAGE_UPDATE);
$this->assertDatabaseHas('activities', [
- 'key' => 'page_update',
+ 'type' => 'page_update',
'entity_id' => $page->id,
'user_id' => $this->getEditor()->id
]);
$this->assertDatabaseMissing('activities', [
- 'key' => 'page_update'
+ 'type' => 'page_update'
]);
}
$this->expectException(RuntimeException::class);
$this->artisan('bookstack:update-url https://cats.example.com');
}
+
+ public function test_regenerate_comment_content_command()
+ {
+ Comment::query()->forceCreate([
+ 'html' => 'some_old_content',
+ 'text' => 'some_fresh_content',
+ ]);
+
+ $this->assertDatabaseHas('comments', [
+ 'html' => 'some_old_content',
+ ]);
+
+ $exitCode = \Artisan::call('bookstack:regenerate-comment-content');
+ $this->assertTrue($exitCode === 0, 'Command executed successfully');
+
+ $this->assertDatabaseMissing('comments', [
+ 'html' => 'some_old_content',
+ ]);
+ $this->assertDatabaseHas('comments', [
+ 'html' => "<p>some_fresh_content</p>\n",
+ ]);
+ }
}