123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import { fireEvent, screen, within } from '@testing-library/react';
- import userEvent from '@testing-library/user-event';
- import { selectors } from '@grafana/e2e-selectors';
- import { ExploreId } from '../../../../types';
- import { withinExplore } from './setup';
- export const changeDatasource = async (name: string) => {
- const datasourcePicker = (await screen.findByLabelText(selectors.components.DataSourcePicker.container)).children[0];
- fireEvent.keyDown(datasourcePicker, { keyCode: 40 });
- const option = screen.getByText(name);
- fireEvent.click(option);
- };
- export const inputQuery = async (query: string, exploreId: ExploreId = ExploreId.left) => {
- const input = withinExplore(exploreId).getByRole('textbox', { name: 'query' });
- await userEvent.clear(input);
- await userEvent.type(input, query);
- };
- export const runQuery = async (exploreId: ExploreId = ExploreId.left) => {
- const explore = withinExplore(exploreId);
- const toolbar = within(explore.getByLabelText('Explore toolbar'));
- const button = toolbar.getByRole('button', { name: /run query/i });
- await userEvent.click(button);
- };
- export const openQueryHistory = async (exploreId: ExploreId = ExploreId.left) => {
- const selector = withinExplore(exploreId);
- const button = selector.getByRole('button', { name: 'Rich history button' });
- await userEvent.click(button);
- expect(await selector.findByPlaceholderText('Search queries')).toBeInTheDocument();
- };
- export const closeQueryHistory = async (exploreId: ExploreId = ExploreId.left) => {
- const closeButton = withinExplore(exploreId).getByRole('button', { name: 'Close query history' });
- await userEvent.click(closeButton);
- };
- export const switchToQueryHistoryTab = async (
- name: 'Settings' | 'Query History',
- exploreId: ExploreId = ExploreId.left
- ) => {
- await userEvent.click(withinExplore(exploreId).getByRole('tab', { name: `Tab ${name}` }));
- };
- export const selectStarredTabFirst = async (exploreId: ExploreId = ExploreId.left) => {
- const checkbox = withinExplore(exploreId).getByRole('checkbox', {
- name: 'Change the default active tab from “Query history” to “Starred”',
- });
- await userEvent.click(checkbox);
- };
- export const selectOnlyActiveDataSource = async (exploreId: ExploreId = ExploreId.left) => {
- const checkbox = withinExplore(exploreId).getByLabelText(/Only show queries for data source currently active.*/);
- await userEvent.click(checkbox);
- };
- export const starQueryHistory = (queryIndex: number, exploreId: ExploreId = ExploreId.left) => {
- invokeAction(queryIndex, 'Star query', exploreId);
- };
- export const commentQueryHistory = async (
- queryIndex: number,
- comment: string,
- exploreId: ExploreId = ExploreId.left
- ) => {
- await invokeAction(queryIndex, 'Add comment', exploreId);
- const input = withinExplore(exploreId).getByPlaceholderText('An optional description of what the query does.');
- await userEvent.clear(input);
- await userEvent.type(input, comment);
- await invokeAction(queryIndex, 'Submit button', exploreId);
- };
- export const deleteQueryHistory = (queryIndex: number, exploreId: ExploreId = ExploreId.left) => {
- invokeAction(queryIndex, 'Delete query', exploreId);
- };
- export const loadMoreQueryHistory = async (exploreId: ExploreId = ExploreId.left) => {
- const button = withinExplore(exploreId).getByRole('button', { name: 'Load more' });
- await userEvent.click(button);
- };
- const invokeAction = async (queryIndex: number, actionAccessibleName: string, exploreId: ExploreId) => {
- const selector = withinExplore(exploreId);
- const buttons = selector.getAllByRole('button', { name: actionAccessibleName });
- await userEvent.click(buttons[queryIndex]);
- };
|