tests/events.Tests.ps1
& (Join-Path $PSScriptRoot '_setup.ps1') 'events' Describe -Skip 'Invoke-ListenTo' { AfterEach { 'TestEvent' | Invoke-StopListen } It 'can listen to custom events and trigger actions' { function Test-Callback {} $EventName = 'TestEvent' $Times = 5 Mock Test-Callback {} { Test-Callback } | Invoke-ListenTo $EventName 1..$Times | ForEach-Object { Invoke-FireEvent $EventName -Data 'test' } Assert-MockCalled Test-Callback -Times $Times } It 'can listen to custom events and trigger one-time action' { function Test-Callback {} $EventName = 'TestEvent' Mock Test-Callback {} { Test-Callback } | Invoke-ListenTo $EventName -Once 1..10 | ForEach-Object { Invoke-FireEvent $EventName -Data 'test' } Assert-MockCalled Test-Callback -Times 1 } } |