mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			411 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			411 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
import { Page } from '@playwright/test';
 | 
						|
 | 
						|
import { test, expect, E2ESelectorGroups, DashboardPage, DashboardPageArgs } from '@grafana/plugin-e2e';
 | 
						|
 | 
						|
import testDashboard from '../dashboards/DashboardWithAllConditionalRendering.json';
 | 
						|
 | 
						|
test.use({
 | 
						|
  featureToggles: {
 | 
						|
    kubernetesDashboards: true,
 | 
						|
    dashboardNewLayouts: true,
 | 
						|
    dashboardUndoRedo: true,
 | 
						|
    groupByVariable: true,
 | 
						|
  },
 | 
						|
  viewport: { width: 1920, height: 1080 },
 | 
						|
});
 | 
						|
 | 
						|
test.describe('Dashboard - Conditional Rendering - Load and Change', { tag: ['@dashboards'] }, () => {
 | 
						|
  let uid: string;
 | 
						|
 | 
						|
  const loadDashboard = async (
 | 
						|
    page: Page,
 | 
						|
    gotoDashboardPage: (args: DashboardPageArgs) => Promise<DashboardPage>,
 | 
						|
    options?: { from?: string; to?: string; myVariable?: string }
 | 
						|
  ) => {
 | 
						|
    const params: DashboardPageArgs = { uid };
 | 
						|
 | 
						|
    if (options?.from && options?.to) {
 | 
						|
      params.timeRange = {
 | 
						|
        from: options.from,
 | 
						|
        to: options.to,
 | 
						|
      };
 | 
						|
    }
 | 
						|
 | 
						|
    if (options?.myVariable) {
 | 
						|
      params.queryParams = new URLSearchParams();
 | 
						|
      params.queryParams.set('var-myVariable', options.myVariable);
 | 
						|
    }
 | 
						|
 | 
						|
    const dashboardPage = await gotoDashboardPage(params);
 | 
						|
    await expect(page.getByText(testDashboard.spec.title)).toBeVisible();
 | 
						|
    await page.waitForLoadState('networkidle');
 | 
						|
    return dashboardPage;
 | 
						|
  };
 | 
						|
 | 
						|
  const fillVariable = async (page: Page, dashboardPage: DashboardPage, selectors: E2ESelectorGroups, text: string) => {
 | 
						|
    const variable = dashboardPage
 | 
						|
      .getByGrafanaSelector(
 | 
						|
        selectors.pages.Dashboard.SubMenu.submenuItemLabels(testDashboard.spec.variables[0].spec.name)
 | 
						|
      )
 | 
						|
      .locator('..')
 | 
						|
      .locator('input');
 | 
						|
    await variable.click();
 | 
						|
    await variable.clear();
 | 
						|
    await variable.fill(text);
 | 
						|
    await variable.press('Enter');
 | 
						|
    await page.waitForLoadState('networkidle');
 | 
						|
  };
 | 
						|
 | 
						|
  const setTimeRange = async (
 | 
						|
    page: Page,
 | 
						|
    dashboardPage: DashboardPage,
 | 
						|
    selectors: E2ESelectorGroups,
 | 
						|
    from: string,
 | 
						|
    to: string
 | 
						|
  ) => {
 | 
						|
    await dashboardPage.getByGrafanaSelector(selectors.components.TimePicker.openButton).click();
 | 
						|
    const fromField = dashboardPage.getByGrafanaSelector(selectors.components.TimePicker.fromField);
 | 
						|
    await fromField.click();
 | 
						|
    await fromField.fill(from);
 | 
						|
    const toField = dashboardPage.getByGrafanaSelector(selectors.components.TimePicker.toField);
 | 
						|
    await toField.click();
 | 
						|
    await toField.fill(to);
 | 
						|
    await dashboardPage.getByGrafanaSelector(selectors.components.TimePicker.applyTimeRange).click();
 | 
						|
    await page.waitForLoadState('networkidle');
 | 
						|
  };
 | 
						|
 | 
						|
  test.beforeAll(async ({ request }) => {
 | 
						|
    const response = await request.post('/apis/dashboard.grafana.app/v2beta1/namespaces/stacks-12345/dashboards', {
 | 
						|
      data: {
 | 
						|
        metadata: {
 | 
						|
          annotations: {
 | 
						|
            'grafana.app/folder': '',
 | 
						|
            'grafana.app/grant-permissions': 'default',
 | 
						|
          },
 | 
						|
          generateName: 'ad',
 | 
						|
        },
 | 
						|
        spec: testDashboard.spec,
 | 
						|
      },
 | 
						|
    });
 | 
						|
    const responseBody = await response.json();
 | 
						|
    uid = responseBody.metadata.name;
 | 
						|
  });
 | 
						|
 | 
						|
  test.afterAll(async ({ request }) => {
 | 
						|
    if (uid) {
 | 
						|
      await request.delete(`/apis/dashboard.grafana.app/v1beta1/namespaces/default/dashboards/${uid}`);
 | 
						|
    }
 | 
						|
  });
 | 
						|
 | 
						|
  const getPanel = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups, title: string) =>
 | 
						|
    dashboardPage.getByGrafanaSelector(selectors.components.Panels.Panel.title(`Panel - ${title}`));
 | 
						|
 | 
						|
  const getPanelShowData = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - data');
 | 
						|
 | 
						|
  const getPanelHideData = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - data');
 | 
						|
 | 
						|
  const getPanelShowNoData = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - no data');
 | 
						|
 | 
						|
  const getPanelHideNoData = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - no data');
 | 
						|
 | 
						|
  const getPanelShowTimeRange = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - time range <7d');
 | 
						|
 | 
						|
  const getPanelHideTimeRange = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - time range <7d');
 | 
						|
 | 
						|
  const getPanelShowEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - variable - equals 1,2,3');
 | 
						|
 | 
						|
  const getPanelHideEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - variable - equals 1,2,3');
 | 
						|
 | 
						|
  const getPanelShowNotEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - variable - not equals 1,2,3');
 | 
						|
 | 
						|
  const getPanelHideNotEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - variable - not equals 1,2,3');
 | 
						|
 | 
						|
  const getPanelShowMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - variable - matches .*2.*');
 | 
						|
 | 
						|
  const getPanelHideMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - variable - matches .*2.*');
 | 
						|
 | 
						|
  const getPanelShowNotMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'show - variable - not matches .*2.*');
 | 
						|
 | 
						|
  const getPanelHideNotMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getPanel(dashboardPage, selectors, 'hide - variable - not matches .*2.*');
 | 
						|
 | 
						|
  const getRow = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups, title: string) =>
 | 
						|
    dashboardPage.getByGrafanaSelector(selectors.components.DashboardRow.title(`Row - ${title}`));
 | 
						|
 | 
						|
  const getRowShowTimeRange = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'show - time range <7d');
 | 
						|
 | 
						|
  const getRowHideTimeRange = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'hide - time range <7d');
 | 
						|
 | 
						|
  const getRowShowEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'show - variable - equals 1,2,3');
 | 
						|
 | 
						|
  const getRowHideEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'hide - variable - equals 1,2,3');
 | 
						|
 | 
						|
  const getRowShowNotEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'show - variable - not equals 1,2,3');
 | 
						|
 | 
						|
  const getRowHideNotEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'hide - variable - not equals 1,2,3');
 | 
						|
 | 
						|
  const getRowShowMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'show - variable - matches .*2.*');
 | 
						|
 | 
						|
  const getRowHideMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'hide - variable - matches .*2.*');
 | 
						|
 | 
						|
  const getRowShowNotMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'show - variable - not matches .*2.*');
 | 
						|
 | 
						|
  const getRowHideNotMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getRow(dashboardPage, selectors, 'hide - variable - not matches .*2.*');
 | 
						|
 | 
						|
  const getTab = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups, title: string) =>
 | 
						|
    dashboardPage.getByGrafanaSelector(selectors.components.Tab.title(`Tab - ${title}`));
 | 
						|
 | 
						|
  const getTabShowTimeRange = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'show - time range <7d');
 | 
						|
 | 
						|
  const getTabHideTimeRange = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'hide - time range <7d');
 | 
						|
 | 
						|
  const getTabShowEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'show - variable - equals 1,2,3');
 | 
						|
 | 
						|
  const getTabHideEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'hide - variable - equals 1,2,3');
 | 
						|
 | 
						|
  const getTabShowNotEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'show - variable - not equals 1,2,3');
 | 
						|
 | 
						|
  const getTabHideNotEquals = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'hide - variable - not equals 1,2,3');
 | 
						|
 | 
						|
  const getTabShowMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'show - variable - matches .*2.*');
 | 
						|
 | 
						|
  const getTabHideMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'hide - variable - matches .*2.*');
 | 
						|
 | 
						|
  const getTabShowNotMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'show - variable - not matches .*2.*');
 | 
						|
 | 
						|
  const getTabHideNotMatches = (dashboardPage: DashboardPage, selectors: E2ESelectorGroups) =>
 | 
						|
    getTab(dashboardPage, selectors, 'hide - variable - not matches .*2.*');
 | 
						|
 | 
						|
  test('Load without data', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage);
 | 
						|
 | 
						|
    await expect(getPanelShowData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideData(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelShowNoData(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideNoData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
 | 
						|
    await fillVariable(page, dashboardPage, selectors, '1,2,3,4');
 | 
						|
 | 
						|
    await expect(getPanelShowData(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelShowNoData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideNoData(dashboardPage, selectors)).toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load with data', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage, { myVariable: '1,2,3,4' });
 | 
						|
 | 
						|
    await expect(getPanelShowData(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelShowNoData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideNoData(dashboardPage, selectors)).toBeVisible();
 | 
						|
 | 
						|
    await fillVariable(page, dashboardPage, selectors, '');
 | 
						|
 | 
						|
    await expect(getPanelShowData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideData(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelShowNoData(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideNoData(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load without time range', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage);
 | 
						|
 | 
						|
    await expect(getPanelShowTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
 | 
						|
    await setTimeRange(page, dashboardPage, selectors, 'now-8d', 'now');
 | 
						|
 | 
						|
    await expect(getPanelShowTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load with time range', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage, { from: 'now-8d', to: 'now' });
 | 
						|
 | 
						|
    await expect(getPanelShowTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
 | 
						|
    await setTimeRange(page, dashboardPage, selectors, 'now-6h', 'now');
 | 
						|
 | 
						|
    await expect(getPanelShowTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowTimeRange(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideTimeRange(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load without variable equals/not equals', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage);
 | 
						|
 | 
						|
    await expect(getPanelShowEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelShowNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
 | 
						|
    await fillVariable(page, dashboardPage, selectors, '1,2,3');
 | 
						|
 | 
						|
    await expect(getPanelShowEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelShowNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load with variable equals/not equals', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage, { myVariable: '1,2,3' });
 | 
						|
 | 
						|
    await expect(getPanelShowEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelShowNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
 | 
						|
    await fillVariable(page, dashboardPage, selectors, '');
 | 
						|
 | 
						|
    await expect(getPanelShowEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelShowNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowNotEquals(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideNotEquals(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load without variable matches/not matches', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage);
 | 
						|
 | 
						|
    await expect(getPanelShowMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelShowNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
 | 
						|
    await fillVariable(page, dashboardPage, selectors, '1,2,3');
 | 
						|
 | 
						|
    await expect(getPanelShowMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelShowNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
  });
 | 
						|
 | 
						|
  test('Load with variable matches/not matches', async ({ page, gotoDashboardPage, selectors }) => {
 | 
						|
    const dashboardPage = await loadDashboard(page, gotoDashboardPage, { myVariable: '1,2,3' });
 | 
						|
 | 
						|
    await expect(getPanelShowMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelShowNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
 | 
						|
    await fillVariable(page, dashboardPage, selectors, '');
 | 
						|
 | 
						|
    await expect(getPanelShowMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getPanelHideMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelShowNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getPanelHideNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowShowMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getRowHideMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowShowNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getRowHideNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabShowMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
    await expect(getTabHideMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabShowNotMatches(dashboardPage, selectors)).toBeVisible();
 | 
						|
    await expect(getTabHideNotMatches(dashboardPage, selectors)).not.toBeVisible();
 | 
						|
  });
 | 
						|
});
 |