1
+ var expect = require ( 'chai' ) . expect ;
2
+ var vmssWindowsAntiMalwareExt = require ( './vmssWindowsAntiMalwareExt' ) ;
3
+
4
+ const virtualMachineScaleSets = [
5
+ {
6
+ 'name' : 'test-vmss' ,
7
+ 'id' : '/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachineScaleSets/test-vmss' ,
8
+ 'type' : 'Microsoft.Compute/virtualMachineScaleSets' ,
9
+ 'virtualMachineProfile' : {
10
+ "storageProfile" : {
11
+ "osDisk" : {
12
+ "osType" : "windows" ,
13
+ } ,
14
+ } ,
15
+ 'extensionProfile' : {
16
+ 'extensions' : [
17
+ {
18
+ 'name' : 'iaasantimalware' ,
19
+ 'properties' : {
20
+ 'autoUpgradeMinorVersion' : false ,
21
+ 'publisher' : 'Microsoft.ManagedServices' ,
22
+ 'type' : 'AADSSHLoginForLinux' ,
23
+ 'typeHandlerVersion' : '1.0' ,
24
+ }
25
+ }
26
+ ]
27
+ }
28
+ }
29
+ } ,
30
+ {
31
+ 'name' : 'test-vmss' ,
32
+ 'id' : '/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachineScaleSets/test-vmss' ,
33
+ 'type' : 'Microsoft.Compute/virtualMachineScaleSets' ,
34
+ 'virtualMachineProfile' : {
35
+ "storageProfile" : {
36
+ "osDisk" : {
37
+ "osType" : "windows" ,
38
+ } ,
39
+ } ,
40
+ 'extensionProfile' : {
41
+ 'extensions' : [
42
+ {
43
+ 'name' : 'AADLoginForWindows' ,
44
+ 'properties' : {
45
+ 'autoUpgradeMinorVersion' : false ,
46
+ 'publisher' : 'Microsoft.ManagedServices' ,
47
+ 'type' : 'AADLoginForWindows' ,
48
+ 'typeHandlerVersion' : '1.0' ,
49
+ }
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ } ,
55
+ {
56
+ 'name' : 'test-vmss' ,
57
+ 'id' : '/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachineScaleSets/test-vmss' ,
58
+ 'type' : 'Microsoft.Compute/virtualMachineScaleSets' ,
59
+ 'virtualMachineProfile' : {
60
+ "storageProfile" : {
61
+ "osDisk" : {
62
+ "osType" : "windows" ,
63
+ } ,
64
+ } ,
65
+ 'extensionProfile' : {
66
+ 'extensions' : [ ]
67
+ }
68
+ }
69
+ }
70
+ ] ;
71
+
72
+ const createCache = ( virtualMachineScaleSets ) => {
73
+ let machine = { } ;
74
+ if ( virtualMachineScaleSets ) {
75
+ machine [ 'data' ] = virtualMachineScaleSets ;
76
+ }
77
+ return {
78
+ virtualMachineScaleSets : {
79
+ listAll : {
80
+ 'eastus' : machine
81
+ }
82
+ }
83
+ } ;
84
+ } ;
85
+
86
+ describe ( 'vmssWindowsAntiMalwareExt' , function ( ) {
87
+ describe ( 'run' , function ( ) {
88
+ it ( 'should give passing result if no virtual machine scale sets' , function ( done ) {
89
+ const cache = createCache ( [ ] ) ;
90
+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
91
+ expect ( results . length ) . to . equal ( 1 ) ;
92
+ expect ( results [ 0 ] . status ) . to . equal ( 0 ) ;
93
+ expect ( results [ 0 ] . message ) . to . include ( 'No existing Virtual Machine Scale Sets found' ) ;
94
+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
95
+ done ( ) ;
96
+ } ) ;
97
+ } ) ;
98
+
99
+ it ( 'should give unknown result if unable to query for virtual machine scale sets' , function ( done ) {
100
+ const cache = createCache ( ) ;
101
+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
102
+ expect ( results . length ) . to . equal ( 1 ) ;
103
+ expect ( results [ 0 ] . status ) . to . equal ( 3 ) ;
104
+ expect ( results [ 0 ] . message ) . to . include ( 'Unable to query for Virtual Machine Scale Sets' ) ;
105
+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
106
+ done ( ) ;
107
+ } ) ;
108
+ } ) ;
109
+
110
+ it ( 'should give passing result if windows Virtual Machine Scale Set has anti malware extension installed' , function ( done ) {
111
+ const cache = createCache ( [ virtualMachineScaleSets [ 0 ] ] ) ;
112
+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
113
+ expect ( results . length ) . to . equal ( 1 ) ;
114
+ expect ( results [ 0 ] . status ) . to . equal ( 0 ) ;
115
+ expect ( results [ 0 ] . message ) . to . include ( 'Windows Virtual Machine Scale Set has IaaS Antimalware extension installed' ) ;
116
+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
117
+ done ( ) ;
118
+ } ) ;
119
+ } ) ;
120
+ it ( 'should give failing result if Virtual Machine Scale Set does not have anti malware extension installed' , function ( done ) {
121
+ const cache = createCache ( [ virtualMachineScaleSets [ 1 ] ] ) ;
122
+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
123
+ expect ( results . length ) . to . equal ( 1 ) ;
124
+ expect ( results [ 0 ] . status ) . to . equal ( 2 ) ;
125
+ expect ( results [ 0 ] . message ) . to . include ( 'Windows Virtual Machine Scale Set does not have IaaS Antimalware extension installed' ) ;
126
+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
127
+ done ( ) ;
128
+ } ) ;
129
+ } ) ;
130
+ it ( 'should give failing result if no extensions installed' , function ( done ) {
131
+ const cache = createCache ( [ virtualMachineScaleSets [ 2 ] ] ) ;
132
+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
133
+ expect ( results . length ) . to . equal ( 1 ) ;
134
+ expect ( results [ 0 ] . status ) . to . equal ( 2 ) ;
135
+ expect ( results [ 0 ] . message ) . to . include ( 'No VMSS Extensions found' ) ;
136
+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
137
+ done ( ) ;
138
+ } ) ;
139
+ } ) ;
140
+ } ) ;
141
+ } ) ;
0 commit comments