X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/58fa7679bccafd00f9a50bcd4a87e96876331b03..refs/pull/5280/head:/tests/Commands/UpdateUrlCommandTest.php diff --git a/tests/Commands/UpdateUrlCommandTest.php b/tests/Commands/UpdateUrlCommandTest.php index 7043ce047..62c39c274 100644 --- a/tests/Commands/UpdateUrlCommandTest.php +++ b/tests/Commands/UpdateUrlCommandTest.php @@ -1,6 +1,9 @@ -first(); + $page = $this->entities->page(); $page->html = ''; $page->save(); $this->artisan('bookstack:update-url https://example.com https://cats.example.com') ->expectsQuestion("This will search for \"https://example.com\" in your database and replace it with \"https://cats.example.com\".\nAre you sure you want to proceed?", 'y') - ->expectsQuestion("This operation could cause issues if used incorrectly. Have you made a backup of your existing database?", 'y'); + ->expectsQuestion('This operation could cause issues if used incorrectly. Have you made a backup of your existing database?', 'y'); $this->assertDatabaseHas('pages', [ - 'id' => $page->id, - 'html' => '' + 'id' => $page->id, + 'html' => '', ]); } + public function test_command_updates_description_html() + { + /** @var Entity[] $models */ + $models = [$this->entities->book(), $this->entities->chapter(), $this->entities->shelf()]; + + foreach ($models as $model) { + $model->description_html = ''; + $model->save(); + } + + $this->artisan('bookstack:update-url https://example.com https://cats.example.com') + ->expectsQuestion("This will search for \"https://example.com\" in your database and replace it with \"https://cats.example.com\".\nAre you sure you want to proceed?", 'y') + ->expectsQuestion('This operation could cause issues if used incorrectly. Have you made a backup of your existing database?', 'y'); + + foreach ($models as $model) { + $this->assertDatabaseHas($model->getTable(), [ + 'id' => $model->id, + 'description_html' => '', + ]); + } + } + public function test_command_requires_valid_url() { - $badUrlMessage = "The given urls are expected to be full urls starting with http:// or https://"; + $badUrlMessage = 'The given urls are expected to be full urls starting with http:// or https://'; $this->artisan('bookstack:update-url //example.com https://cats.example.com')->expectsOutput($badUrlMessage); $this->artisan('bookstack:update-url https://example.com htts://cats.example.com')->expectsOutput($badUrlMessage); $this->artisan('bookstack:update-url example.com https://cats.example.com')->expectsOutput($badUrlMessage); @@ -33,11 +58,20 @@ class UpdateUrlCommandTest extends TestCase $this->artisan('bookstack:update-url https://cats.example.com'); } + public function test_command_force_option_skips_prompt() + { + $this->artisan('bookstack:update-url --force https://cats.example.com/donkey https://cats.example.com/monkey') + ->expectsOutputToContain('URL update procedure complete') + ->assertSuccessful(); + } + public function test_command_updates_settings() { setting()->put('my-custom-item', 'https://example.com/donkey/cat'); $this->runUpdate('https://example.com', 'https://cats.example.com'); + setting()->flushCache(); + $settingVal = setting('my-custom-item'); $this->assertEquals('https://cats.example.com/donkey/cat', $settingVal); } @@ -46,6 +80,9 @@ class UpdateUrlCommandTest extends TestCase { setting()->put('my-custom-array-item', [['name' => 'a https://example.com/donkey/cat url']]); $this->runUpdate('https://example.com', 'https://cats.example.com'); + + setting()->flushCache(); + $settingVal = setting('my-custom-array-item'); $this->assertEquals('a https://cats.example.com/donkey/cat url', $settingVal[0]['name']); } @@ -54,6 +91,6 @@ class UpdateUrlCommandTest extends TestCase { $this->artisan("bookstack:update-url {$oldUrl} {$newUrl}") ->expectsQuestion("This will search for \"{$oldUrl}\" in your database and replace it with \"{$newUrl}\".\nAre you sure you want to proceed?", 'y') - ->expectsQuestion("This operation could cause issues if used incorrectly. Have you made a backup of your existing database?", 'y'); + ->expectsQuestion('This operation could cause issues if used incorrectly. Have you made a backup of your existing database?', 'y'); } -} \ No newline at end of file +}