From 24a7e8500d71927e0a63b89f0a97601965f2357c Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 9 Nov 2022 18:42:54 +0000 Subject: [PATCH] Added tests to cover shortcut endpoints --- .../Controllers/UserPreferencesController.php | 2 +- tests/User/UserPreferencesTest.php | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) 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();