mirror of https://github.com/buster-so/buster.git
78 lines
3.5 KiB
TypeScript
78 lines
3.5 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
test.describe.serial('Metric chart updates', () => {
|
|
test('Metric can change to be a table', async ({ page }) => {
|
|
await page.goto('http://localhost:3000/app/home');
|
|
await page.getByRole('link', { name: 'Metrics', exact: true }).click();
|
|
await page.getByRole('link', { name: 'Total Unique Products Sold' }).click();
|
|
|
|
await page.getByTestId('edit-chart-button').getByRole('button').click();
|
|
await page.waitForLoadState('networkidle');
|
|
await page.waitForLoadState('domcontentloaded');
|
|
await page.waitForLoadState('load');
|
|
expect(page.getByTestId('metric-view-chart-content')).toBeVisible();
|
|
|
|
expect(page.getByTestId('select-chart-type-column')).toBeVisible();
|
|
expect(page.getByTestId('select-chart-type-column')).toBeDisabled();
|
|
expect(page.getByTestId('select-chart-type-table')).not.toBeDisabled();
|
|
|
|
//
|
|
await page.getByTestId('select-chart-type-table').click();
|
|
await expect(
|
|
page
|
|
.locator('div')
|
|
.filter({ hasText: /^Unsaved changesResetSave$/ })
|
|
.nth(1)
|
|
).toBeVisible();
|
|
await page.getByTestId('select-chart-type-metric').click();
|
|
await expect(
|
|
page
|
|
.locator('div')
|
|
.filter({ hasText: /^Unsaved changesResetSave$/ })
|
|
.nth(1)
|
|
).toBeHidden();
|
|
});
|
|
|
|
test('Metric can metric headers', async ({ page }) => {
|
|
await page.goto('http://localhost:3000/app/home');
|
|
await page.getByRole('link', { name: 'Metrics', exact: true }).click();
|
|
await page.getByRole('link', { name: 'Total Unique Products Sold' }).click();
|
|
await page.getByTestId('edit-chart-button').getByRole('button').click();
|
|
//
|
|
|
|
await page.getByTestId('edit-metric-header-type').click();
|
|
await page.getByRole('option', { name: 'Custom' }).click();
|
|
await page.getByRole('textbox', { name: 'Enter header' }).fill('WOW!');
|
|
await expect(page.getByRole('heading', { name: 'WOW!' })).toBeVisible();
|
|
await page.getByRole('textbox', { name: 'Enter header' }).click();
|
|
await page.getByRole('textbox', { name: 'Enter header' }).fill('');
|
|
await expect(page.getByRole('heading', { name: 'WOW!' })).toBeHidden();
|
|
|
|
//Header options
|
|
await page.getByTestId('edit-metric-header-type').click();
|
|
await page.getByRole('option', { name: 'Column title' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Total Unique Products Sold' })).toBeVisible();
|
|
await page.getByTestId('edit-metric-header-type').click();
|
|
await page.getByRole('option', { name: 'Column value' }).click();
|
|
await expect(page.locator('h4')).toBeVisible();
|
|
await page.getByRole('button', { name: 'Reset' }).click();
|
|
|
|
//Subheader options
|
|
|
|
await page.getByTestId('edit-metric-subheader-type').click();
|
|
await page.getByRole('option', { name: 'Custom' }).click();
|
|
await page.getByRole('textbox', { name: 'Enter sub-header' }).fill('Cool!');
|
|
await expect(page.getByRole('heading', { name: 'Cool!' })).toBeVisible();
|
|
await page.getByTestId('edit-metric-subheader-type').click();
|
|
await page.getByText('Column title').click();
|
|
await expect(page.getByRole('heading', { name: 'Total Unique Products Sold' })).toBeVisible();
|
|
await page.getByTestId('edit-metric-subheader-type').click();
|
|
await page.getByRole('option', { name: 'Column value' }).click();
|
|
|
|
await page.waitForTimeout(1000);
|
|
await expect(page.locator('h4')).toBeVisible();
|
|
await page.getByRole('button', { name: 'Reset' }).click();
|
|
await expect(page.locator('h4')).toBeHidden();
|
|
});
|
|
});
|