fix(headless): complete connected movement gate

This commit is contained in:
Erik 2026-07-27 10:26:44 +02:00
parent fd9559a063
commit 3f3401257c
11 changed files with 756 additions and 48 deletions

View file

@ -1,3 +1,5 @@
using AcDream.Headless.Configuration;
namespace AcDream.Headless.Tests;
public sealed class HeadlessEntryPointTests
@ -17,10 +19,48 @@ public sealed class HeadlessEntryPointTests
Assert.Equal(0, exitCode);
Assert.Contains("acdream-headless", output.ToString());
Assert.Contains("Secrets are never accepted", output.ToString());
Assert.Contains("--password", output.ToString());
Assert.Equal(string.Empty, error.ToString());
}
[Fact]
public void RunCommandAcceptsDirectCredentialAliases()
{
HeadlessCommandLine command = HeadlessCommandLine.Parse(
[
"run",
"--config",
"bot.json",
"-user",
"testaccount",
"--password",
"fixture-password",
]);
Assert.Equal("testaccount", command.DirectCredentials?.User);
Assert.Equal(
"fixture-password",
command.DirectCredentials?.Password);
}
[Theory]
[InlineData("-user", "testaccount")]
[InlineData("--password", "fixture-password")]
public void DirectCredentialPairMustBeComplete(
string option,
string value)
{
Assert.Throws<HeadlessCommandLineException>(
() => HeadlessCommandLine.Parse(
[
"run",
"--config",
"bot.json",
option,
value,
]));
}
[Fact]
public void ValidateAcceptsStrictEmptyNoConnectConfiguration()
{