]> BookStack Code Mirror - bookstack/commitdiff
Added tests to cover shortcut endpoints
authorDan Brown <redacted>
Wed, 9 Nov 2022 18:42:54 +0000 (18:42 +0000)
committerDan Brown <redacted>
Wed, 9 Nov 2022 18:42:54 +0000 (18:42 +0000)
app/Http/Controllers/UserPreferencesController.php
tests/User/UserPreferencesTest.php

index c4718681a8745a696e2e34ba4280db5822a15230..c42be04845b304b8f3e97bd094929682da860ebd 100644 (file)
@@ -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');
     }
index 92e4158cd955d6a7623445e488c0e3d5ea82e8fc..3ef575eab73aeafd76dc48ac1e4eb382155646c2 100644 (file)
@@ -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();
Morty Proxy This is a proxified and sanitized view of the page, visit original site.