logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.Hub.Tests.Editor

    Classes

    SerenityHubStatusRowRegistryTests

    EditMode tests for SerenityHubStatusRowRegistry — the seam an assembly the Hub cannot reference (e.g. CreateGame, design ADR-1) uses to publish a status row, mirroring SerenityHubViewRegistry.

    SerenityHubStatusTests

    EditMode tests for the Slice 6.4 migration: BuildRows()'s wiring-health row no longer triggers SerenityProjectValidationRunner.RunAll synchronously — it reads SerenityHubValidationCache instead (spec §3 non-functional requirement; design ADR-7). Also covers BUG-05/EDT-02: Serenity.Hub.Infrastructure.Editor.SerenityHubStatus.BuildInstallationRow(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Func{Serenity.Hub.Infrastructure.Editor.SerenityHubStatusRow}})'s registry lookup test seam, using an injected providers dictionary rather than the real static SerenityHubStatusRowRegistry so both the "nothing registered" and "a provider is registered" branches are deterministic regardless of whether CreateGame's own registration ran in this domain.

    SerenityHubValidationRunnerRegistryTests

    EditMode tests for SerenityHubValidationRunnerRegistry — the seam an assembly the Hub cannot reference (e.g. Localization, design ADR-1) uses to publish a project validator, mirroring SerenityHubStatusRowRegistry.

    SerenityHubWindowTests

    Smoke-level EditMode coverage for SerenityHubWindow (spec §2, §11; design migration note).

    The window's CreateGUI tree, real UI Toolkit click/keyboard dispatch, pro/personal skin rendering, and the first-import auto-open flow are NOT assertable headless without a real, focused editor window — deferred to the manual verification pass (tasks 7.4). The window's managed state after Open() IS assertable headless, once the graphic-device errors it logs are declared as noise: see Serenity.Hub.Tests.Editor.SerenityHubWindowTests.IgnoreHeadlessGraphicDeviceErrors. What CreateGUI wires up (sidebar order, initial view, seven registered views) is already covered structurally: SerenityHubNavigator's own "first run defaults to Home" contract is unit-tested in Slice 5's SerenityHubNavigatorTests, and every individual view class has its own OnShow test coverage — this file only asserts what is specific to the window shell itself.

    SerenityProjectValidationRunnerLocalizationSeamTests

    EditMode tests for the one validator SerenityProjectValidationRunner resolves through SerenityHubValidationRunnerRegistry instead of calling directly: the Hub no longer references the Localization editor assembly (design ADR-1), so a project without that assembly — or a domain where its registration has not run — must skip the scan with a warning rather than throw. Drives the internal seam so both branches are deterministic regardless of whether Localization's own registration ran in the current domain.

    In this article
    © 2026 Serenity. All Rights Reserved