feat: add native runtime settings

This commit is contained in:
2026-07-21 12:07:18 +09:00
parent b6208c0971
commit fc4007d676
25 changed files with 3543 additions and 63 deletions

View File

@@ -95,6 +95,53 @@ public sealed class PlayoutOptionsLoaderTests
Assert.Equal("C:\\explicit-cuts", options.SceneDirectory);
}
[Fact]
public void ApplyOperatorAssetOverrides_ChangesOnlyNativeAssetRoots()
{
var options = new PlayoutOptions
{
Mode = PlayoutMode.Live,
Host = "protected-host",
SceneDirectory = "C:\\json-cuts",
LegacyBackgroundDirectory = "C:\\json-backgrounds",
TrustedLiveOutputEnabled = true,
TestSceneAllowlist = ["5001"]
};
PlayoutOptionsLoader.ApplyOperatorAssetOverrides(
options,
" C:\\operator-cuts ",
" C:\\operator-backgrounds ");
Assert.Equal("C:\\operator-cuts", options.SceneDirectory);
Assert.Equal("C:\\operator-backgrounds", options.LegacyBackgroundDirectory);
Assert.Equal(PlayoutMode.Live, options.Mode);
Assert.Equal("protected-host", options.Host);
Assert.True(options.TrustedLiveOutputEnabled);
Assert.Equal(["5001"], options.TestSceneAllowlist);
}
[Fact]
public void Load_EnvironmentAssetRootsOverrideNativeOperatorSelection()
{
using var environment = ClearedEnvironment()
.Set("MBN_STOCK_PLAYOUT_SCENE_DIRECTORY", "C:\\environment-cuts")
.Set(
"MBN_STOCK_PLAYOUT_LEGACY_BACKGROUND_DIRECTORY",
"C:\\environment-backgrounds");
using var file = TemporaryJsonFile.Missing();
var options = PlayoutOptionsLoader.Load(
file.Path,
"C:\\operator-cuts",
"C:\\operator-backgrounds");
Assert.Equal("C:\\environment-cuts", options.SceneDirectory);
Assert.Equal("C:\\environment-backgrounds", options.LegacyBackgroundDirectory);
Assert.Equal(PlayoutMode.DryRun, options.Mode);
Assert.False(options.TrustedLiveOutputEnabled);
}
[Fact]
public void Load_EnvironmentOverridesJson_ExceptFileOnlySafetyGates()
{