logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    In this article
    © 2026 Serenity. All Rights Reserved