mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
88 lines
3.3 KiB
TypeScript
88 lines
3.3 KiB
TypeScript
import { act, render, screen, waitFor } from '@testing-library/react';
|
|
import React from 'react';
|
|
|
|
import { LoadingState } from '@grafana/data';
|
|
|
|
import { setupMockedDataSource } from '../__mocks__/CloudWatchDataSource';
|
|
import { RequestMock } from '../__mocks__/Request';
|
|
import { validLogsQuery } from '../__mocks__/queries';
|
|
import { CloudWatchLogsQuery } from '../types';
|
|
|
|
import { CloudWatchLink } from './CloudWatchLink';
|
|
|
|
describe('CloudWatchLink', () => {
|
|
it('generates a link with log group names', async () => {
|
|
const ds = setupMockedDataSource();
|
|
|
|
const { rerender } = render(
|
|
<CloudWatchLink query={validLogsQuery} datasource={ds.datasource} panelData={undefined} />
|
|
);
|
|
|
|
await waitFor(() => {
|
|
expect(screen.getByText('CloudWatch Logs Insights').closest('a')).toHaveAttribute('href', '');
|
|
});
|
|
|
|
await act(async () => {
|
|
rerender(
|
|
<CloudWatchLink
|
|
query={validLogsQuery}
|
|
datasource={ds.datasource}
|
|
panelData={{
|
|
timeRange: RequestMock.range,
|
|
request: RequestMock,
|
|
state: LoadingState.Done,
|
|
series: [],
|
|
}}
|
|
/>
|
|
);
|
|
});
|
|
|
|
await waitFor(() => {
|
|
expect(screen.getByText('CloudWatch Logs Insights').closest('a')).toHaveAttribute(
|
|
'href',
|
|
"https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logs-insights:queryDetail=~(end~'2016-12-31T16*3a00*3a00.000Z~start~'2016-12-31T15*3a00*3a00.000Z~timeType~'ABSOLUTE~tz~'UTC~editorString~'fields*20*40timestamp*2c*20*40message*20*7c*20sort*20*40timestamp*20desc*20*7c*20limit*2025~isLiveTail~false~source~(~'group-A~'group-B))"
|
|
);
|
|
});
|
|
});
|
|
|
|
it('generates a link with log group names', async () => {
|
|
const ds = setupMockedDataSource();
|
|
const query: CloudWatchLogsQuery = {
|
|
...validLogsQuery,
|
|
logGroupNames: undefined,
|
|
logGroups: [
|
|
{ arn: 'arn:aws:logs:us-east-1:111111111111:log-group:/aws/lambda/test1', name: '/aws/lambda/test1' },
|
|
{ arn: 'arn:aws:logs:us-east-1:111111111111:log-group:/aws/lambda/test2', name: '/aws/lambda/test2' },
|
|
],
|
|
};
|
|
|
|
const { rerender } = render(<CloudWatchLink query={query} datasource={ds.datasource} panelData={undefined} />);
|
|
|
|
await waitFor(() => {
|
|
expect(screen.getByText('CloudWatch Logs Insights').closest('a')).toHaveAttribute('href', '');
|
|
});
|
|
|
|
await act(async () => {
|
|
rerender(
|
|
<CloudWatchLink
|
|
query={query}
|
|
datasource={ds.datasource}
|
|
panelData={{
|
|
timeRange: RequestMock.range,
|
|
request: RequestMock,
|
|
state: LoadingState.Done,
|
|
series: [],
|
|
}}
|
|
/>
|
|
);
|
|
});
|
|
|
|
await waitFor(() => {
|
|
expect(screen.getByText('CloudWatch Logs Insights').closest('a')).toHaveAttribute(
|
|
'href',
|
|
"https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logs-insights:queryDetail=~(end~'2016-12-31T16*3a00*3a00.000Z~start~'2016-12-31T15*3a00*3a00.000Z~timeType~'ABSOLUTE~tz~'UTC~editorString~'fields*20*40timestamp*2c*20*40message*20*7c*20sort*20*40timestamp*20desc*20*7c*20limit*2025~isLiveTail~false~source~(~'arn*3aaws*3alogs*3aus-east-1*3a111111111111*3alog-group*3a*2faws*2flambda*2ftest1~'arn*3aaws*3alogs*3aus-east-1*3a111111111111*3alog-group*3a*2faws*2flambda*2ftest2))"
|
|
);
|
|
});
|
|
});
|
|
});
|