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

* Add support for C# 12 * Run all tests on all major .NET SDKs * Only build on Ubuntu * Do not build docs for pull requests * Add Cédric Luthi, and Frank Ray to authors * Drop netstandard2.0 for ImageSharp plugin
71 lines
1.8 KiB
C#
71 lines
1.8 KiB
C#
namespace Spectre.Console.Tests.Unit;
|
|
|
|
[ExpectationPath("AlternateScreen")]
|
|
public sealed class AlternateScreenTests
|
|
{
|
|
[Fact]
|
|
public void Should_Throw_If_Alternative_Buffer_Is_Not_Supported_By_Terminal()
|
|
{
|
|
// Given
|
|
var console = new TestConsole();
|
|
console.Profile.Capabilities.AlternateBuffer = false;
|
|
|
|
// When
|
|
var result = Record.Exception(() =>
|
|
{
|
|
console.WriteLine("Foo");
|
|
console.AlternateScreen(() =>
|
|
{
|
|
console.WriteLine("Bar");
|
|
});
|
|
});
|
|
|
|
// Then
|
|
result.ShouldNotBeNull();
|
|
result.Message.ShouldBe("Alternate buffers are not supported by your terminal.");
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_Throw_If_Ansi_Is_Not_Supported_By_Terminal()
|
|
{
|
|
// Given
|
|
var console = new TestConsole();
|
|
console.Profile.Capabilities.Ansi = false;
|
|
console.Profile.Capabilities.AlternateBuffer = true;
|
|
|
|
// When
|
|
var result = Record.Exception(() =>
|
|
{
|
|
console.WriteLine("Foo");
|
|
console.AlternateScreen(() =>
|
|
{
|
|
console.WriteLine("Bar");
|
|
});
|
|
});
|
|
|
|
// Then
|
|
result.ShouldNotBeNull();
|
|
result.Message.ShouldBe("Alternate buffers are not supported since your terminal does not support ANSI.");
|
|
}
|
|
|
|
[Fact]
|
|
[Expectation("Show")]
|
|
public async Task Should_Write_To_Alternate_Screen()
|
|
{
|
|
// Given
|
|
var console = new TestConsole();
|
|
console.EmitAnsiSequences = true;
|
|
console.Profile.Capabilities.AlternateBuffer = true;
|
|
|
|
// When
|
|
console.WriteLine("Foo");
|
|
console.AlternateScreen(() =>
|
|
{
|
|
console.WriteLine("Bar");
|
|
});
|
|
|
|
// Then
|
|
await Verifier.Verify(console.Output);
|
|
}
|
|
}
|