62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
import { DataTrail } from '../DataTrail';
|
|
|
|
import { MetricDatasourceHelper } from './MetricDatasourceHelper';
|
|
|
|
jest.mock('@grafana/runtime', () => ({
|
|
...jest.requireActual('@grafana/runtime'),
|
|
config: {
|
|
...jest.requireActual('@grafana/runtime').config,
|
|
publicDashboardAccessToken: '123',
|
|
},
|
|
}));
|
|
|
|
const NATIVE_HISTOGRAM = 'test_metric';
|
|
describe('MetricDatasourceHelper', () => {
|
|
let metricDatasourceHelper: MetricDatasourceHelper;
|
|
|
|
beforeEach(() => {
|
|
const trail = new DataTrail({});
|
|
metricDatasourceHelper = new MetricDatasourceHelper(trail);
|
|
metricDatasourceHelper['_classicHistograms'] = {
|
|
test_metric_bucket: 1,
|
|
};
|
|
});
|
|
|
|
afterEach(() => {
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
describe('isNativeHistogram', () => {
|
|
it('should return false if metric is not provided', async () => {
|
|
const result = await metricDatasourceHelper.isNativeHistogram('');
|
|
expect(result).toBe(false);
|
|
});
|
|
|
|
it('should return true if metric is a native histogram', async () => {
|
|
const result = await metricDatasourceHelper.isNativeHistogram(NATIVE_HISTOGRAM);
|
|
expect(result).toBe(true);
|
|
});
|
|
|
|
it('should return false if metric is not a native histogram', async () => {
|
|
const result = await metricDatasourceHelper.isNativeHistogram('non_histogram_metric');
|
|
expect(result).toBe(false);
|
|
});
|
|
|
|
it('should return false if metric is a classic histogram', async () => {
|
|
const result = await metricDatasourceHelper.isNativeHistogram('test_metric_bucket');
|
|
expect(result).toBe(false);
|
|
});
|
|
|
|
it('should return true if metric is a native histogram and has metadata but does not have a classic histogram to compare to', async () => {
|
|
metricDatasourceHelper._metricsMetadata = {
|
|
solo_native_histogram: {
|
|
type: 'histogram',
|
|
help: 'test',
|
|
},
|
|
};
|
|
const result = await metricDatasourceHelper.isNativeHistogram('solo_native_histogram');
|
|
expect(result).toBe(true);
|
|
});
|
|
});
|
|
});
|