mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-07-28 17:02:04 +03:00
Added "update-url" command to find/replace url in the database
- Also aligned format of command descriptions. Targeted most common columns. Have not done revisions for the sake of keeping that content true to how it was originally stored but could cause unexpected behaviour. For #1225
This commit is contained in:
@ -5,6 +5,7 @@ use BookStack\Entities\Bookshelf;
|
||||
use BookStack\Entities\Page;
|
||||
use BookStack\Auth\User;
|
||||
use BookStack\Entities\Repos\PageRepo;
|
||||
use Symfony\Component\Console\Exception\RuntimeException;
|
||||
|
||||
class CommandsTest extends TestCase
|
||||
{
|
||||
@ -166,4 +167,31 @@ class CommandsTest extends TestCase
|
||||
$this->assertDatabaseHas('entity_permissions', ['restrictable_id' => $child->id, 'action' => 'view', 'role_id' => $editorRole->id]);
|
||||
$this->assertDatabaseHas('entity_permissions', ['restrictable_id' => $child->id, 'action' => 'update', 'role_id' => $editorRole->id]);
|
||||
}
|
||||
|
||||
public function test_update_url_command_updates_page_content()
|
||||
{
|
||||
$page = Page::query()->first();
|
||||
$page->html = '<a href="https://example.com/donkeys"></a>';
|
||||
$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');
|
||||
|
||||
$this->assertDatabaseHas('pages', [
|
||||
'id' => $page->id,
|
||||
'html' => '<a href="https://cats.example.com/donkeys"></a>'
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_update_url_command_requires_valid_url()
|
||||
{
|
||||
$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);
|
||||
|
||||
$this->expectException(RuntimeException::class);
|
||||
$this->artisan('bookstack:update-url https://cats.example.com');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user