mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 00:42:51 +08:00

Allow custom help providers * Version option will show in help even with a default command * Reserve `-v` and `--version` as special Spectre.Console command line arguments (nb. breaking change for Spectre.Console users who have a default command with a settings class that uses either of these switches). * Help writer correctly determines if trailing commands exist and whether to display them as optional or mandatory in the usage statement. * Ability to control the number of indirect commands to display in the help text when the command itself doesn't have any examples of its own. Defaults to 5 (for backward compatibility) but can be set to any integer or zero to disable completely. * Significant increase in unit test coverage for the help writer. * Minor grammatical improvements to website documentation.
97 lines
2.6 KiB
C#
97 lines
2.6 KiB
C#
namespace Spectre.Console.Tests.Unit.Cli;
|
|
|
|
public sealed partial class CommandAppTests
|
|
{
|
|
public sealed class Version
|
|
{
|
|
[Fact]
|
|
public void Should_Output_CLI_Version_To_The_Console()
|
|
{
|
|
// Given
|
|
var fixture = new CommandAppTester();
|
|
|
|
// When
|
|
var result = fixture.Run(Constants.VersionCommand);
|
|
|
|
// Then
|
|
result.Output.ShouldStartWith("Spectre.Cli version ");
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_Output_Application_Version_To_The_Console_With_No_Command()
|
|
{
|
|
// Given
|
|
var fixture = new CommandAppTester();
|
|
fixture.Configure(configurator =>
|
|
{
|
|
configurator.SetApplicationVersion("1.0");
|
|
});
|
|
|
|
// When
|
|
var result = fixture.Run("--version");
|
|
|
|
// Then
|
|
result.Output.ShouldBe("1.0");
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_Output_Application_Version_To_The_Console_With_Command()
|
|
{
|
|
// Given
|
|
var fixture = new CommandAppTester();
|
|
fixture.Configure(configurator =>
|
|
{
|
|
configurator.SetApplicationVersion("1.0");
|
|
|
|
configurator.AddCommand<EmptyCommand>("empty");
|
|
});
|
|
|
|
// When
|
|
var result = fixture.Run("empty", "--version");
|
|
|
|
// Then
|
|
result.Output.ShouldBe("1.0");
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_Output_Application_Version_To_The_Console_With_Default_Command()
|
|
{
|
|
// Given
|
|
var fixture = new CommandAppTester();
|
|
fixture.SetDefaultCommand<EmptyCommand>();
|
|
fixture.Configure(configurator =>
|
|
{
|
|
configurator.SetApplicationVersion("1.0");
|
|
});
|
|
|
|
// When
|
|
var result = fixture.Run("--version");
|
|
|
|
// Then
|
|
result.Output.ShouldBe("1.0");
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_Output_Application_Version_To_The_Console_With_Branch_Default_Command()
|
|
{
|
|
// Given
|
|
var fixture = new CommandAppTester();
|
|
fixture.Configure(configurator =>
|
|
{
|
|
configurator.SetApplicationVersion("1.0");
|
|
|
|
configurator.AddBranch<EmptyCommandSettings>("branch", branch =>
|
|
{
|
|
branch.SetDefaultCommand<EmptyCommand>();
|
|
});
|
|
});
|
|
|
|
// When
|
|
var result = fixture.Run("--version");
|
|
|
|
// Then
|
|
result.Output.ShouldBe("1.0");
|
|
}
|
|
}
|
|
}
|