]> BookStack Code Mirror - bookstack/commitdiff
Dark Mode: Fixed not toggle action when dark by default
authorDan Brown <redacted>
Thu, 14 Sep 2023 12:53:24 +0000 (13:53 +0100)
committerDan Brown <redacted>
Thu, 14 Sep 2023 12:53:24 +0000 (13:53 +0100)
Added test to cover.
For #4543.

app/Users/Controllers/UserPreferencesController.php
tests/User/UserPreferencesTest.php

index 9c38ff2af750fd7542102d7ae744b8aecf2649ec..08d65743b8c766b1e76e7da08b55b07d5de59c18 100644 (file)
@@ -145,7 +145,7 @@ class UserPreferencesController extends Controller
      */
     public function toggleDarkMode()
     {
-        $enabled = setting()->getForCurrentUser('dark-mode-enabled', false);
+        $enabled = setting()->getForCurrentUser('dark-mode-enabled');
         setting()->putForCurrentUser('dark-mode-enabled', $enabled ? 'false' : 'true');
 
         return redirect()->back();
index 1b16b0b4544994d5e34f0bad54b190a92fbd0a85..f5dae3e763472bfd8ee9e73fe638837a47c8f7a4 100644 (file)
@@ -242,6 +242,22 @@ class UserPreferencesTest extends TestCase
         $this->withHtml($home)->assertElementExists('.dark-mode');
     }
 
+    public function test_dark_mode_toggle_endpoint_changes_to_light_when_dark_by_default()
+    {
+        config()->set('setting-defaults.user.dark-mode-enabled', true);
+        $editor = $this->users->editor();
+
+        $this->assertEquals(true, setting()->getUser($editor, 'dark-mode-enabled'));
+        $prefChange = $this->actingAs($editor)->patch('/preferences/toggle-dark-mode');
+        $prefChange->assertRedirect();
+        $this->assertEquals(false, setting()->getUser($editor, 'dark-mode-enabled'));
+
+        $home = $this->get('/');
+        $this->withHtml($home)->assertElementNotExists('.dark-mode');
+        $home->assertDontSee('Light Mode');
+        $home->assertSee('Dark Mode');
+    }
+
     public function test_books_view_type_preferences_when_list()
     {
         $editor = $this->users->editor();