grafana/public/app/plugins/datasource/cloudwatch/__mocks__/ResourcesAPI.ts

32 lines
1.0 KiB
TypeScript
Raw Normal View History

import { getBackendSrv, setBackendSrv } from '@grafana/runtime';
import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv';
import { TemplateSrv } from 'app/features/templating/template_srv';
import { CustomVariableModel } from 'app/features/variables/types';
import { ResourcesAPI } from '../resources/ResourcesAPI';
import { CloudWatchSettings, setupMockedTemplateService } from './CloudWatchDataSource';
export function setupMockedResourcesAPI({
variables,
response,
getMock,
}: {
getMock?: jest.Mock;
response?: unknown;
variables?: CustomVariableModel[];
mockGetVariableName?: boolean;
} = {}) {
let templateService = variables ? setupMockedTemplateService(variables) : new TemplateSrv();
const timeSrv = getTimeSrv();
const api = new ResourcesAPI(CloudWatchSettings, templateService);
let resourceRequestMock = getMock ? getMock : jest.fn().mockReturnValue(response);
setBackendSrv({
...getBackendSrv(),
get: resourceRequestMock,
});
return { api, resourceRequestMock, templateService, timeSrv };
}