using Sdt.Cli; using Xunit; namespace DevTool.Tests; public sealed class CliParserTests { [Fact] public void Parse_SetupApply_RecognizesSubcommandAndFlags() { var invocation = CliParser.Parse(["setup", "apply", "--safe", "--json", "--project-root", "C:\\repo"]); Assert.Equal("setup", invocation.Command); Assert.Equal("apply", invocation.Subcommand); Assert.True(invocation.HasOption("--safe")); Assert.True(invocation.HasOption("--json")); Assert.Equal("C:\\repo", invocation.GetOption("--project-root")); } [Fact] public void Parse_Run_PreservesPositionalWorkflowSelector() { var invocation = CliParser.Parse(["run", "build-app", "--env-profile", "release"]); Assert.Equal("run", invocation.Command); Assert.Null(invocation.Subcommand); Assert.Single(invocation.Positionals); Assert.Equal("build-app", invocation.Positionals[0]); Assert.Equal("release", invocation.GetOption("--env-profile")); } }