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