mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-06-07 09:54:50 -04:00
Workaround for Spectre parallelization issue in tests
This commit is contained in:
parent
ec0494c038
commit
28de1053f6
1 changed files with 25 additions and 8 deletions
|
@ -7,14 +7,31 @@ namespace DiscordChatExporter.Cli.Utils.Extensions
|
||||||
{
|
{
|
||||||
internal static class ConsoleExtensions
|
internal static class ConsoleExtensions
|
||||||
{
|
{
|
||||||
public static IAnsiConsole CreateAnsiConsole(this IConsole console) => AnsiConsole.Create(
|
private class NoopExclusivityMode : IExclusivityMode
|
||||||
|
{
|
||||||
|
public T Run<T>(Func<T> func) => func();
|
||||||
|
|
||||||
|
public Task<T> Run<T>(Func<Task<T>> func) => func();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IAnsiConsole CreateAnsiConsole(this IConsole console)
|
||||||
|
{
|
||||||
|
// Don't require exclusivity in tests.
|
||||||
|
// Workaround for: https://github.com/spectreconsole/spectre.console/issues/494
|
||||||
|
var exclusivityMode = console is FakeConsole
|
||||||
|
? new NoopExclusivityMode()
|
||||||
|
: null;
|
||||||
|
|
||||||
|
return AnsiConsole.Create(
|
||||||
new AnsiConsoleSettings
|
new AnsiConsoleSettings
|
||||||
{
|
{
|
||||||
Ansi = AnsiSupport.Detect,
|
Ansi = AnsiSupport.Detect,
|
||||||
ColorSystem = ColorSystemSupport.Detect,
|
ColorSystem = ColorSystemSupport.Detect,
|
||||||
Out = new AnsiConsoleOutput(console.Output)
|
Out = new AnsiConsoleOutput(console.Output),
|
||||||
|
ExclusivityMode = exclusivityMode
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static Progress CreateProgressTicker(this IConsole console) => console
|
public static Progress CreateProgressTicker(this IConsole console) => console
|
||||||
.CreateAnsiConsole()
|
.CreateAnsiConsole()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue