mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Upgrade typescript and related packages (#27316)
* Chore: Upgrade typescript and related packages Closes #27115 * Apply suggestions from code review Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> * fixes some tests * Fix failing tests * Apply suggestions from code review Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com> Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
import { mount } from 'enzyme';
|
||||
// @ts-ignore
|
||||
import RCCascader from 'rc-cascader';
|
||||
import React from 'react';
|
||||
import PromQlLanguageProvider, { DEFAULT_LOOKUP_METRICS_THRESHOLD } from '../language_provider';
|
||||
import PromQueryField, { groupMetricsByPrefix, RECORDING_RULES_GROUP } from './PromQueryField';
|
||||
import { ButtonCascader } from '@grafana/ui';
|
||||
import { DataSourceInstanceSettings } from '@grafana/data';
|
||||
import { PromOptions } from '../types';
|
||||
import { fireEvent, render, screen } from '@testing-library/react';
|
||||
|
||||
describe('PromQueryField', () => {
|
||||
beforeAll(() => {
|
||||
@@ -21,7 +20,7 @@ describe('PromQueryField', () => {
|
||||
},
|
||||
} as unknown) as DataSourceInstanceSettings<PromOptions>;
|
||||
|
||||
const queryField = mount(
|
||||
const queryField = render(
|
||||
<PromQueryField
|
||||
// @ts-ignore
|
||||
datasource={datasource}
|
||||
@@ -32,11 +31,11 @@ describe('PromQueryField', () => {
|
||||
/>
|
||||
);
|
||||
|
||||
expect(queryField.find(ButtonCascader).length).toBe(1);
|
||||
expect(queryField.getAllByRole('button')).toHaveLength(1);
|
||||
});
|
||||
|
||||
it('renders a disabled metrics chooser if lookups are disabled in datasource settings', () => {
|
||||
const queryField = mount(
|
||||
const queryField = render(
|
||||
<PromQueryField
|
||||
// @ts-ignore
|
||||
datasource={{ lookupsDisabled: true }}
|
||||
@@ -47,12 +46,8 @@ describe('PromQueryField', () => {
|
||||
/>
|
||||
);
|
||||
|
||||
expect(
|
||||
queryField
|
||||
.find(ButtonCascader)
|
||||
.find('button')
|
||||
.props().disabled
|
||||
).toBe(true);
|
||||
const bcButton = queryField.getByRole('button');
|
||||
expect(bcButton).toBeDisabled();
|
||||
});
|
||||
|
||||
it('refreshes metrics when the data source changes', async () => {
|
||||
@@ -68,7 +63,7 @@ describe('PromQueryField', () => {
|
||||
},
|
||||
} as unknown) as PromQlLanguageProvider;
|
||||
|
||||
const queryField = mount(
|
||||
const queryField = render(
|
||||
<PromQueryField
|
||||
// @ts-ignore
|
||||
datasource={{
|
||||
@@ -80,29 +75,36 @@ describe('PromQueryField', () => {
|
||||
history={[]}
|
||||
/>
|
||||
);
|
||||
await Promise.resolve();
|
||||
|
||||
const cascader = queryField.find<RCCascader>(RCCascader);
|
||||
cascader.simulate('click');
|
||||
const cascaderNode: HTMLElement = cascader.instance().getPopupDOMNode();
|
||||
|
||||
for (const item of Array.from(cascaderNode.getElementsByTagName('li'))) {
|
||||
expect(metrics.includes(item.innerHTML)).toBe(true);
|
||||
let cascader = await queryField.findByRole('button');
|
||||
fireEvent.keyDown(cascader, { keyCode: 40 });
|
||||
let listNodes = screen.getAllByRole('menuitem');
|
||||
for (const node of listNodes) {
|
||||
expect(metrics).toContain(node.innerHTML);
|
||||
}
|
||||
|
||||
const changedMetrics = ['baz', 'moo'];
|
||||
queryField.setProps({
|
||||
datasource: {
|
||||
languageProvider: {
|
||||
...languageProvider,
|
||||
metrics: changedMetrics,
|
||||
},
|
||||
},
|
||||
});
|
||||
await Promise.resolve();
|
||||
queryField.rerender(
|
||||
<PromQueryField
|
||||
datasource={{
|
||||
//@ts-ignore
|
||||
languageProvider: {
|
||||
...languageProvider,
|
||||
metrics: changedMetrics,
|
||||
},
|
||||
}}
|
||||
query={{ expr: '', refId: '' }}
|
||||
onRunQuery={() => {}}
|
||||
onChange={() => {}}
|
||||
history={[]}
|
||||
/>
|
||||
);
|
||||
|
||||
for (const item of Array.from(cascaderNode.getElementsByTagName('li'))) {
|
||||
expect(changedMetrics.includes(item.innerHTML)).toBe(true);
|
||||
cascader = await queryField.findByRole('button');
|
||||
fireEvent.keyDown(cascader, { keyCode: 40 });
|
||||
listNodes = screen.getAllByRole('menuitem');
|
||||
for (const node of listNodes) {
|
||||
expect(changedMetrics).toContain(node.innerHTML);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user