1+ Import-Module - Verbose PSScriptAnalyzer
2+ $directory = Split-Path - Parent $MyInvocation.MyCommand.Path
3+ $violations = Invoke-ScriptAnalyzer $directory \RuleSuppression.ps1
4+
5+ Describe " RuleSuppressionWithoutScope" {
6+ Context " Function" {
7+ It " Does not raise violations" {
8+ $suppression = $violations | Where-Object { $_.RuleName -eq " PSProvideVerboseMessage" }
9+ $suppression.Count | Should Be 0
10+ }
11+ }
12+
13+ Context " Class" {
14+ It " Does not raise violations" {
15+ $suppression = $violations | Where-Object {$_.RuleName -eq " PSAvoidUsingInvokeExpression" }
16+ $suppression.Count | Should Be 0
17+ }
18+ }
19+
20+ Context " FunctionInClass" {
21+ It " Does not raise violations" {
22+ $suppression = $violations | Where-Object {$_.RuleName -eq " PSAvoidUsingCmdletAliases" }
23+ $suppression.Count | Should Be 0
24+ }
25+ }
26+
27+ Context " Script" {
28+ It " Does not raise violations" {
29+ $suppression = $violations | Where-Object {$_.RuleName -eq " PSProvideCommentHelp" }
30+ $suppression.Count | Should Be 0
31+ }
32+ }
33+
34+ Context " RuleSuppressionID" {
35+ It " Only suppress violations for that ID" {
36+ $suppression = $violations | Where-Object {$_.RuleName -eq " PSAvoidUninitializedVariable" }
37+ $suppression.Count | Should Be 1
38+ }
39+ }
40+ }
41+
42+ Describe " RuleSuppressionWithScope" {
43+ Context " FunctionScope" {
44+ It " Does not raise violations" {
45+ $suppression = $violations | Where-Object {$_.RuleName -eq " PSAvoidUsingPositionalParameters" }
46+ $suppression.Count | Should Be 1
47+ }
48+ }
49+
50+ Context " ClassScope" {
51+ It " Does not raise violations" {
52+ $suppression = $violations | Where-Object {$_.RuleName -eq " PSAvoidUsingConvertToSecureStringWithPlainText" }
53+ $suppression.Count | Should Be 0
54+ }
55+ }
56+ }
0 commit comments