@@ -102,3 +102,114 @@ test("snapshot test: all instances, network alarms", () => {
102102 expect ( numAlarmsCreated ) . toBe ( 2 ) ;
103103 expect ( Template . fromStack ( stack ) ) . toMatchSnapshot ( ) ;
104104} ) ;
105+
106+ test ( "snapshot test: ASG, network alarms" , ( ) => {
107+ const stack = new Stack ( ) ;
108+
109+ const scope = new TestMonitoringScope ( stack , "Scope" ) ;
110+
111+ let numAlarmsCreated = 0 ;
112+
113+ const monitoring = new EC2Monitoring ( scope , {
114+ alarmFriendlyName : "EC2" ,
115+ autoScalingGroup : AutoScalingGroup . fromAutoScalingGroupName (
116+ stack ,
117+ "DummyASG" ,
118+ "DummyASG" ,
119+ ) ,
120+ addNetworkInTotalBytesExceedThresholdAlarm : {
121+ WARNING : {
122+ maxNetworkInBytes : 100 ,
123+ period : Duration . days ( 1 ) ,
124+ } ,
125+ } ,
126+ addNetworkOutTotalBytesExceedThresholdAlarm : {
127+ ERROR : {
128+ maxNetworkOutBytes : 200 ,
129+ period : Duration . days ( 4 ) ,
130+ } ,
131+ } ,
132+ useCreatedAlarms : {
133+ consume ( alarms : AlarmWithAnnotation [ ] ) {
134+ numAlarmsCreated = alarms . length ;
135+ } ,
136+ } ,
137+ } ) ;
138+
139+ addMonitoringDashboardsToStack ( stack , monitoring ) ;
140+ expect ( numAlarmsCreated ) . toBe ( 2 ) ;
141+ expect ( Template . fromStack ( stack ) ) . toMatchSnapshot ( ) ;
142+ } ) ;
143+
144+ test ( "snapshot test: instance filter, network alarms" , ( ) => {
145+ const stack = new Stack ( ) ;
146+
147+ const scope = new TestMonitoringScope ( stack , "Scope" ) ;
148+
149+ let numAlarmsCreated = 0 ;
150+
151+ const monitoring = new EC2Monitoring ( scope , {
152+ alarmFriendlyName : "EC2" ,
153+ instanceIds : [ "instanceId1" , "instanceId2" ] ,
154+ addNetworkInTotalBytesExceedThresholdAlarm : {
155+ WARNING : {
156+ maxNetworkInBytes : 100 ,
157+ period : Duration . days ( 1 ) ,
158+ } ,
159+ } ,
160+ addNetworkOutTotalBytesExceedThresholdAlarm : {
161+ ERROR : {
162+ maxNetworkOutBytes : 200 ,
163+ period : Duration . days ( 4 ) ,
164+ } ,
165+ } ,
166+ useCreatedAlarms : {
167+ consume ( alarms : AlarmWithAnnotation [ ] ) {
168+ numAlarmsCreated = alarms . length ;
169+ } ,
170+ } ,
171+ } ) ;
172+
173+ addMonitoringDashboardsToStack ( stack , monitoring ) ;
174+ expect ( numAlarmsCreated ) . toBe ( 4 ) ;
175+ expect ( Template . fromStack ( stack ) ) . toMatchSnapshot ( ) ;
176+ } ) ;
177+
178+ test ( "snapshot test: instance filter + ASG, network alarms" , ( ) => {
179+ const stack = new Stack ( ) ;
180+
181+ const scope = new TestMonitoringScope ( stack , "Scope" ) ;
182+
183+ let numAlarmsCreated = 0 ;
184+
185+ const monitoring = new EC2Monitoring ( scope , {
186+ alarmFriendlyName : "EC2" ,
187+ instanceIds : [ "instanceId1" , "instanceId2" ] ,
188+ autoScalingGroup : AutoScalingGroup . fromAutoScalingGroupName (
189+ stack ,
190+ "DummyASG" ,
191+ "DummyASG" ,
192+ ) ,
193+ addNetworkInTotalBytesExceedThresholdAlarm : {
194+ WARNING : {
195+ maxNetworkInBytes : 100 ,
196+ period : Duration . days ( 1 ) ,
197+ } ,
198+ } ,
199+ addNetworkOutTotalBytesExceedThresholdAlarm : {
200+ ERROR : {
201+ maxNetworkOutBytes : 200 ,
202+ period : Duration . days ( 4 ) ,
203+ } ,
204+ } ,
205+ useCreatedAlarms : {
206+ consume ( alarms : AlarmWithAnnotation [ ] ) {
207+ numAlarmsCreated = alarms . length ;
208+ } ,
209+ } ,
210+ } ) ;
211+
212+ addMonitoringDashboardsToStack ( stack , monitoring ) ;
213+ expect ( numAlarmsCreated ) . toBe ( 4 ) ;
214+ expect ( Template . fromStack ( stack ) ) . toMatchSnapshot ( ) ;
215+ } ) ;
0 commit comments