mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
stackdriver: add unit tests to resolve unit function
This commit is contained in:
@@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user