mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
* refactor(selectoptiontest): move helper function out of grafana/ui so testing-lib isn't in bundle * test(selectoptionintest): update import location of helper function * test(amroutes): put back missing selectOptionInTest helper * test(selectoptionintest): clean up remaining file imports / exports * test(queryeditor): fix failing import * refactor(grafana-ui): reuse selectOptionInTest in SelectBase test
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { render, screen } from '@testing-library/react';
|
|
import React from 'react';
|
|
import { selectOptionInTest, getSelectParent } from 'test/helpers/selectOptionInTest';
|
|
|
|
import { adHocBuilder } from '../shared/testing/builders';
|
|
|
|
import { AdHocVariableEditorUnConnected as AdHocVariableEditor } from './AdHocVariableEditor';
|
|
|
|
const props = {
|
|
extended: {
|
|
dataSources: [
|
|
{ text: 'Prometheus', value: null }, // default datasource
|
|
{ text: 'Loki', value: { type: 'loki-ds', uid: 'abc' } },
|
|
],
|
|
},
|
|
variable: adHocBuilder().withId('adhoc').withRootStateKey('key').withName('adhoc').build(),
|
|
onPropChange: jest.fn(),
|
|
|
|
// connected actions
|
|
initAdHocVariableEditor: jest.fn(),
|
|
changeVariableDatasource: jest.fn(),
|
|
};
|
|
|
|
describe('AdHocVariableEditor', () => {
|
|
beforeEach(() => {
|
|
props.changeVariableDatasource.mockReset();
|
|
});
|
|
|
|
it('has a datasource select menu', async () => {
|
|
render(<AdHocVariableEditor {...props} />);
|
|
|
|
const selectContainer = getSelectParent(screen.getByLabelText('Data source'));
|
|
expect(selectContainer).toHaveTextContent('Prometheus');
|
|
});
|
|
|
|
it('calls the callback when changing the datasource', async () => {
|
|
render(<AdHocVariableEditor {...props} />);
|
|
await selectOptionInTest(screen.getByLabelText('Data source'), 'Loki');
|
|
|
|
expect(props.changeVariableDatasource).toBeCalledWith(
|
|
{ type: 'adhoc', id: 'adhoc', rootStateKey: 'key' },
|
|
{ type: 'loki-ds', uid: 'abc' }
|
|
);
|
|
});
|
|
|
|
it('renders informational text', () => {
|
|
const extended = {
|
|
...props.extended,
|
|
infoText: "Here's a message that should help you",
|
|
};
|
|
render(<AdHocVariableEditor {...props} extended={extended} />);
|
|
|
|
const alert = screen.getByText("Here's a message that should help you");
|
|
expect(alert).toBeInTheDocument();
|
|
});
|
|
});
|