From dbc07827cfa206aefff43b6211f39e04bed2eb99 Mon Sep 17 00:00:00 2001 From: Masaori Koshiba Date: Sun, 19 Apr 2015 23:40:48 +0900 Subject: [PATCH] Add a basic test of KairosDBDatasource --- .../test/specs/kairosdb-datasource-specs.js | 63 +++++++++++++++++++ public/test/test-main.js | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 public/test/specs/kairosdb-datasource-specs.js diff --git a/public/test/specs/kairosdb-datasource-specs.js b/public/test/specs/kairosdb-datasource-specs.js new file mode 100644 index 00000000000..43004656573 --- /dev/null +++ b/public/test/specs/kairosdb-datasource-specs.js @@ -0,0 +1,63 @@ +define([ + 'helpers', + 'plugins/datasource/kairosdb/datasource' +], function(helpers) { + 'use strict'; + + describe('KairosDBDatasource', function() { + var ctx = new helpers.ServiceTestContext(); + + beforeEach(module('grafana.services')); + beforeEach(ctx.providePhase(['templateSrv'])); + beforeEach(ctx.createService('KairosDBDatasource')); + beforeEach(function() { + ctx.ds = new ctx.service({ url: ''}); + }); + + describe('When querying kairosdb with one target using query editor target spec', function() { + var results; + var urlExpected = "/api/v1/datapoints/query"; + var bodyExpected = { + metrics: [{ name: "test" }], + cache_time: 0, + start_relative: { + value: "1", + unit: "hours" + } + }; + + var query = { + range: { from: 'now-1h', to: 'now' }, + targets: [{ metric: 'test', downsampling: '(NONE)'}] + }; + + var response = { + queries: [{ + sample_size: 60, + results: [{ + name: "test", + values: [[1420070400000, 1]] + }] + }] + }; + + beforeEach(function() { + ctx.$httpBackend.expect('POST', urlExpected, bodyExpected).respond(response); + ctx.ds.query(query).then(function(data) { results = data; }); + ctx.$httpBackend.flush(); + }); + + it('should generate the correct query', function() { + ctx.$httpBackend.verifyNoOutstandingExpectation(); + }); + + it('should return series list', function() { + expect(results.data.length).to.be(1); + expect(results.data[0].target).to.be('test'); + }); + + }); + + }); + +}); diff --git a/public/test/test-main.js b/public/test/test-main.js index a38f8dca32b..b6fca85e9e5 100644 --- a/public/test/test-main.js +++ b/public/test/test-main.js @@ -128,6 +128,7 @@ require([ 'specs/influxQueryBuilder-specs', 'specs/influx09-querybuilder-specs', 'specs/influxdb-datasource-specs', + 'specs/kairosdb-datasource-specs', 'specs/graph-ctrl-specs', 'specs/graph-specs', 'specs/graph-tooltip-specs', @@ -150,4 +151,3 @@ require([ window.__karma__.start(); }); }); -