diff --git a/packages/iris-grid/src/GotoRow.tsx b/packages/iris-grid/src/GotoRow.tsx index 0907f98600..52b8ec4027 100644 --- a/packages/iris-grid/src/GotoRow.tsx +++ b/packages/iris-grid/src/GotoRow.tsx @@ -385,23 +385,23 @@ const GotoRow = forwardRef(
+ /> + />
{gotoValueError && (
{gotoValueError}
diff --git a/tests/context-menu.spec.ts b/tests/context-menu.spec.ts index d095cdc308..abc7bdf5c0 100644 --- a/tests/context-menu.spec.ts +++ b/tests/context-menu.spec.ts @@ -1,4 +1,262 @@ -import { test, expect } from '@playwright/test'; +import { test, expect, Page } from '@playwright/test'; +import { + makeTableCommand, + pasteInMonaco, + TableTypes, + waitForLoadingDone, + generateVarName, +} from './utils'; + +test.describe.configure({ mode: 'serial' }); + +async function openAdvancedFilters(page: Page) { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + await page.getByRole('button', { name: 'Advanced Filters' }).click(); +} + +async function moveMouseAwayFromTable(page: Page) { + await page.mouse.move(0, 0); + await page.mouse.click(0, 0); +} + +const tableName = generateVarName('t'); +test.beforeEach(async ({ page }) => { + await page.goto(''); + + const consoleInput = page.locator('.console-input'); + + const command = makeTableCommand(tableName, TableTypes.AllTypes); + + await pasteInMonaco(consoleInput, command); + await page.keyboard.press('Enter'); + + // Wait for the panel to show + await expect(page.locator('.iris-grid-panel')).toHaveCount(1); + + // Wait until it's done loading + await expect(page.locator('.iris-grid-panel .loading-spinner')).toHaveCount( + 0 + ); + + // Model is loaded, need to make sure table data is also loaded + await waitForLoadingDone(page); + + const tableOperationsMenu = page.locator( + 'data-testid=btn-iris-grid-settings-button-table' + ); + await tableOperationsMenu.click(); + + // Wait for Table Options menu to show + await expect(page.locator('.table-sidebar')).toHaveCount(1); +}); + +test.afterEach(async ({ page }) => { + const consoleInput = page.locator('.console-input'); + await consoleInput.click(); + + const command = `del ${tableName}`; + await pasteInMonaco(consoleInput, command); + await page.keyboard.press('Enter'); +}); + +test('toggle column visibility', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Hide Column' }).click(); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Show All Columns' }).click(); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); + +test('quick filter and clear', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Quick Filters' }).click(); + await page.keyboard.type('a999'); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Clear Column Filter' }).click(); + + await page + .locator('.iris-grid .grid-wrapper') + .hover({ position: { x: 20, y: 20 } }); + await page.mouse.wheel(0, -100); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); + +test('advanced filters', async ({ page }) => { + await openAdvancedFilters(page); + await page.getByLabel('Sort String Ascending').click(); + + await page.getByRole('button', { name: 'Done' }).click(); + await waitForLoadingDone(page); + await moveMouseAwayFromTable(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await openAdvancedFilters(page); + await page.getByLabel('Sort String Descending').click(); + + await page.getByRole('button', { name: 'Done' }).click(); + await waitForLoadingDone(page); + await moveMouseAwayFromTable(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await openAdvancedFilters(page); + await page.getByPlaceholder('Enter value').click(); + await page.keyboard.type('a999'); + + await page.getByRole('button', { name: 'Done' }).click(); + await waitForLoadingDone(page); + await moveMouseAwayFromTable(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await openAdvancedFilters(page); + await page.getByLabel('Remove Filter').click(); + + await page.getByRole('button', { name: 'Done' }).click(); + await waitForLoadingDone(page); + await moveMouseAwayFromTable(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await openAdvancedFilters(page); + await page.getByRole('button', { name: 'Clear', exact: true }).click(); + + await page.getByRole('button', { name: 'Done' }).click(); + await waitForLoadingDone(page); + await moveMouseAwayFromTable(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await openAdvancedFilters(page); + await page.getByRole('button', { name: 'Select All' }).click(); + + await page.getByRole('button', { name: 'Done' }).click(); + await waitForLoadingDone(page); + await moveMouseAwayFromTable(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); + +test('sort by', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Sort By' }).hover(); + + await page.getByRole('button', { name: 'String Ascending' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Sort By' }).hover(); + await page.getByRole('button', { name: 'String Descending' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Sort By' }).hover(); + await page.getByRole('button', { name: 'Remove Sort' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); + +test('freeze column', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Freeze Column' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Unfreeze Column' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); + +test('reverse table', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 20 } }); + + await page.getByRole('button', { name: 'Reverse Table' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); + +test('filter by value', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 60 } }); + + await page.getByRole('button', { name: 'Filter by Value' }).hover(); + await page.getByRole('button', { name: 'text is exactly' }).click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 60 } }); + await page.getByRole('button', { name: 'Clear Column Filter' }).click(); +}); + +test('go to', async ({ page }) => { + await page + .locator('.iris-grid .grid-wrapper') + .click({ button: 'right', position: { x: 20, y: 60 } }); + + await page.getByRole('button', { name: 'Go to' }).click(); + await page.getByLabel('filter-type-select').selectOption('Equals'); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page.locator('[aria-label="Previous match"]').first().click(); + await page.locator('[aria-label="Previous match"]').first().click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); + + await page.locator('[aria-label="Next match"]').first().click(); + + await waitForLoadingDone(page); + await expect(page.locator('.iris-grid-column')).toHaveScreenshot(); +}); test('open custom context menu with another custom context menu open', async ({ page, @@ -12,4 +270,6 @@ test('open custom context menu with another custom context menu open', async ({ .getByText('Command History') .click({ button: 'right', force: true }); await expect(page.getByText('Close', { exact: true })).toHaveCount(1); + + await page.getByText('Console').click({ force: true }); }); diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-1-chromium-linux.png new file mode 100644 index 0000000000..107e8590d2 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-1-firefox-linux.png new file mode 100644 index 0000000000..d196b238bc Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-1-webkit-linux.png new file mode 100644 index 0000000000..d4dec0701a Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-2-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-2-chromium-linux.png new file mode 100644 index 0000000000..c06a824a90 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-2-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-2-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-2-firefox-linux.png new file mode 100644 index 0000000000..41e1e322c9 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-2-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-2-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-2-webkit-linux.png new file mode 100644 index 0000000000..7f5861a777 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-2-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-3-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-3-chromium-linux.png new file mode 100644 index 0000000000..5fcc7b6f84 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-3-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-3-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-3-firefox-linux.png new file mode 100644 index 0000000000..ecf9c6de68 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-3-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-3-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-3-webkit-linux.png new file mode 100644 index 0000000000..7a4bf10e86 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-3-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-4-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-4-chromium-linux.png new file mode 100644 index 0000000000..c06a824a90 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-4-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-4-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-4-firefox-linux.png new file mode 100644 index 0000000000..41e1e322c9 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-4-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-4-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-4-webkit-linux.png new file mode 100644 index 0000000000..7f5861a777 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-4-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-5-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-5-chromium-linux.png new file mode 100644 index 0000000000..5a575c8b46 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-5-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-5-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-5-firefox-linux.png new file mode 100644 index 0000000000..bfd30f0419 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-5-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-5-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-5-webkit-linux.png new file mode 100644 index 0000000000..50213d6267 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-5-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-6-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-6-chromium-linux.png new file mode 100644 index 0000000000..c06a824a90 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-6-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-6-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-6-firefox-linux.png new file mode 100644 index 0000000000..41e1e322c9 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-6-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/advanced-filters-6-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/advanced-filters-6-webkit-linux.png new file mode 100644 index 0000000000..7f5861a777 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/advanced-filters-6-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/filter-by-value-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/filter-by-value-1-chromium-linux.png new file mode 100644 index 0000000000..22cbd4bd29 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/filter-by-value-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/filter-by-value-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/filter-by-value-1-firefox-linux.png new file mode 100644 index 0000000000..f0a2d4d7a7 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/filter-by-value-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/filter-by-value-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/filter-by-value-1-webkit-linux.png new file mode 100644 index 0000000000..976694d257 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/filter-by-value-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/freeze-column-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/freeze-column-1-chromium-linux.png new file mode 100644 index 0000000000..712eb46e09 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/freeze-column-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/freeze-column-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/freeze-column-1-firefox-linux.png new file mode 100644 index 0000000000..42cdf7a55b Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/freeze-column-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/freeze-column-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/freeze-column-1-webkit-linux.png new file mode 100644 index 0000000000..c9c9472f26 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/freeze-column-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/freeze-column-2-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/freeze-column-2-chromium-linux.png new file mode 100644 index 0000000000..f3e8db3b1d Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/freeze-column-2-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/freeze-column-2-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/freeze-column-2-firefox-linux.png new file mode 100644 index 0000000000..9ac927e4c5 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/freeze-column-2-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/freeze-column-2-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/freeze-column-2-webkit-linux.png new file mode 100644 index 0000000000..227a0654c4 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/freeze-column-2-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-1-chromium-linux.png new file mode 100644 index 0000000000..bb51a0c7c9 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-1-firefox-linux.png new file mode 100644 index 0000000000..e5542444c8 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-1-webkit-linux.png new file mode 100644 index 0000000000..54789fcfee Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-2-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-2-chromium-linux.png new file mode 100644 index 0000000000..d41bad9889 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-2-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-2-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-2-firefox-linux.png new file mode 100644 index 0000000000..619f34a835 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-2-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-2-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-2-webkit-linux.png new file mode 100644 index 0000000000..278829d688 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-2-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-3-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-3-chromium-linux.png new file mode 100644 index 0000000000..4ca46daefb Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-3-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-3-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-3-firefox-linux.png new file mode 100644 index 0000000000..db76da8775 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-3-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/go-to-3-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/go-to-3-webkit-linux.png new file mode 100644 index 0000000000..a8a722ae39 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/go-to-3-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-chromium-linux.png new file mode 100644 index 0000000000..db3046f3fc Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-firefox-linux.png new file mode 100644 index 0000000000..5f922a31ec Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-webkit-linux.png new file mode 100644 index 0000000000..52890e87c6 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-chromium-linux.png new file mode 100644 index 0000000000..7e736e5bc7 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-firefox-linux.png new file mode 100644 index 0000000000..0b1976d07b Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-webkit-linux.png new file mode 100644 index 0000000000..5aa2709a6d Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/quick-filter-and-clear-2-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/reverse-table-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/reverse-table-1-chromium-linux.png new file mode 100644 index 0000000000..82331997b9 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/reverse-table-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/reverse-table-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/reverse-table-1-firefox-linux.png new file mode 100644 index 0000000000..cf7efd959b Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/reverse-table-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/reverse-table-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/reverse-table-1-webkit-linux.png new file mode 100644 index 0000000000..e682390d5f Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/reverse-table-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-1-chromium-linux.png new file mode 100644 index 0000000000..107e8590d2 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-1-firefox-linux.png new file mode 100644 index 0000000000..d196b238bc Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-1-webkit-linux.png new file mode 100644 index 0000000000..d4dec0701a Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-2-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-2-chromium-linux.png new file mode 100644 index 0000000000..c06a824a90 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-2-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-2-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-2-firefox-linux.png new file mode 100644 index 0000000000..41e1e322c9 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-2-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-2-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-2-webkit-linux.png new file mode 100644 index 0000000000..7f5861a777 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-2-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-3-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-3-chromium-linux.png new file mode 100644 index 0000000000..f3e8db3b1d Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-3-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-3-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-3-firefox-linux.png new file mode 100644 index 0000000000..9ac927e4c5 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-3-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/sort-by-3-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/sort-by-3-webkit-linux.png new file mode 100644 index 0000000000..227a0654c4 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/sort-by-3-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-chromium-linux.png new file mode 100644 index 0000000000..96a88a195b Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-firefox-linux.png new file mode 100644 index 0000000000..b1fbe4251e Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-webkit-linux.png new file mode 100644 index 0000000000..85bc74c9ba Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-1-webkit-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-chromium-linux.png b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-chromium-linux.png new file mode 100644 index 0000000000..f3e8db3b1d Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-chromium-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-firefox-linux.png b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-firefox-linux.png new file mode 100644 index 0000000000..9ac927e4c5 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-firefox-linux.png differ diff --git a/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-webkit-linux.png b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-webkit-linux.png new file mode 100644 index 0000000000..227a0654c4 Binary files /dev/null and b/tests/context-menu.spec.ts-snapshots/toggle-column-visibility-2-webkit-linux.png differ