mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 07:32:12 +08:00
31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
import { renderHook } from '@testing-library/react';
|
|
|
|
import { DEFAULT_METRICS_QUERY } from '../defaultQueries';
|
|
import { CloudWatchMetricsQuery } from '../types';
|
|
|
|
import { migrateAliasPatterns } from './metricQueryMigrations';
|
|
import useMigratedMetricsQuery from './useMigratedMetricsQuery';
|
|
|
|
describe('usePrepareMetricsQuery', () => {
|
|
const DEFAULT_TEST_QUERY: CloudWatchMetricsQuery = { ...DEFAULT_METRICS_QUERY, refId: 'testId' };
|
|
describe('when there is no label', () => {
|
|
const testQuery: CloudWatchMetricsQuery = { ...DEFAULT_TEST_QUERY, alias: 'test' };
|
|
it('should replace label with alias and trigger onChangeQuery', async () => {
|
|
const expectedQuery: CloudWatchMetricsQuery = migrateAliasPatterns(testQuery);
|
|
const onChangeQuery = jest.fn();
|
|
const { result } = renderHook(() => useMigratedMetricsQuery(testQuery, onChangeQuery));
|
|
expect(onChangeQuery).toHaveBeenLastCalledWith(result.current);
|
|
expect(result.current).toEqual(expectedQuery);
|
|
});
|
|
});
|
|
describe('when query has a label', () => {
|
|
const testQuery: CloudWatchMetricsQuery = { ...DEFAULT_TEST_QUERY, label: 'test' };
|
|
it('should not replace label or trigger onChange', async () => {
|
|
const onChangeQuery = jest.fn();
|
|
const { result } = renderHook(() => useMigratedMetricsQuery(testQuery, onChangeQuery));
|
|
expect(result.current).toEqual(testQuery);
|
|
expect(onChangeQuery).toHaveBeenCalledTimes(0);
|
|
});
|
|
});
|
|
});
|