Namespace Serenity.GameProgress.Tests.Editor.Builder
Classes
CreateGameProgressSettingsWindowRealCreateTerminalStateTests
The terminal-state contract proven through a REAL Create(Input) call and real
step navigation, not the simulated EnterTerminalStateForTests latch
CreateGameProgressSettingsWindowTerminalStateTests drives: after a successful run, leaving
Summary and returning with no edits must show "Update" with no blocking error and let a confirm run as a
byte-identical no-op, while an edit made after stepping back must be applied by the next confirm rather
than silently discarded. The window is built via UnityEngine.ScriptableObject.CreateInstance``1 rather
than Open(), so its target-resolution scan never runs and a
real Create only ever touches the private temp folder Serenity.GameProgress.Infrastructure.Editor.Builder.CreateGameProgressSettingsWindow.ConfigureForTests(System.String,System.String)
points it at.
CreateGameProgressSettingsWindowRealRunDriver
Runs CreateGameProgressSettingsWindow for real: an unshown window, so its target-resolution scan
never runs, configured onto the fixture folder and landed on its Summary, creates its settings and backend
there — the shape CreateGameProgressSettingsWindowRealCreateTerminalStateTests drives.
CreateGameProgressSettingsWindowTerminalStateTests
After a successful run leaves the wizard terminal, navigating away from Summary to describe a new, valid pending change (here: toggling Replace Existing Backend) and coming back must re-arm the primary action so it calls Create(Input) with that change — never silently discard it as a reset. Drives real navigation (Serenity.GameProgress.Infrastructure.Editor.Builder.CreateGameProgressSettingsWindow.GoToForTests(Serenity.GameProgress.Infrastructure.Editor.Builder.CreateGameProgressSettingsWindow.WizardStep), Serenity.GameProgress.Infrastructure.Editor.Builder.CreateGameProgressSettingsWindow.RunPrimaryActionForTests) against a simulated terminal state most of the time, but ReturningToSummaryAfterEditingBackend_PrimaryActionAppliesTheEditInsteadOfResetting() re-arms the real primary action on purpose and so does reach Create(Input). Serenity.GameProgress.Tests.Editor.Builder.CreateGameProgressSettingsWindowTerminalStateTests.OpenWindow therefore builds the window via UnityEngine.ScriptableObject.CreateInstance``1 rather than Open() and redirects it at Serenity.GameProgress.Infrastructure.Editor.Builder.CreateGameProgressSettingsWindow.ConfigureForTests(System.String,System.String)'s private temp folder — the same seam and reasoning CreateGameProgressSettingsWindowRealCreateTerminalStateTests uses — so this fixture's target-resolution never scans the project and a real write never lands on, or updates in place, the project's own GameProgress settings singleton.
GameProgressCreatorTests
EditMode tests for GameProgressCreator. Every test targets a fixture
UnityGameProgressSettings asset under a private temp folder via Input.SettingsAssetPath
— the real project-wide single settings asset (used by the production wizard) is never touched, so
these tests stay hermetic regardless of what the project already has configured. Mirrors
Serenity.Leaderboard.Tests.Editor.Builder.LeaderboardCreatorTests.