|
1 | 1 | import { Stack } from '@aws-cdk/core';
|
2 | 2 | import { Test } from 'nodeunit';
|
3 |
| -import { Alarm, AlarmWidget, Color, GraphWidget, LegendPosition, LogQueryWidget, Metric, Shading, SingleValueWidget } from '../lib'; |
| 3 | +import { Alarm, AlarmWidget, Color, GraphWidget, LegendPosition, LogQueryWidget, Metric, Shading, SingleValueWidget, LogQueryVisualizationType } from '../lib'; |
4 | 4 |
|
5 | 5 | export = {
|
6 | 6 | 'add stacked property to graphs'(test: Test) {
|
@@ -142,6 +142,128 @@ export = {
|
142 | 142 | test.done();
|
143 | 143 | },
|
144 | 144 |
|
| 145 | + 'query result widget - bar'(test: Test) { |
| 146 | + // GIVEN |
| 147 | + const stack = new Stack(); |
| 148 | + const logGroup = { logGroupName: 'my-log-group' }; |
| 149 | + |
| 150 | + // WHEN |
| 151 | + const widget = new LogQueryWidget({ |
| 152 | + logGroupNames: [logGroup.logGroupName], |
| 153 | + view: LogQueryVisualizationType.BAR, |
| 154 | + queryLines: [ |
| 155 | + 'fields @message', |
| 156 | + 'filter @message like /Error/', |
| 157 | + ], |
| 158 | + }); |
| 159 | + |
| 160 | + // THEN |
| 161 | + test.deepEqual(stack.resolve(widget.toJson()), [{ |
| 162 | + type: 'log', |
| 163 | + width: 6, |
| 164 | + height: 6, |
| 165 | + properties: { |
| 166 | + view: 'bar', |
| 167 | + region: { Ref: 'AWS::Region' }, |
| 168 | + query: `SOURCE '${logGroup.logGroupName}' | fields @message\n| filter @message like /Error/`, |
| 169 | + }, |
| 170 | + }]); |
| 171 | + |
| 172 | + test.done(); |
| 173 | + }, |
| 174 | + |
| 175 | + 'query result widget - pie'(test: Test) { |
| 176 | + // GIVEN |
| 177 | + const stack = new Stack(); |
| 178 | + const logGroup = { logGroupName: 'my-log-group' }; |
| 179 | + |
| 180 | + // WHEN |
| 181 | + const widget = new LogQueryWidget({ |
| 182 | + logGroupNames: [logGroup.logGroupName], |
| 183 | + view: LogQueryVisualizationType.PIE, |
| 184 | + queryLines: [ |
| 185 | + 'fields @message', |
| 186 | + 'filter @message like /Error/', |
| 187 | + ], |
| 188 | + }); |
| 189 | + |
| 190 | + // THEN |
| 191 | + test.deepEqual(stack.resolve(widget.toJson()), [{ |
| 192 | + type: 'log', |
| 193 | + width: 6, |
| 194 | + height: 6, |
| 195 | + properties: { |
| 196 | + view: 'pie', |
| 197 | + region: { Ref: 'AWS::Region' }, |
| 198 | + query: `SOURCE '${logGroup.logGroupName}' | fields @message\n| filter @message like /Error/`, |
| 199 | + }, |
| 200 | + }]); |
| 201 | + |
| 202 | + test.done(); |
| 203 | + }, |
| 204 | + |
| 205 | + 'query result widget - line'(test: Test) { |
| 206 | + // GIVEN |
| 207 | + const stack = new Stack(); |
| 208 | + const logGroup = { logGroupName: 'my-log-group' } ; |
| 209 | + |
| 210 | + // WHEN |
| 211 | + const widget = new LogQueryWidget({ |
| 212 | + logGroupNames: [logGroup.logGroupName], |
| 213 | + view: LogQueryVisualizationType.LINE, |
| 214 | + queryLines: [ |
| 215 | + 'fields @message', |
| 216 | + 'filter @message like /Error/', |
| 217 | + ], |
| 218 | + }); |
| 219 | + |
| 220 | + // THEN |
| 221 | + test.deepEqual(stack.resolve(widget.toJson()), [{ |
| 222 | + type: 'log', |
| 223 | + width: 6, |
| 224 | + height: 6, |
| 225 | + properties: { |
| 226 | + view: 'timeSeries', |
| 227 | + stacked: false, |
| 228 | + region: { Ref: 'AWS::Region' }, |
| 229 | + query: `SOURCE '${logGroup.logGroupName}' | fields @message\n| filter @message like /Error/`, |
| 230 | + }, |
| 231 | + }]); |
| 232 | + |
| 233 | + test.done(); |
| 234 | + }, |
| 235 | + |
| 236 | + 'query result widget - stackedarea'(test: Test) { |
| 237 | + // GIVEN |
| 238 | + const stack = new Stack(); |
| 239 | + const logGroup = { logGroupName: 'my-log-group' }; |
| 240 | + |
| 241 | + // WHEN |
| 242 | + const widget = new LogQueryWidget({ |
| 243 | + logGroupNames: [logGroup.logGroupName], |
| 244 | + view: LogQueryVisualizationType.STACKEDAREA, |
| 245 | + queryLines: [ |
| 246 | + 'fields @message', |
| 247 | + 'filter @message like /Error/', |
| 248 | + ], |
| 249 | + }); |
| 250 | + |
| 251 | + // THEN |
| 252 | + test.deepEqual(stack.resolve(widget.toJson()), [{ |
| 253 | + type: 'log', |
| 254 | + width: 6, |
| 255 | + height: 6, |
| 256 | + properties: { |
| 257 | + view: 'timeSeries', |
| 258 | + stacked: true, |
| 259 | + region: { Ref: 'AWS::Region' }, |
| 260 | + query: `SOURCE '${logGroup.logGroupName}' | fields @message\n| filter @message like /Error/`, |
| 261 | + }, |
| 262 | + }]); |
| 263 | + |
| 264 | + test.done(); |
| 265 | + }, |
| 266 | + |
145 | 267 | 'alarm widget'(test: Test) {
|
146 | 268 | // GIVEN
|
147 | 269 | const stack = new Stack();
|
|
0 commit comments