mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* add support for code editor and builder * refactor cloudwatch migration * Add tooltip to editor field (#56) * add tooltip * add old tooltips * Bug bash feedback fixes (#58) * make ASC the default option * update sql preview whenever sql changes * don't allow queries without aggregation * set default value for aggregation * use new input field * cleanup * pr feedback * prevent unnecessary rerenders * use frame error instead of main error * remove not used snapshot * Use dimension filter in schema picker (#63) * use dimension key filter in group by and schema labels * add dimension filter also to code editor * add tests * fix build error * fix strict error * remove debug code * fix annotation editor (#64) * fix annotation editor * fix broken test * revert annotation backend change * PR feedback (#67) * pr feedback * removed dimension filter from group by * add spacing between common fields and rest * do not generate deep link for metric queries (#70) * update docs (#69) Co-authored-by: Erik Sundell <erik.sundell87@gmail.com> * fix lint problem caused by merge conflict Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
import React from 'react';
|
|
import { act, render, screen, waitFor } from '@testing-library/react';
|
|
import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../types';
|
|
import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource';
|
|
import { createArray, createGroupBy } from '../../__mocks__/sqlUtils';
|
|
import SQLGroupBy from './SQLGroupBy';
|
|
|
|
const { datasource } = setupMockedDataSource();
|
|
|
|
const makeSQLQuery = (sql?: SQLExpression): CloudWatchMetricsQuery => ({
|
|
queryMode: 'Metrics',
|
|
refId: '',
|
|
id: '',
|
|
region: 'us-east-1',
|
|
namespace: 'ec2',
|
|
dimensions: { somekey: 'somevalue' },
|
|
metricQueryType: MetricQueryType.Query,
|
|
metricEditorMode: MetricEditorMode.Builder,
|
|
sql: sql,
|
|
});
|
|
|
|
describe('Cloudwatch SQLGroupBy', () => {
|
|
const baseProps = {
|
|
query: makeSQLQuery(),
|
|
datasource,
|
|
onQueryChange: () => {},
|
|
};
|
|
|
|
it('should load dimension keys with an empty dimension filter in case no group bys exist', async () => {
|
|
const query = makeSQLQuery({
|
|
groupBy: undefined,
|
|
});
|
|
|
|
render(<SQLGroupBy {...baseProps} query={query} />);
|
|
act(async () => {
|
|
await waitFor(() =>
|
|
expect(datasource.getDimensionKeys).toHaveBeenCalledWith(query.namespace, query.region, {}, undefined)
|
|
);
|
|
});
|
|
});
|
|
it('should load dimension keys with a dimension filter in case a group bys exist', async () => {
|
|
const query = makeSQLQuery({
|
|
groupBy: createArray([createGroupBy('InstanceId'), createGroupBy('InstanceType')]),
|
|
});
|
|
|
|
render(<SQLGroupBy {...baseProps} query={query} />);
|
|
act(async () => {
|
|
expect(screen.getByText('InstanceId')).toBeInTheDocument();
|
|
expect(screen.getByText('InstanceType')).toBeInTheDocument();
|
|
|
|
await waitFor(() =>
|
|
expect(datasource.getDimensionKeys).toHaveBeenCalledWith(
|
|
query.namespace,
|
|
query.region,
|
|
{ InstanceId: null, InstanceType: null },
|
|
undefined
|
|
)
|
|
);
|
|
});
|
|
});
|
|
});
|