From: Dan Brown Date: Wed, 9 Nov 2022 18:42:54 +0000 (+0000) Subject: Added tests to cover shortcut endpoints X-Git-Tag: v22.11~1^2~19^2~2 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/24a7e8500d71927e0a63b89f0a97601965f2357c Added tests to cover shortcut endpoints --- diff --git a/app/Http/Controllers/UserPreferencesController.php b/app/Http/Controllers/UserPreferencesController.php index c4718681a..c42be0484 100644 --- a/app/Http/Controllers/UserPreferencesController.php +++ b/app/Http/Controllers/UserPreferencesController.php @@ -41,7 +41,7 @@ class UserPreferencesController extends Controller setting()->putUser(user(), 'ui-shortcuts', $shortcuts->toJson()); setting()->putUser(user(), 'ui-shortcuts-enabled', $enabled); - $this->showSuccessNotification('Shortcuts preferences have been updated!'); + $this->showSuccessNotification('Shortcut preferences have been updated!'); return redirect('/preferences/shortcuts'); } diff --git a/tests/User/UserPreferencesTest.php b/tests/User/UserPreferencesTest.php index 92e4158cd..3ef575eab 100644 --- a/tests/User/UserPreferencesTest.php +++ b/tests/User/UserPreferencesTest.php @@ -6,6 +6,45 @@ use Tests\TestCase; class UserPreferencesTest extends TestCase { + public function test_interface_shortcuts_updating() + { + $this->asEditor(); + + // View preferences with defaults + $resp = $this->get('/preferences/shortcuts'); + $resp->assertSee('Interface Keyboard Shortcuts'); + + $html = $this->withHtml($resp); + $html->assertFieldHasValue('enabled', 'false'); + $html->assertFieldHasValue('shortcut[home_view]', '1'); + + // Update preferences + $resp = $this->put('/preferences/shortcuts', [ + 'enabled' => 'true', + 'shortcut' => ['home_view' => 'Ctrl + 1'], + ]); + + $resp->assertRedirect('/preferences/shortcuts'); + $resp->assertSessionHas('success', 'Shortcut preferences have been updated!'); + + // View updates to preferences page + $resp = $this->get('/preferences/shortcuts'); + $html = $this->withHtml($resp); + $html->assertFieldHasValue('enabled', 'true'); + $html->assertFieldHasValue('shortcut[home_view]', 'Ctrl + 1'); + } + + public function test_body_has_shortcuts_component_when_active() + { + $editor = $this->getEditor(); + $this->actingAs($editor); + + $this->withHtml($this->get('/'))->assertElementNotExists('body[component="shortcuts"]'); + + setting()->putUser($editor, 'ui-shortcuts-enabled', 'true'); + $this->withHtml($this->get('/'))->assertElementExists('body[component="shortcuts"]'); + } + public function test_update_sort_preference() { $editor = $this->getEditor();