From 49d57cf5960d94ebad849b482ff63cdf7deba7d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 28 Sep 2015 14:16:03 +0200 Subject: [PATCH] feat(cloudwatch): uncommented tests, but they do not seemt to execute --- .../test/specs/cloudwatch-datasource-specs.js | 310 +++++++++--------- 1 file changed, 155 insertions(+), 155 deletions(-) diff --git a/public/test/specs/cloudwatch-datasource-specs.js b/public/test/specs/cloudwatch-datasource-specs.js index a92088d623b..3836d257bb7 100644 --- a/public/test/specs/cloudwatch-datasource-specs.js +++ b/public/test/specs/cloudwatch-datasource-specs.js @@ -1,155 +1,155 @@ -// define([ -// './helpers', -// 'app/plugins/datasource/cloudwatch/datasource', -// 'aws-sdk', -// ], function(helpers) { -// 'use strict'; -// -// describe('CloudWatchDatasource', function() { -// var ctx = new helpers.ServiceTestContext(); -// -// beforeEach(module('grafana.services')); -// beforeEach(module('grafana.controllers')); -// beforeEach(ctx.providePhase(['templateSrv'])); -// beforeEach(ctx.createService('CloudWatchDatasource')); -// beforeEach(function() { -// ctx.ds = new ctx.service({ -// jsonData: { -// defaultRegion: 'us-east-1', -// access: 'proxy' -// } -// }); -// }); -// -// describe('When performing CloudWatch query', function() { -// var requestParams; -// -// var query = { -// range: { from: 'now-1h', to: 'now' }, -// targets: [ -// { -// region: 'us-east-1', -// namespace: 'AWS/EC2', -// metricName: 'CPUUtilization', -// dimensions: { -// InstanceId: 'i-12345678' -// }, -// statistics: { -// Average: true -// }, -// period: 300 -// } -// ] -// }; -// -// var response = { -// Datapoints: [ -// { -// Average: 1, -// Timestamp: 'Wed Dec 31 1969 16:00:00 GMT-0800 (PST)' -// } -// ], -// Label: 'CPUUtilization' -// }; -// -// beforeEach(function() { -// ctx.ds.getCloudWatchClient = function() { -// return { -// getMetricStatistics: function(params, callback) { -// setTimeout(function() { -// requestParams = params; -// callback(null, response); -// }, 0); -// } -// }; -// }; -// }); -// -// it('should generate the correct query', function() { -// ctx.ds.query(query).then(function() { -// expect(requestParams.Namespace).to.be(query.targets[0].namespace); -// expect(requestParams.MetricName).to.be(query.targets[0].metricName); -// expect(requestParams.Dimensions[0].Name).to.be(Object.keys(query.targets[0].dimensions)[0]); -// expect(requestParams.Dimensions[0].Value).to.be(query.targets[0].dimensions[Object.keys(query.targets[0].dimensions)[0]]); -// expect(requestParams.Statistics).to.eql(Object.keys(query.targets[0].statistics)); -// expect(requestParams.Period).to.be(query.targets[0].period); -// }); -// }); -// -// it('should return series list', function() { -// ctx.ds.query(query).then(function(result) { -// var s = Object.keys(query.targets[0].statistics)[0]; -// expect(result.data[0].target).to.be(response.Label + s); -// expect(result.data[0].datapoints[0][0]).to.be(response.Datapoints[0][s]); -// }); -// }); -// }); -// -// describe('When performing CloudWatch metricFindQuery', function() { -// var requestParams; -// -// var response = { -// Metrics: [ -// { -// Namespace: 'AWS/EC2', -// MetricName: 'CPUUtilization', -// Dimensions: [ -// { -// Name: 'InstanceId', -// Value: 'i-12345678' -// } -// ] -// } -// ] -// }; -// -// beforeEach(function() { -// ctx.ds.getCloudWatchClient = function() { -// return { -// listMetrics: function(params, callback) { -// setTimeout(function() { -// requestParams = params; -// callback(null, response); -// }, 0); -// } -// }; -// }; -// }); -// -// it('should return suggest list for region()', function() { -// var query = 'region()'; -// ctx.ds.metricFindQuery(query).then(function(result) { -// expect(result).to.contain('us-east-1'); -// }); -// }); -// -// it('should return suggest list for namespace()', function() { -// var query = 'namespace()'; -// ctx.ds.metricFindQuery(query).then(function(result) { -// expect(result).to.contain('AWS/EC2'); -// }); -// }); -// -// it('should return suggest list for metrics()', function() { -// var query = 'metrics(AWS/EC2)'; -// ctx.ds.metricFindQuery(query).then(function(result) { -// expect(result).to.contain('CPUUtilization'); -// }); -// }); -// -// it('should return suggest list for dimension_keys()', function() { -// var query = 'dimension_keys(AWS/EC2)'; -// ctx.ds.metricFindQuery(query).then(function(result) { -// expect(result).to.contain('InstanceId'); -// }); -// }); -// -// it('should return suggest list for dimension_values()', function() { -// var query = 'dimension_values(us-east-1,AWS/EC2,CPUUtilization)'; -// ctx.ds.metricFindQuery(query).then(function(result) { -// expect(result).to.contain('InstanceId'); -// }); -// }); -// }); -// }); -// }); +define([ + './helpers', + 'app/plugins/datasource/cloudwatch/datasource', + 'aws-sdk', +], function(helpers) { + 'use strict'; + + describe('CloudWatchDatasource', function() { + var ctx = new helpers.ServiceTestContext(); + + beforeEach(module('grafana.services')); + beforeEach(module('grafana.controllers')); + beforeEach(ctx.providePhase(['templateSrv'])); + beforeEach(ctx.createService('CloudWatchDatasource')); + beforeEach(function() { + ctx.ds = new ctx.service({ + jsonData: { + defaultRegion: 'us-east-1', + access: 'proxy' + } + }); + }); + + describe('When performing CloudWatch query', function() { + var requestParams; + + var query = { + range: { from: 'now-1h', to: 'now' }, + targets: [ + { + region: 'us-east-1', + namespace: 'AWS/EC2', + metricName: 'CPUUtilization', + dimensions: { + InstanceId: 'i-12345678' + }, + statistics: { + Average: true + }, + period: 300 + } + ] + }; + + var response = { + Datapoints: [ + { + Average: 1, + Timestamp: 'Wed Dec 31 1969 16:00:00 GMT-0800 (PST)' + } + ], + Label: 'CPUUtilization' + }; + + beforeEach(function() { + ctx.ds.getCloudWatchClient = function() { + return { + getMetricStatistics: function(params, callback) { + setTimeout(function() { + requestParams = params; + callback(null, response); + }, 0); + } + }; + }; + }); + + it('should generate the correct query', function() { + ctx.ds.query(query).then(function() { + expect(requestParams.Namespace).to.be(query.targets[0].namespace); + expect(requestParams.MetricName).to.be(query.targets[0].metricName); + expect(requestParams.Dimensions[0].Name).to.be(Object.keys(query.targets[0].dimensions)[0]); + expect(requestParams.Dimensions[0].Value).to.be(query.targets[0].dimensions[Object.keys(query.targets[0].dimensions)[0]]); + expect(requestParams.Statistics).to.eql(Object.keys(query.targets[0].statistics)); + expect(requestParams.Period).to.be(query.targets[0].period); + }); + }); + + it('should return series list', function() { + ctx.ds.query(query).then(function(result) { + var s = Object.keys(query.targets[0].statistics)[0]; + expect(result.data[0].target).to.be(response.Label + s); + expect(result.data[0].datapoints[0][0]).to.be(response.Datapoints[0][s]); + }); + }); + }); + + describe('When performing CloudWatch metricFindQuery', function() { + var requestParams; + + var response = { + Metrics: [ + { + Namespace: 'AWS/EC2', + MetricName: 'CPUUtilization', + Dimensions: [ + { + Name: 'InstanceId', + Value: 'i-12345678' + } + ] + } + ] + }; + + beforeEach(function() { + ctx.ds.getCloudWatchClient = function() { + return { + listMetrics: function(params, callback) { + setTimeout(function() { + requestParams = params; + callback(null, response); + }, 0); + } + }; + }; + }); + + it('should return suggest list for region()', function() { + var query = 'region()'; + ctx.ds.metricFindQuery(query).then(function(result) { + expect(result).to.contain('us-east-1'); + }); + }); + + it('should return suggest list for namespace()', function() { + var query = 'namespace()'; + ctx.ds.metricFindQuery(query).then(function(result) { + expect(result).to.contain('AWS/EC2'); + }); + }); + + it('should return suggest list for metrics()', function() { + var query = 'metrics(AWS/EC2)'; + ctx.ds.metricFindQuery(query).then(function(result) { + expect(result).to.contain('CPUUtilization'); + }); + }); + + it('should return suggest list for dimension_keys()', function() { + var query = 'dimension_keys(AWS/EC2)'; + ctx.ds.metricFindQuery(query).then(function(result) { + expect(result).to.contain('InstanceId'); + }); + }); + + it('should return suggest list for dimension_values()', function() { + var query = 'dimension_values(us-east-1,AWS/EC2,CPUUtilization)'; + ctx.ds.metricFindQuery(query).then(function(result) { + expect(result).to.contain('InstanceId'); + }); + }); + }); + }); +});