mirror of
https://github.com/grafana/grafana.git
synced 2025-09-21 18:12:51 +08:00
77 lines
3.0 KiB
TypeScript
77 lines
3.0 KiB
TypeScript
import { waitFor } from '@testing-library/react';
|
|
|
|
import { ExploreId } from '../../../../types';
|
|
|
|
import { withinExplore } from './setup';
|
|
|
|
export const assertQueryHistoryExists = async (query: string, exploreId: ExploreId = ExploreId.left) => {
|
|
const selector = withinExplore(exploreId);
|
|
|
|
expect(await selector.findByText('1 queries')).toBeInTheDocument();
|
|
const queryItem = selector.getByLabelText('Query text');
|
|
expect(queryItem).toHaveTextContent(query);
|
|
};
|
|
|
|
export const assertQueryHistory = async (expectedQueryTexts: string[], exploreId: ExploreId = ExploreId.left) => {
|
|
const selector = withinExplore(exploreId);
|
|
await waitFor(() => {
|
|
expect(selector.getByText(new RegExp(`${expectedQueryTexts.length} queries`))).toBeInTheDocument();
|
|
const queryTexts = selector.getAllByLabelText('Query text');
|
|
expectedQueryTexts.forEach((expectedQueryText, queryIndex) => {
|
|
expect(queryTexts[queryIndex]).toHaveTextContent(expectedQueryText);
|
|
});
|
|
});
|
|
};
|
|
|
|
export const assertQueryHistoryComment = async (
|
|
expectedQueryComments: string[],
|
|
exploreId: ExploreId = ExploreId.left
|
|
) => {
|
|
const selector = withinExplore(exploreId);
|
|
await waitFor(() => {
|
|
expect(selector.getByText(new RegExp(`${expectedQueryComments.length} queries`))).toBeInTheDocument();
|
|
const queryComments = selector.getAllByLabelText('Query comment');
|
|
expectedQueryComments.forEach((expectedQueryText, queryIndex) => {
|
|
expect(queryComments[queryIndex]).toHaveTextContent(expectedQueryText);
|
|
});
|
|
});
|
|
};
|
|
|
|
export const assertQueryHistoryIsStarred = async (expectedStars: boolean[], exploreId: ExploreId = ExploreId.left) => {
|
|
const selector = withinExplore(exploreId);
|
|
const starButtons = selector.getAllByRole('button', { name: /Star query|Unstar query/ });
|
|
await waitFor(() =>
|
|
expectedStars.forEach((starred, queryIndex) => {
|
|
expect(starButtons[queryIndex]).toHaveAccessibleName(starred ? 'Unstar query' : 'Star query');
|
|
})
|
|
);
|
|
};
|
|
|
|
export const assertQueryHistoryTabIsSelected = (
|
|
tabName: 'Query history' | 'Starred' | 'Settings',
|
|
exploreId: ExploreId = ExploreId.left
|
|
) => {
|
|
expect(withinExplore(exploreId).getByRole('tab', { name: `Tab ${tabName}`, selected: true })).toBeInTheDocument();
|
|
};
|
|
|
|
export const assertDataSourceFilterVisibility = (visible: boolean, exploreId: ExploreId = ExploreId.left) => {
|
|
const filterInput = withinExplore(exploreId).queryByLabelText('Filter queries for data sources(s)');
|
|
if (visible) {
|
|
expect(filterInput).toBeInTheDocument();
|
|
} else {
|
|
expect(filterInput).not.toBeInTheDocument();
|
|
}
|
|
};
|
|
|
|
export const assertQueryHistoryElementsShown = (
|
|
shown: number,
|
|
total: number,
|
|
exploreId: ExploreId = ExploreId.left
|
|
) => {
|
|
expect(withinExplore(exploreId).queryByText(`Showing ${shown} of ${total}`)).toBeInTheDocument();
|
|
};
|
|
|
|
export const assertLoadMoreQueryHistoryNotVisible = (exploreId: ExploreId = ExploreId.left) => {
|
|
expect(withinExplore(exploreId).queryByRole('button', { name: 'Load more' })).not.toBeInTheDocument();
|
|
};
|