Skip to content

Commit b0fb597

Browse files
authored
fix(preferences): scoreboard disabled by default & pref snapshot (#1406)
2 parents 88145f8 + ab80b99 commit b0fb597

3 files changed

Lines changed: 100 additions & 11 deletions

File tree

fission/src/systems/preferences/PreferenceTypes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export function defaultUserPreferences(): UserPreferences {
6363
RenderProtectedZones: true,
6464
InputSchemes: [],
6565
RenderSceneTags: true,
66-
RenderScoreboard: true,
66+
RenderScoreboard: false,
6767
SubsystemGravity: false,
6868
TouchControls: false,
6969
SimAutoReconnect: false,

fission/src/test/PreferencesSystem.test.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,24 @@ import { MatchModeType } from "@/systems/match_mode/MatchModeTypes"
44
import PreferencesSystem from "@/systems/preferences/PreferencesSystem"
55
import {
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+
1225
describe("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", () => {

fission/src/test/__snapshots__/PreferencesSystem.test.ts.snap

Lines changed: 82 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)