123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import { DataQueryResponse, dateMath } from '@grafana/data';
- import { setDataSourceSrv } from '@grafana/runtime';
- import { addDataLinksToLogsResponse } from './datalinks';
- describe('addDataLinksToLogsResponse', () => {
- it('should add data links to response', async () => {
- const mockResponse: DataQueryResponse = {
- data: [
- {
- fields: [
- {
- name: '@message',
- config: {},
- },
- {
- name: '@xrayTraceId',
- config: {},
- },
- ],
- refId: 'A',
- },
- ],
- };
- const mockOptions: any = {
- targets: [
- {
- refId: 'A',
- expression: 'stats count(@message) by bin(1h)',
- logGroupNames: ['fake-log-group-one', 'fake-log-group-two'],
- region: 'us-east-1',
- },
- ],
- };
- const time = {
- from: dateMath.parse('2016-12-31 15:00:00Z', false)!,
- to: dateMath.parse('2016-12-31 16:00:00Z', false)!,
- };
- setDataSourceSrv({
- async get() {
- return {
- name: 'Xray',
- };
- },
- } as any);
- await addDataLinksToLogsResponse(
- mockResponse,
- mockOptions,
- { ...time, raw: time },
- (s) => s ?? '',
- (v) => [v] ?? [],
- (r) => r,
- 'xrayUid'
- );
- expect(mockResponse).toMatchObject({
- data: [
- {
- fields: [
- {
- name: '@message',
- config: {
- links: [
- {
- url: "https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logs-insights:queryDetail=~(end~'2016-12-31T16*3a00*3a00.000Z~start~'2016-12-31T15*3a00*3a00.000Z~timeType~'ABSOLUTE~tz~'UTC~editorString~'stats*20count*28*40message*29*20by*20bin*281h*29~isLiveTail~false~source~(~'fake-log-group-one~'fake-log-group-two))",
- title: 'View in CloudWatch console',
- },
- ],
- },
- },
- {
- name: '@xrayTraceId',
- config: {
- links: [
- {
- url: '',
- title: 'Xray',
- internal: {
- query: { query: '${__value.raw}', region: 'us-east-1', queryType: 'getTrace' },
- datasourceUid: 'xrayUid',
- datasourceName: 'Xray',
- },
- },
- ],
- },
- },
- ],
- refId: 'A',
- },
- ],
- });
- });
- });
|