Commit 92f50ca3 by Erik Sundell

stackdriver: add unit tests to resolve unit function

parent 251bb09a
......@@ -86,7 +86,7 @@ export default class StackdriverDatasource {
return interpolatedGroupBys;
}
resolveUnit(targets: any[]) {
resolvePanelUnitFromTargets(targets: any[]) {
let unit = 'none';
if (targets.length > 0 && targets.every(t => t.unit === targets[0].unit)) {
if (stackdriverUnitMappings.hasOwnProperty(targets[0].unit)) {
......@@ -105,7 +105,7 @@ export default class StackdriverDatasource {
return;
}
const unit = this.resolveUnit(options.targets);
const unit = this.resolvePanelUnitFromTargets(options.targets);
queryRes.series.forEach(series => {
result.push({
target: series.name,
......
......@@ -219,4 +219,56 @@ describe('StackdriverDataSource', () => {
});
});
});
describe('unit parsing', () => {
let ds, res;
beforeEach(() => {
ds = new StackdriverDataSource(instanceSettings, {}, templateSrv, timeSrv);
});
describe('when theres only one target', () => {
describe('and the stackdriver unit doesnt have a corresponding grafana unit', () => {
beforeEach(() => {
res = ds.resolvePanelUnitFromTargets([{ unit: 'megaseconds' }]);
});
it('should return none', () => {
expect(res).toEqual('none');
});
});
describe('and the stackdriver unit has a corresponding grafana unit', () => {
beforeEach(() => {
res = ds.resolvePanelUnitFromTargets([{ unit: 'bit' }]);
});
it('should return bits', () => {
expect(res).toEqual('bits');
});
});
});
describe('when theres more than one target', () => {
describe('and all target units are the same', () => {
beforeEach(() => {
res = ds.resolvePanelUnitFromTargets([{ unit: 'bit' }, { unit: 'bit' }]);
});
it('should return bits', () => {
expect(res).toEqual('bits');
});
});
describe('and all target units are the same but doesnt have grafana mappings', () => {
beforeEach(() => {
res = ds.resolvePanelUnitFromTargets([{ unit: 'megaseconds' }, { unit: 'megaseconds' }]);
});
it('should return the default value - none', () => {
expect(res).toEqual('none');
});
});
describe('and all target units are not the same', () => {
beforeEach(() => {
res = ds.resolvePanelUnitFromTargets([{ unit: 'bit' }, { unit: 'min' }]);
});
it('should return the default value - none', () => {
expect(res).toEqual('none');
});
});
});
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment