mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 11:42:19 +08:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { getBackendSrv } from '@grafana/runtime';
|
|
|
|
import { DatasourceAPIVersions } from './client';
|
|
|
|
jest.mock('@grafana/runtime', () => ({
|
|
getBackendSrv: jest.fn().mockReturnValue({
|
|
get: jest.fn(),
|
|
}),
|
|
config: {},
|
|
}));
|
|
|
|
describe('DatasourceAPIVersions', () => {
|
|
beforeEach(() => {
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
it('get', async () => {
|
|
const getMock = jest.fn().mockResolvedValue({
|
|
groups: [
|
|
{ name: 'testdata.datasource.grafana.app', preferredVersion: { version: 'v1' } },
|
|
{ name: 'prometheus.datasource.grafana.app', preferredVersion: { version: 'v2' } },
|
|
{ name: 'myorg-myplugin.datasource.grafana.app', preferredVersion: { version: 'v3' } },
|
|
],
|
|
});
|
|
getBackendSrv().get = getMock;
|
|
const apiVersions = new DatasourceAPIVersions();
|
|
expect(await apiVersions.get('testdata')).toBe('v1');
|
|
expect(await apiVersions.get('grafana-testdata-datasource')).toBe('v1');
|
|
expect(await apiVersions.get('prometheus')).toBe('v2');
|
|
expect(await apiVersions.get('graphite')).toBeUndefined();
|
|
expect(await apiVersions.get('myorg-myplugin-datasource')).toBe('v3');
|
|
expect(getMock).toHaveBeenCalledTimes(1);
|
|
expect(getMock).toHaveBeenCalledWith('/apis');
|
|
});
|
|
});
|