private/Start-AnsiConsoleLive.ps1
<# .SYNOPSIS Starts an ANSI console live renderable. .DESCRIPTION This function is required for mocking ansiconsole in unit tests that write objects to the console. .PARAMETER ScriptBlock The script block to execute while the live renderable is being rendered. #> function Start-AnsiConsoleLive { param ( [Parameter(Mandatory)] [Spectre.Console.Rendering.Renderable] $Data, [Parameter(Mandatory)] [scriptblock] $ScriptBlock ) $resultVariableName = "AnsiConsoleLiveResult-$([guid]::NewGuid())" New-Variable -Name $resultVariableName -Scope "Script" [Spectre.Console.AnsiConsole]::Live($Data).Start({ param ( [Spectre.Console.LiveDisplayContext] $Context ) Set-Variable -Name $resultVariableName -Value (& $ScriptBlock $Context) -Scope "Script" }) return Get-Variable -Name $resultVariableName -ValueOnly } |