Skip to content

Commit bf204bd

Browse files
Adding tests
1 parent ed2f291 commit bf204bd

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

Tests/Rules/DscTestsPresent.tests.ps1

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
Import-Module -Verbose PSScriptAnalyzer
2+
3+
$currentPath = Split-Path -Parent $MyInvocation.MyCommand.Path
4+
$ruleName = "PSDSCDscTestsPresent"
5+
6+
Describe "DscTestsPresent rule in class based resource" {
7+
8+
$testsPath = "$currentPath\DSCResources\MyDscResource\Tests"
9+
$classResourcePath = "$currentPath\DSCResources\MyDscResource\MyDscResource.psm1"
10+
11+
Context "When tests absent" {
12+
13+
$violations = Invoke-ScriptAnalyzer -ErrorAction SilentlyContinue $classResourcePath | Where-Object {$_.RuleName -eq $ruleName}
14+
$violationMessage = "No tests found for resource 'FileResource'"
15+
16+
It "has 1 missing test violation" {
17+
$violations.Count | Should Be 1
18+
}
19+
20+
It "has the correct description message" {
21+
$violations[0].Message | Should Match $violationMessage
22+
}
23+
}
24+
25+
Context "When tests present" {
26+
New-Item -Path $testsPath -ItemType Directory
27+
New-Item -Path "$testsPath\FileResource_Test.psm1" -ItemType File
28+
29+
$noViolations = Invoke-ScriptAnalyzer -ErrorAction SilentlyContinue $classResourcePath | Where-Object {$_.RuleName -eq $ruleName}
30+
31+
It "returns no violations" {
32+
$noViolations.Count | Should Be 0
33+
}
34+
35+
Remove-Item -Path $testsPath -Recurse -Force
36+
}
37+
}
38+
39+
Describe "DscTestsPresent rule in regular (non-class) based resource" {
40+
41+
$testsPath = "$currentPath\Tests"
42+
$resourcePath = "$currentPath\DSCResources\MSFT_WaitForAll\MSFT_WaitForAll.psm1"
43+
44+
Context "When tests absent" {
45+
46+
$violations = Invoke-ScriptAnalyzer -ErrorAction SilentlyContinue $resourcePath | Where-Object {$_.RuleName -eq $ruleName}
47+
$violationMessage = "No tests found for resource 'MSFT_WaitForAll'"
48+
49+
It "has 1 missing tests violation" {
50+
$violations.Count | Should Be 1
51+
}
52+
53+
It "has the correct description message" {
54+
$violations[0].Message | Should Match $violationMessage
55+
}
56+
}
57+
58+
Context "When tests present" {
59+
New-Item -Path $testsPath -ItemType Directory
60+
New-Item -Path "$testsPath\MSFT_WaitForAll_Test.psm1" -ItemType File
61+
62+
$noViolations = Invoke-ScriptAnalyzer -ErrorAction SilentlyContinue $resourcePath | Where-Object {$_.RuleName -eq $ruleName}
63+
64+
It "returns no violations" {
65+
$noViolations.Count | Should Be 0
66+
}
67+
68+
Remove-Item -Path $testsPath -Recurse -Force
69+
}
70+
}

0 commit comments

Comments
 (0)