X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/c81cb6f2afd79c33104671ea31f4b0a0e9f85eba..refs/pull/5280/head:/tests/Commands/UpdateUrlCommandTest.php diff --git a/tests/Commands/UpdateUrlCommandTest.php b/tests/Commands/UpdateUrlCommandTest.php index 1788e9452..62c39c274 100644 --- a/tests/Commands/UpdateUrlCommandTest.php +++ b/tests/Commands/UpdateUrlCommandTest.php @@ -2,6 +2,8 @@ namespace Tests\Commands; +use BookStack\Entities\Models\Entity; +use Illuminate\Support\Facades\Artisan; use Symfony\Component\Console\Exception\RuntimeException; use Tests\TestCase; @@ -23,6 +25,28 @@ class UpdateUrlCommandTest extends TestCase ]); } + 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://'; @@ -34,6 +58,13 @@ 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');