-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInvoke-{{Prefix}}Helper.tests.ps1
More file actions
68 lines (56 loc) · 2.34 KB
/
Copy pathInvoke-{{Prefix}}Helper.tests.ps1
File metadata and controls
68 lines (56 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
'PSUseDeclaredVarsMoreThanAssignments',
'',
Justification = 'Pester BeforeAll/It scope'
)]
param()
BeforeDiscovery {
# Build module if not running in psake build
if ($null -eq $Env:BHBuildOutput) {
$buildFilePath = Join-Path -Path $PSScriptRoot -ChildPath '..\..\..\build.psake.ps1'
$invokePsakeParameters = @{
TaskList = 'Build'
BuildFile = $buildFilePath
}
Invoke-psake @invokePsakeParameters
}
# PowerShellBuild outputs to Output/<ModuleName>/<Version>/
$projectRoot = Split-Path -Path (Split-Path -Path (Split-Path -Path $PSScriptRoot -Parent) -Parent) -Parent
$sourceManifest = Join-Path -Path $projectRoot -ChildPath "$Env:BHProjectName/$Env:BHProjectName.psd1"
$moduleVersion = (Import-PowerShellDataFile $sourceManifest).ModuleVersion
$Env:BHBuildOutput = Join-Path -Path $projectRoot -ChildPath "Output/$Env:BHProjectName/$moduleVersion"
}
BeforeAll {
# Import the module from the build output
$moduleManifestPath = Join-Path -Path $Env:BHBuildOutput -ChildPath "$Env:BHProjectName.psd1"
Get-Module $Env:BHProjectName | Remove-Module -Force -ErrorAction 'Ignore'
Import-Module $moduleManifestPath -Force -ErrorAction 'Stop'
}
InModuleScope -ModuleName $Env:BHProjectName -ScriptBlock {
Describe 'Invoke-{{Prefix}}Helper' {
Context 'Basic functionality' {
It 'Returns the processed message' {
$result = Invoke-{{Prefix}}Helper 'Test message'
$result | Should -Be 'Test message'
}
It 'Trims whitespace from message' {
$result = Invoke-{{Prefix}}Helper ' Test message '
$result | Should -Be 'Test message'
}
}
Context 'Parameter validation' {
It 'Throws on empty message' {
{ Invoke-{{Prefix}}Helper '' } | Should -Throw
}
It 'Throws on null message' {
{ Invoke-{{Prefix}}Helper $null } | Should -Throw
}
}
Context 'Verbose output' {
It 'Writes verbose messages when -Verbose is specified' {
$verboseOutput = Invoke-{{Prefix}}Helper 'Test' -Verbose 4>&1
$verboseOutput | Should -Not -BeNullOrEmpty
}
}
}
}