fix: initialize selected runtime for live playout
This commit is contained in:
@@ -70,7 +70,7 @@ public sealed class LegacyFirstRunSetupNativeContractTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BothFolderSelectionsValidateOnlyCanonicalPaths()
|
||||
public void BothFolderSelectionsValidateCanonicalPathsAndTheSelectedDatabaseIni()
|
||||
{
|
||||
var setup = File.ReadAllText(Path.Combine(
|
||||
AppRoot,
|
||||
@@ -84,8 +84,11 @@ public sealed class LegacyFirstRunSetupNativeContractTests
|
||||
"LegacyOperatorSettingsFolderKind.Resource",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("MmoneyCoder.ini", setup, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("LegacyIniDatabaseOptionsLoader", setup,
|
||||
Assert.Contains(
|
||||
"Path.Combine(resource, \"MmoneyCoder.ini\")",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("LegacyIniDatabaseOptionsLoader", setup,
|
||||
StringComparison.Ordinal);
|
||||
var clearCuts = setup.IndexOf(
|
||||
"_cutsDirectory = null;",
|
||||
@@ -116,29 +119,78 @@ public sealed class LegacyFirstRunSetupNativeContractTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetupPersistsOnlyTheSelectedPathsWithoutStartingAChildProcess()
|
||||
public void SetupRunsTheVerifiedInitializerAndVerifiesEveryDurableOutput()
|
||||
{
|
||||
var setup = File.ReadAllText(Path.Combine(
|
||||
AppRoot,
|
||||
"FirstRunSetupWindow.xaml.cs"));
|
||||
|
||||
var saveSettings = RequiredIndex(
|
||||
setup,
|
||||
"var saved = store.Save(current with");
|
||||
var saveBinding = RequiredIndex(
|
||||
setup,
|
||||
"SaveRuntimeBinding(repositoryRoot, runtimeRoot);");
|
||||
Assert.True(saveSettings < saveBinding);
|
||||
Assert.Contains(
|
||||
"var store = new LegacyOperatorSettingsStore();",
|
||||
"await RunVerifiedSetupAsync(",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"SceneDirectory = cutsDirectory",
|
||||
"new ProcessStartInfo",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"ResourceDirectory = resourceDirectory",
|
||||
"UseShellExecute = false",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"CreateNoWindow = true",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"RedirectStandardOutput = true",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"RedirectStandardError = true",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"startInfo.ArgumentList.Add(value)",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"Initialize-ExistingDevelopmentPc.ps1",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"AddArgument(\"-SkipDatabaseProfile\")",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"AddArgument(\"-ConfigureDevelopmentLive\")",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"AddArgument(\"127.0.0.1\")",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"AddArgument(\"30001\")",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"AddArgument(\"-PinRegisteredK3D\")",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"DrainOutputAsync(process.StandardOutput)",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"DrainOutputAsync(process.StandardError)",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"loaded.Settings.SceneDirectory",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"loaded.Settings.ResourceDirectory",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
@@ -146,18 +198,21 @@ public sealed class LegacyFirstRunSetupNativeContractTests
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"File.Move(temporary, destination, overwrite: true);",
|
||||
"\"k3d-pins.local.json\"",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("ProcessStartInfo", setup, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("Process.Start", setup, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("RunSetupAsync", setup, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("powershell.exe", setup, StringComparison.OrdinalIgnoreCase);
|
||||
Assert.DoesNotContain("dotnet", setup, StringComparison.OrdinalIgnoreCase);
|
||||
Assert.DoesNotContain("ConfigureDevelopmentLive", setup,
|
||||
Assert.Contains(
|
||||
"\"playout.local.json\"",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"\"playout.development-live.local.json\"",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain(
|
||||
"Environment.SetEnvironmentVariable",
|
||||
setup,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("PinRegisteredK3D", setup, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("DatabaseIniPath", setup, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -180,6 +235,19 @@ public sealed class LegacyFirstRunSetupNativeContractTests
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SolutionDeclaresTheVisualStudioWinUiWorkload()
|
||||
{
|
||||
var configuration = File.ReadAllText(Path.Combine(
|
||||
RepositoryRoot,
|
||||
".vsconfig"));
|
||||
|
||||
Assert.Contains(
|
||||
"\"Microsoft.VisualStudio.Workload.Universal\"",
|
||||
configuration,
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AutomaticK3dPinningIsPersistentAndCannotApproveAChangedDll()
|
||||
{
|
||||
@@ -277,11 +345,4 @@ public sealed class LegacyFirstRunSetupNativeContractTests
|
||||
|
||||
throw new DirectoryNotFoundException("Repository root was not found.");
|
||||
}
|
||||
|
||||
private static int RequiredIndex(string value, string marker)
|
||||
{
|
||||
var index = value.IndexOf(marker, StringComparison.Ordinal);
|
||||
Assert.True(index >= 0, $"Required marker was not found: {marker}");
|
||||
return index;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user