mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
postgres/mysql: improved imports in unit tests (#75980)
* postgres/mysql: improved imports in unit tests * simpler mock approach
This commit is contained in:
@@ -9,20 +9,25 @@ import {
|
||||
FieldType,
|
||||
createDataFrame,
|
||||
} from '@grafana/data';
|
||||
import { FetchResponse, setBackendSrv } from '@grafana/runtime';
|
||||
import { backendSrv } from 'app/core/services/backend_srv'; // will use the version in __mocks__
|
||||
import { FetchResponse } from '@grafana/runtime';
|
||||
import { SQLQuery } from 'app/features/plugins/sql/types';
|
||||
import { makeVariable } from 'app/features/plugins/sql/utils/testHelpers';
|
||||
|
||||
import { MySqlDatasource } from '../MySqlDatasource';
|
||||
import { MySQLOptions } from '../types';
|
||||
|
||||
const fetchMock = jest.fn();
|
||||
jest.mock('@grafana/runtime', () => ({
|
||||
...jest.requireActual('@grafana/runtime'),
|
||||
getBackendSrv: () => ({
|
||||
fetch: fetchMock,
|
||||
}),
|
||||
}));
|
||||
|
||||
describe('MySQLDatasource', () => {
|
||||
const defaultRange = getDefaultTimeRange(); // it does not matter what value this has
|
||||
const setupTestContext = (response: unknown, templateSrv?: unknown) => {
|
||||
jest.clearAllMocks();
|
||||
setBackendSrv(backendSrv);
|
||||
const fetchMock = jest.spyOn(backendSrv, 'fetch');
|
||||
const instanceSettings = {
|
||||
jsonData: {
|
||||
defaultProject: 'testproject',
|
||||
|
||||
@@ -12,28 +12,44 @@ import {
|
||||
LoadingState,
|
||||
createDataFrame,
|
||||
} from '@grafana/data';
|
||||
import { FetchResponse } from '@grafana/runtime';
|
||||
import { backendSrv } from 'app/core/services/backend_srv'; // will use the version in __mocks__
|
||||
import {
|
||||
BackendSrv,
|
||||
DataSourceSrv,
|
||||
FetchResponse,
|
||||
getBackendSrv,
|
||||
setBackendSrv,
|
||||
getDataSourceSrv,
|
||||
setDataSourceSrv,
|
||||
} from '@grafana/runtime';
|
||||
import { QueryFormat, SQLQuery } from 'app/features/plugins/sql/types';
|
||||
import { makeVariable } from 'app/features/plugins/sql/utils/testHelpers';
|
||||
|
||||
import { PostgresDatasource } from './datasource';
|
||||
import { PostgresOptions } from './types';
|
||||
|
||||
jest.mock('@grafana/runtime', () => ({
|
||||
...jest.requireActual('@grafana/runtime'),
|
||||
getBackendSrv: () => backendSrv,
|
||||
}));
|
||||
const backendSrv: BackendSrv = {
|
||||
// this will get mocked below, it only needs to exist
|
||||
fetch: () => undefined,
|
||||
} as unknown as BackendSrv; // we cast it so that we do not have to implement all the methods
|
||||
|
||||
jest.mock('@grafana/runtime/src/services', () => ({
|
||||
...jest.requireActual('@grafana/runtime/src/services'),
|
||||
getBackendSrv: () => backendSrv,
|
||||
getDataSourceSrv: () => {
|
||||
return {
|
||||
// we type this as `any` to not have to define the whole type
|
||||
const fakeDataSourceSrv: DataSourceSrv = {
|
||||
getInstanceSettings: () => ({ id: 8674 }),
|
||||
};
|
||||
},
|
||||
}));
|
||||
} as unknown as DataSourceSrv;
|
||||
|
||||
let origBackendSrv: BackendSrv;
|
||||
let origDataSourceSrv: DataSourceSrv;
|
||||
beforeAll(() => {
|
||||
origBackendSrv = getBackendSrv();
|
||||
origDataSourceSrv = getDataSourceSrv();
|
||||
setBackendSrv(backendSrv);
|
||||
setDataSourceSrv(fakeDataSourceSrv);
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
setBackendSrv(origBackendSrv);
|
||||
setDataSourceSrv(origDataSourceSrv);
|
||||
});
|
||||
|
||||
describe('PostgreSQLDatasource', () => {
|
||||
const defaultRange = getDefaultTimeRange(); // it does not matter what value this has
|
||||
|
||||
Reference in New Issue
Block a user