3
0
mirror of https://github.com/grafana/grafana.git synced 2025-02-25 18:55:37 -06:00
grafana/public/app/plugins/datasource/cloudwatch/__mocks__/logsTestContext.ts
2023-12-07 16:30:37 -05:00

94 lines
2.6 KiB
TypeScript

import { Observable, of } from 'rxjs';
import {
DataFrame,
createDataFrame,
dataFrameToJSON,
DataSourceInstanceSettings,
DataSourceJsonData,
DataSourceRef,
ScopedVars,
DataSourceApi,
DataQuery,
DataQueryRequest,
DataQueryResponse,
TestDataSourceResponse,
} from '@grafana/data';
import { GetDataSourceListFilters, setDataSourceSrv, toDataQueryResponse } from '@grafana/runtime';
import { CloudWatchLogsQueryStatus } from '../types';
import { meta, setupMockedDataSource } from './CloudWatchDataSource';
export function setupForLogs() {
function envelope(frame: DataFrame) {
return toDataQueryResponse({ data: { results: { a: { refId: 'a', frames: [dataFrameToJSON(frame)] } } } });
}
const { datasource, queryMock } = setupMockedDataSource();
const startQueryFrame: DataFrame = createDataFrame({ fields: [{ name: 'queryId', values: ['queryid'] }] });
queryMock.mockReturnValueOnce(of(envelope(startQueryFrame)));
const logsFrame: DataFrame = createDataFrame({
fields: [
{
name: '@message',
values: ['something'],
},
{
name: '@timestamp',
values: [1],
},
{
name: '@xrayTraceId',
values: ['1-613f0d6b-3e7cb34375b60662359611bd'],
},
],
meta: { custom: { Status: CloudWatchLogsQueryStatus.Complete } },
});
queryMock.mockReturnValueOnce(of(envelope(logsFrame)));
setDataSourceSrv({
async get() {
const ds: DataSourceApi = {
name: 'Xray',
id: 0,
type: '',
uid: '',
query: function (
request: DataQueryRequest<DataQuery>
): Observable<DataQueryResponse> | Promise<DataQueryResponse> {
throw new Error('Function not implemented.');
},
testDatasource: function (): Promise<TestDataSourceResponse> {
throw new Error('Function not implemented.');
},
meta: meta,
getRef: function (): DataSourceRef {
throw new Error('Function not implemented.');
},
};
return ds;
},
getList: function (
filters?: GetDataSourceListFilters | undefined
): Array<DataSourceInstanceSettings<DataSourceJsonData>> {
throw new Error('Function not implemented.');
},
getInstanceSettings: function (
ref?: string | DataSourceRef | null | undefined,
scopedVars?: ScopedVars | undefined
): DataSourceInstanceSettings<DataSourceJsonData> | undefined {
throw new Error('Function not implemented.');
},
reload: function (): void {
throw new Error('Function not implemented.');
},
});
return { datasource, queryMock };
}