@@ -4,11 +4,24 @@ import { MatchModeType } from "@/systems/match_mode/MatchModeTypes"
44import PreferencesSystem from "@/systems/preferences/PreferencesSystem"
55import {
66 defaultFieldPreferences ,
7+ defaultUserPreferences ,
78 type FieldPreferences ,
89 type GraphicsPreferences ,
910 type RobotPreferences ,
11+ type UserPreference ,
12+ type UserPreferences ,
1013} from "@/systems/preferences/PreferenceTypes"
1114
15+ /**
16+ * Captures the full current user-preferences state by resolving every key
17+ * defined by defaultUserPreferences() through the public getter, so the whole
18+ * set can be asserted with toMatchSnapshot().
19+ */
20+ function captureUserPreferences ( ) : UserPreferences {
21+ const keys = Object . keys ( defaultUserPreferences ( ) ) as UserPreference [ ]
22+ return Object . fromEntries ( keys . map ( key => [ key , PreferencesSystem . getUserPreference ( key ) ] ) ) as UserPreferences
23+ }
24+
1225describe ( "Preferences System Global Values" , ( ) => {
1326 test ( "Setting values" , ( ) => {
1427 PreferencesSystem . setUserPreference ( "ZoomSensitivity" , 7 )
@@ -20,27 +33,23 @@ describe("Preferences System Global Values", () => {
2033 expect ( PreferencesSystem . getUserPreference ( "RenderScoreboard" ) ) . toBe ( false )
2134 } )
2235
23- test ( "Setting without saving" , async ( ) => {
36+ test ( "Setting without saving" , ( ) => {
2437 PreferencesSystem . setUserPreference ( "ZoomSensitivity" , 13 )
2538 PreferencesSystem . setUserPreference ( "RenderSceneTags" , false )
2639 PreferencesSystem . setUserPreference ( "RenderScoreboard" , true )
2740
2841 window . localStorage . setItem ( "Preferences" , "{}" ) // Clears local storage
2942 PreferencesSystem . loadPreferences ( )
3043
31- expect ( PreferencesSystem . getUserPreference ( "ZoomSensitivity" ) ) . toBe ( 15 )
32- expect ( PreferencesSystem . getUserPreference ( "RenderSceneTags" ) ) . toBe ( true )
33- expect ( PreferencesSystem . getUserPreference ( "RenderScoreboard" ) ) . toBe ( true )
44+ expect ( captureUserPreferences ( ) ) . toMatchSnapshot ( "default user preferences" )
3445 } )
3546
3647 test ( "Reset to default if undefined" , ( ) => {
3748 PreferencesSystem . setUserPreference ( "ZoomSensitivity" , undefined as unknown as number )
3849 PreferencesSystem . setUserPreference ( "RenderSceneTags" , undefined as unknown as boolean )
3950 PreferencesSystem . setUserPreference ( "RenderScoreboard" , undefined as unknown as boolean )
4051
41- expect ( PreferencesSystem . getUserPreference ( "ZoomSensitivity" ) ) . toBe ( 15 )
42- expect ( PreferencesSystem . getUserPreference ( "RenderSceneTags" ) ) . toBe ( true )
43- expect ( PreferencesSystem . getUserPreference ( "RenderScoreboard" ) ) . toBe ( true )
52+ expect ( captureUserPreferences ( ) ) . toMatchSnapshot ( "default user preferences" )
4453 } )
4554
4655 test ( "Setting then saving" , ( ) => {
@@ -66,9 +75,7 @@ describe("Preferences System Global Values", () => {
6675
6776 PreferencesSystem . clearPreferences ( )
6877
69- expect ( PreferencesSystem . getUserPreference ( "ZoomSensitivity" ) ) . toBe ( 15 )
70- expect ( PreferencesSystem . getUserPreference ( "RenderSceneTags" ) ) . toBe ( true )
71- expect ( PreferencesSystem . getUserPreference ( "RenderScoreboard" ) ) . toBe ( true )
78+ expect ( captureUserPreferences ( ) ) . toMatchSnapshot ( "default user preferences" )
7279 } )
7380
7481 test ( "Graphics preferences" , ( ) => {
0 commit comments