feat: add two-folder first-run playout setup
This commit is contained in:
@@ -342,11 +342,11 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
sourceOnlyMessage.Attribute("Condition")?.Value,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"source-only DryRun",
|
||||
"safe first-run setup app",
|
||||
sourceOnlyMessage.Attribute("Text")?.Value,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"Initialize-ExistingDevelopmentPc.ps1",
|
||||
"select the existing Cuts and Res folders",
|
||||
sourceOnlyMessage.Attribute("Text")?.Value,
|
||||
StringComparison.Ordinal);
|
||||
|
||||
@@ -434,7 +434,7 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
element => element.Attribute("Condition") is not null);
|
||||
|
||||
Assert.Equal("'$(LegacyRuntimeSourceRoot)' == ''", sourceRoot.Attribute("Condition")!.Value);
|
||||
Assert.Contains("MBN_STOCK_N\\MBN_STOCK_N\\bin\\Debug", sourceRoot.Value,
|
||||
Assert.Contains(".first-run-runtime-not-configured-0F72B3C8", sourceRoot.Value,
|
||||
StringComparison.Ordinal);
|
||||
|
||||
var target = Assert.Single(
|
||||
@@ -787,7 +787,19 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
|
||||
Assert.Contains("& dotnet build $ProjectPath -c Debug '-p:Platform=x64'",
|
||||
Assert.Contains("& $DotNetPath build $ProjectPath",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"'-p:LegacyRuntimeAssetsMode=Required'",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"$runtimeRootProperty = \"-p:LegacyRuntimeSourceRoot=$ExpectedRuntimeRoot\"",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"Get-Command -Name 'dotnet.exe' -CommandType Application",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
@@ -808,23 +820,31 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
var runtimeWrite = initializer.LastIndexOf(
|
||||
"Set-RuntimeBindingAtomically",
|
||||
StringComparison.Ordinal);
|
||||
var pinWrite = initializer.LastIndexOf(
|
||||
"Write-ProtectedUtf8TextAtomically",
|
||||
StringComparison.Ordinal);
|
||||
var databaseWrite = initializer.LastIndexOf(
|
||||
"Copy-DatabaseProfileAtomically",
|
||||
StringComparison.Ordinal);
|
||||
var build = initializer.LastIndexOf(
|
||||
"Invoke-DebugBuildAndVerify",
|
||||
StringComparison.Ordinal);
|
||||
var cleanup = initializer.LastIndexOf(
|
||||
"-Path $rollbackRoot",
|
||||
var finalK3dVerification = initializer.LastIndexOf(
|
||||
"$finalNativeHash = (",
|
||||
StringComparison.Ordinal);
|
||||
var liveWrite = initializer.LastIndexOf(
|
||||
"& $liveInitializerPath @liveArguments",
|
||||
StringComparison.Ordinal);
|
||||
Assert.True(runtimeWrite >= 0);
|
||||
Assert.True(databaseWrite > runtimeWrite);
|
||||
Assert.True(build > databaseWrite);
|
||||
Assert.True(cleanup > build);
|
||||
Assert.True(liveWrite > cleanup);
|
||||
var cleanup = initializer.LastIndexOf(
|
||||
"-Path $rollbackRoot",
|
||||
StringComparison.Ordinal);
|
||||
Assert.True(pinWrite >= 0);
|
||||
Assert.True(build > pinWrite);
|
||||
Assert.True(databaseWrite > build);
|
||||
Assert.True(finalK3dVerification > databaseWrite);
|
||||
Assert.True(liveWrite > finalK3dVerification);
|
||||
Assert.True(runtimeWrite > liveWrite);
|
||||
Assert.True(cleanup > runtimeWrite);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -856,6 +876,26 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
"$Description rollback did not restore the exact bytes and ACL.",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"'Local\\MBN_STOCK_WEBVIEW.ExistingDevelopmentPcInitialization.v1'",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"Another existing-development-PC initialization is already running.",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"Development Live base configuration rollback failed:",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"The durable pin remains at",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"anchor could not be restored:",
|
||||
initializer,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"Set-UserOnlyDirectoryAcl -Path $rollbackRoot",
|
||||
initializer,
|
||||
@@ -968,8 +1008,11 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
var buildVerification = initializer.LastIndexOf(
|
||||
"Invoke-DebugBuildAndVerify",
|
||||
StringComparison.Ordinal);
|
||||
var setupCleanup = initializer.LastIndexOf(
|
||||
"-Path $rollbackRoot",
|
||||
var pinIssue = initializer.LastIndexOf(
|
||||
"Write-ProtectedUtf8TextAtomically",
|
||||
StringComparison.Ordinal);
|
||||
var finalK3dVerification = initializer.LastIndexOf(
|
||||
"$finalNativeHash = (",
|
||||
StringComparison.Ordinal);
|
||||
var liveIssue = initializer.LastIndexOf(
|
||||
"$liveResults = @(& $liveInitializerPath @liveArguments)",
|
||||
@@ -977,14 +1020,24 @@ public sealed class LegacyRuntimeAssetDeploymentContractTests
|
||||
var liveJsonVerification = initializer.LastIndexOf(
|
||||
"-ExpectedJson ([string] $livePreflight.AuthorizationJson)",
|
||||
StringComparison.Ordinal);
|
||||
var bindingCommit = initializer.LastIndexOf(
|
||||
"Set-RuntimeBindingAtomically",
|
||||
StringComparison.Ordinal);
|
||||
var setupCleanup = initializer.LastIndexOf(
|
||||
"-Path $rollbackRoot",
|
||||
StringComparison.Ordinal);
|
||||
var failClosedLiveRemoval = initializer.LastIndexOf(
|
||||
"Remove-DevelopmentLiveAuthorizationFailClosed",
|
||||
StringComparison.Ordinal);
|
||||
Assert.True(firstPersistentLiveInvalidation >= 0);
|
||||
Assert.True(pinIssue >= 0);
|
||||
Assert.True(pinIssue < firstPersistentLiveInvalidation);
|
||||
Assert.True(firstPersistentLiveInvalidation < setupDirectoryCreation);
|
||||
Assert.True(buildVerification < setupCleanup);
|
||||
Assert.True(setupCleanup < liveIssue);
|
||||
Assert.True(setupDirectoryCreation < buildVerification);
|
||||
Assert.True(buildVerification < finalK3dVerification);
|
||||
Assert.True(finalK3dVerification < liveIssue);
|
||||
Assert.True(liveIssue < liveJsonVerification);
|
||||
Assert.True(liveJsonVerification < bindingCommit);
|
||||
Assert.True(bindingCommit < setupCleanup);
|
||||
Assert.True(liveJsonVerification < failClosedLiveRemoval);
|
||||
Assert.Contains(
|
||||
"Development Live initializer returned unexpected success-stream output.",
|
||||
|
||||
Reference in New Issue
Block a user