fix(launcher): close Campaign LA LA1 review findings

This commit is contained in:
Erik 2026-08-14 17:00:09 +02:00
parent 4edc122085
commit d511e4c348
12 changed files with 413 additions and 65 deletions

View file

@ -19,12 +19,18 @@ namespace AcDream.App.Tests.Configuration;
public sealed class SessionConfigurationSharedFixtureTests
{
[Fact]
public void AppReaderAcceptsTheSharedFixtureAndParsesTheFiveNewFields()
public void AppReaderAcceptsTheProductionShapedSharedFixture()
{
(SessionConfiguration configuration, SessionDescriptor session) =
SessionConfigurationLoader.Load(SharedFixturePath());
Assert.Equal(1, configuration.Version);
Assert.Equal(
"shared-fixture-dats",
configuration.Process?.Content?.DatDirectory);
Assert.Equal(
"shared-fixture-dats/acdream.pak",
configuration.Process?.Content?.PreparedAssetPath);
Assert.Equal("shared-fixture", session.Id);
Assert.Equal("127.0.0.1", session.Endpoint.Host);
Assert.Equal(9000, session.Endpoint.Port);
@ -34,9 +40,9 @@ public sealed class SessionConfigurationSharedFixtureTests
// the pinned contract's "parsed-and-ignored" clause.
Assert.Equal("idle", session.Policy?.Id);
Assert.Equal(
SessionCredentialProviderKind.Environment,
SessionCredentialProviderKind.StandardInput,
session.Credential.Provider);
Assert.Equal("SHARED_FIXTURE_PASSWORD", session.Credential.Reference);
Assert.Equal("session", session.Credential.Reference);
Assert.Equal(["ExamplePlugin", "AnotherPlugin"], session.Plugins);
Assert.Equal(

View file

@ -87,6 +87,27 @@ public sealed class LinuxPlatformBoundaryTests
Assert.Empty(offenders);
}
[Fact]
public void RuntimePlatformGuardHasOneDefinitionAndOneApprovedConsumer()
{
string app = AppSourceRoot();
string[] files = Directory
.EnumerateFiles(app, "*.cs", SearchOption.AllDirectories)
.Where(path => File.ReadAllText(path).Contains(
"RuntimePlatformGuard",
StringComparison.Ordinal))
.Select(path => Path.GetRelativePath(app, path).Replace('\\', '/'))
.OrderBy(static path => path, StringComparer.Ordinal)
.ToArray();
Assert.Equal(
[
"Credentials/AppCredentialResolver.cs",
"Platform/GraphicalHostPlatformServices.cs",
],
files);
}
[Fact]
public void SmokePluginCopyUsesRidAwarePortableBuildAndPublishPaths()
{

View file

@ -234,6 +234,26 @@ public sealed class RuntimeOptionsTests
Assert.Equal("testpassword", realValues.LivePass);
}
[Fact]
public void RecordPrintMembersRedactsTheLivePassword()
{
RuntimeOptions options = RuntimeOptions.Parse(
AnyDatDir,
Env(new()
{
["ACDREAM_LIVE"] = "1",
["ACDREAM_TEST_USER"] = "testaccount",
["ACDREAM_TEST_PASS"] = "top-secret-value",
}));
string printed = options.ToString();
Assert.DoesNotContain("top-secret-value", printed, StringComparison.Ordinal);
Assert.Contains("LivePass = <redacted>", printed, StringComparison.Ordinal);
Assert.Contains("LiveHost = 127.0.0.1", printed, StringComparison.Ordinal);
Assert.Contains("HasLiveCredentials = True", printed, StringComparison.Ordinal);
}
[Fact]
public void HasLiveCredentials_RequiresLiveModeAndBothUserAndPass()
{