diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-light-chromium-linux.png new file mode 100644 index 0000000000..95f3142312 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-default-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-default-light-chromium-linux.png new file mode 100644 index 0000000000..4cc5d9acfe Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-default-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-end-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-end-light-chromium-linux.png new file mode 100644 index 0000000000..939c9a53a8 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-end-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-light-chromium-linux.png new file mode 100644 index 0000000000..4c6ab4a8e4 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-start-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-start-light-chromium-linux.png new file mode 100644 index 0000000000..a52e68fb9a Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-auto-start-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-end-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-end-light-chromium-linux.png new file mode 100644 index 0000000000..c2dafe39a1 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-end-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-light-chromium-linux.png new file mode 100644 index 0000000000..93b86b7197 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-start-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-start-light-chromium-linux.png new file mode 100644 index 0000000000..0aeee51cf0 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-bottom-start-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-end-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-end-light-chromium-linux.png new file mode 100644 index 0000000000..45fe06d5a1 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-end-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-light-chromium-linux.png new file mode 100644 index 0000000000..3b0f0ec58a Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-start-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-start-light-chromium-linux.png new file mode 100644 index 0000000000..36cc6d1859 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-left-start-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-end-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-end-light-chromium-linux.png new file mode 100644 index 0000000000..ea85ec050f Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-end-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-light-chromium-linux.png new file mode 100644 index 0000000000..3b0f0ec58a Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-start-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-start-light-chromium-linux.png new file mode 100644 index 0000000000..09fa284229 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-right-start-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-end-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-end-light-chromium-linux.png new file mode 100644 index 0000000000..362c7a1d44 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-end-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-light-chromium-linux.png new file mode 100644 index 0000000000..db72d266e2 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-start-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-start-light-chromium-linux.png new file mode 100644 index 0000000000..cd6ecb9800 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-placement-popupPlacement-top-start-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-custom-popupPlacement-left-end-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-custom-popupPlacement-left-end-light-chromium-linux.png new file mode 100644 index 0000000000..1ed172c279 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-custom-popupPlacement-left-end-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-custom-width-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-custom-width-light-chromium-linux.png new file mode 100644 index 0000000000..e759c13aa4 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-custom-width-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-hide-apply-button-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-hide-apply-button-light-chromium-linux.png new file mode 100644 index 0000000000..b9c70318fa Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-hide-apply-button-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-opened-popup-light-chromium-linux.png b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-opened-popup-light-chromium-linux.png new file mode 100644 index 0000000000..353b477c47 Binary files /dev/null and b/src/components/TableColumnSetup/__snapshots__/TableColumnSetup.visual.test.tsx-snapshots/TableColumnSetup-smoke-with-opened-popup-light-chromium-linux.png differ diff --git a/src/components/TableColumnSetup/__tests__/TableColumnSetup.visual.test.tsx b/src/components/TableColumnSetup/__tests__/TableColumnSetup.visual.test.tsx new file mode 100644 index 0000000000..36d2dbdcad --- /dev/null +++ b/src/components/TableColumnSetup/__tests__/TableColumnSetup.visual.test.tsx @@ -0,0 +1,132 @@ +import {expect} from '@playwright/experimental-ct-react'; +import {noop} from 'lodash'; + +import {smokeTest, test} from '~playwright/core'; + +import {createSmokeScenarios} from '../../../stories/tests-factory/create-smoke-scenarios'; +import {TableColumnSetup} from '../TableColumnSetup'; +import type {TableColumnSetupProps} from '../TableColumnSetup'; + +import {disabledCases, popupPlacementCases, showStatusCases} from './cases'; + +const defaultProps: TableColumnSetupProps = { + items: [ + {id: 'name', title: 'Name', selected: true, required: true}, + {id: 'email', title: 'Email', selected: true}, + {id: 'phone', title: 'Phone', selected: false}, + ], + onUpdate: noop, +}; + +test.describe('TableColumnSetup', {tag: '@TableColumnSetup'}, () => { + smokeTest('', async ({mount, expectScreenshot}) => { + const smokeScenarios = createSmokeScenarios(defaultProps, { + disabled: disabledCases, + showStatus: showStatusCases, + }); + + await mount( +
+ {smokeScenarios.map(([title, props]) => ( +
+

{title}

+ +
+ ))} +
, + ); + + await expectScreenshot({ + themes: ['light'], + }); + }); + + smokeTest('with opened popup', async ({mount, page, expectScreenshot}) => { + const root = await mount( +
+ +
, + ); + + await root.locator("button[type='button']").click(); + await expect(page.locator('[role="listbox"]')).toBeVisible(); + + await expectScreenshot({ + themes: ['light'], + }); + }); + + smokeTest('with hide apply button', async ({mount, expectScreenshot}) => { + const root = await mount( +
+ +
, + ); + + await root.locator("button[type='button']").click(); + + await expectScreenshot({ + themes: ['light'], + }); + }); + + createSmokeScenarios( + defaultProps, + { + popupPlacement: popupPlacementCases, + }, + { + scenarioName: 'placement', + }, + ).forEach(([title, props]) => { + smokeTest(title, async ({mount, expectScreenshot}) => { + const root = await mount( +
+

{title}

+ +
, + ); + + await root.locator("button[type='button']").click(); + + await expectScreenshot({ + themes: ['light'], + }); + }); + }); + + smokeTest('with custom width', async ({mount, expectScreenshot}) => { + const root = await mount( +
+ +
, + ); + + await root.locator("button[type='button']").click(); + + await expectScreenshot({ + themes: ['light'], + }); + }); +}); diff --git a/src/components/TableColumnSetup/__tests__/cases.ts b/src/components/TableColumnSetup/__tests__/cases.ts new file mode 100644 index 0000000000..6bacbab4bc --- /dev/null +++ b/src/components/TableColumnSetup/__tests__/cases.ts @@ -0,0 +1,22 @@ +import type {Cases} from '../../../stories/tests-factory/models'; +import type {TableColumnSetupProps} from '../TableColumnSetup'; + +export const disabledCases: Cases = [true]; +export const showStatusCases: Cases = [true]; +export const popupPlacementCases: Cases = [ + 'auto', + 'auto-end', + 'auto-start', + 'bottom', + 'bottom-end', + 'bottom-start', + 'left', + 'left-end', + 'left-start', + 'right', + 'right-end', + 'right-start', + 'top', + 'top-end', + 'top-start', +];