@@ -3,6 +3,16 @@ import { test, expect } from "@playwright/test";
33
44test . describe ( "[command-palette] presets and actions" , ( ) => {
55 let i18n ;
6+ let initialConfig ;
7+
8+ test . beforeAll ( async ( { request } ) => {
9+ const response = await request . get ( "/config" ) ;
10+ initialConfig = await response . json ( ) ;
11+ } ) ;
12+
13+ test . afterAll ( async ( { request } ) => {
14+ await request . put ( "/config" , { data : initialConfig } ) ;
15+ } ) ;
616
717 test . beforeEach ( async ( { page } ) => {
818 await page . goto ( "/" ) ;
@@ -85,6 +95,25 @@ test.describe("[command-palette] presets and actions", () => {
8595 expect ( newTheme ) . toBe ( expectedTheme ) ;
8696 } ) ;
8797
98+ test ( "theme toggle from command palette persists after page reload" , async ( { page } ) => {
99+ const initialTheme = await page . evaluate ( ( ) => window . settings . config . theme ) ;
100+ const expectedTheme = initialTheme === "dark" ? "light" : "dark" ;
101+
102+ const actionsSection = page . locator ( ".section" ) . filter ( { hasText : i18n . section_actions } ) ;
103+ const toggleLabel = i18n [ `action_toggle_theme_to_${ expectedTheme } ` ] ;
104+ const [ response ] = await Promise . all ( [
105+ page . waitForResponse ( ( resp ) => resp . url ( ) . includes ( "/config" ) && resp . request ( ) . method ( ) === "PUT" ) ,
106+ actionsSection . locator ( ".range-preset" ) . filter ( { hasText : toggleLabel } ) . click ( )
107+ ] ) ;
108+ expect ( response . status ( ) ) . toBe ( 204 ) ;
109+
110+ await page . reload ( ) ;
111+ await page . waitForSelector ( `[data-menu="network--view"].active` ) ;
112+
113+ const themeAfterReload = await page . evaluate ( ( ) => window . settings . config . theme ) ;
114+ expect ( themeAfterReload ) . toBe ( expectedTheme ) ;
115+ } ) ;
116+
88117 test ( "pressing Escape closes the palette" , async ( { page } ) => {
89118 await page . keyboard . press ( "Escape" ) ;
90119
0 commit comments