logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class InitializeSerenityWindowDoneStepReloadSafetyTests

    Regression coverage for the Initialize Serenity Done step reading data a domain reload would otherwise silently null. InitializeSerenityCreateStep.WiringResult is a plain, non-serialized field — an unrelated script compile while the reader is still looking at the Done step (or simply reopening the window on a later session) drops it exactly the way CreateModalWindowDoneStepReloadSafetyTests already proved for Modal Builder's own cached result. The fix routes the Done step through the window's inherited, [SerializeField] Serenity.Global.Infrastructure.Editor.SerenityWizardPrimaryActionOutcome instead (Serenity.CreateGame.Infrastructure.Editor.InitializeSerenityWindow.SnapshotPrimaryActionOutcomeForTests(Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringResult) is the test seam onto the same write path RunCreate uses). Uses the same EditorJsonUtility round-trip technique the Modal suite uses to simulate the reload without an actual assembly reload.

    Inheritance
    object
    InitializeSerenityWindowDoneStepReloadSafetyTests
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.CreateGame.Tests.Editor
    Assembly: Serenity.CreateGame.Tests.Editor.dll
    Syntax
    public class InitializeSerenityWindowDoneStepReloadSafetyTests

    Constructors

    InitializeSerenityWindowDoneStepReloadSafetyTests()

    Declaration
    public InitializeSerenityWindowDoneStepReloadSafetyTests()

    Methods

    DoneStepModel_BuiltFromASurvivedOutcome_ReportsTheProfileAndScenesTruthfully()

    Declaration
    public void DoneStepModel_BuiltFromASurvivedOutcome_ReportsTheProfileAndScenesTruthfully()

    PickedPipelineProfilePath_SurvivesASimulatedDomainReload()

    Several profiles is a choice, not a dead end: the Boot pipeline row's own pick must survive a domain reload exactly like the run outcome above, or a reader who resolved an ambiguity would have to pick again every time an unrelated script compile happens to run.

    Declaration
    public void PickedPipelineProfilePath_SurvivesASimulatedDomainReload()

    PrimaryActionOutcome_FailedRun_SurvivesASimulatedDomainReloadAsAFailure()

    A failed run must read just as truthfully after a reload as a successful one — the Done step is never reached on failure (the cursor stays on Create), but the outcome itself must not silently flip to "succeeded" merely because the reload dropped the live result.

    Declaration
    public void PrimaryActionOutcome_FailedRun_SurvivesASimulatedDomainReloadAsAFailure()

    PrimaryActionOutcome_SurvivesASimulatedDomainReload()

    Declaration
    public void PrimaryActionOutcome_SurvivesASimulatedDomainReload()

    TearDown()

    Declaration
    public void TearDown()
    In this article
    © 2026 Serenity. All Rights Reserved