diff --git a/semcore/accordion/__tests__/accordion.browser-test.tsx b/semcore/accordion/__tests__/accordion.browser-test.tsx index 6b1d8be8d0..20174d8a9a 100644 --- a/semcore/accordion/__tests__/accordion.browser-test.tsx +++ b/semcore/accordion/__tests__/accordion.browser-test.tsx @@ -13,8 +13,6 @@ export const locators = { const base = page.locator(`[data-ui-name="Item.Collapse"]`); return typeof index === 'number' ? base.nth(index) : base; }, - // The collapse content wrapper carries the generic data-ui-name="Box", - // so it is addressed as the direct child of Item.Collapse. collapseContainer: (page: Page, index?: number) => { const base = page.locator(`[data-ui-name="Item.Collapse"] > [data-ui-name="Box"]`); return typeof index === 'number' ? base.nth(index) : base; @@ -45,15 +43,12 @@ test.describe(`${TAG.VISUAL}`, () => { const variables = [ { use: 'primary', - // The chevron stays in the flow: `order` moves it after the label and - // `justify-content: space-between` on the toggle button pins it to the right edge. chevronOrder: '1', toggleButtonGap: '8px', togglePadding: '8px 16px 8px 20px', }, { use: 'secondary', - // Here the chevron leads the label, separated only by the toggle button gap. chevronOrder: '0', toggleButtonGap: '4px', togglePadding: '8px 2px', @@ -78,11 +73,10 @@ test.describe(`${TAG.VISUAL}`, () => { await expect(page).toHaveScreenshot(); }); - await test.step('Verify chevron placement', async () => { + await test.step('Verify chevron order and no own margin', async () => { const count = await locators.chevron(page).count(); for (let i = 0; i < count; i++) { await expect(locators.chevron(page, i)).toHaveCSS('order', item.chevronOrder); - // The spacing comes from the toggle button gap, never from a margin on the chevron. await expect(locators.chevron(page, i)).toHaveCSS('margin-right', '0px'); } }); @@ -109,22 +103,12 @@ test.describe(`${TAG.VISUAL}`, () => { await test.step('Verify collapse content padding', async () => { await expect(locators.collapseContainer(page, 0)).toHaveCSS('padding', '12px 20px'); }); - - await test.step('Verify h3 tab by default', async () => { - const count = await locators.toggle(page).count(); - - for (let i = 0; i < count; i++) { - const element = locators.toggle(page, i); - const tagName = await element.evaluate((el) => el.tagName.toLowerCase()); - expect(tagName).toBe('h3'); - } - }); }); }); test('Verify accordion width < content', { tag: [ - TAG.PRIORITY_MEDIUM, + TAG.PRIORITY_LOW, '@accordion'], }, async ({ page }) => { await loadPage(page, 'stories/components/accordion/docs/examples/basic_usage.tsx', 'en', { w: '50px' }); @@ -151,10 +135,7 @@ test.describe(`${TAG.VISUAL}`, () => { await expect(locators.toggle(page, 0)).toHaveCSS('border-bottom-right-radius', '0px'); }); - await test.step('Verify accent bar is shown on the expanded item', async () => { - // In the primary variant the accent bar is the item's ::before overlay, - // toggled through opacity, so it cannot be read from a regular locator. - // The bar fades in, so poll until the opacity transition settles. + await test.step('Verify accent bar (item ::before) fades in on the expanded item', async () => { await expect .poll(async () => locators.item(page, 0).evaluate((el) => getComputedStyle(el, '::before').opacity), @@ -179,8 +160,7 @@ test.describe(`${TAG.VISUAL}`, () => { await expect(locators.toggle(page, 0)).toHaveCSS('border-bottom-right-radius', '8px'); }); - await test.step('Verify accent bar is hidden after collapsing', async () => { - // The bar fades out, so poll until the opacity transition settles. + await test.step('Verify accent bar (item ::before) fades out after collapsing', async () => { await expect .poll(async () => locators.item(page, 0).evaluate((el) => getComputedStyle(el, '::before').opacity), @@ -324,23 +304,31 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page, browserName }) => { await loadPage(page, 'stories/components/accordion/docs/examples/seo.tsx', 'en'); - await expect(locators.collapse(page)).toHaveCount(3); - await page.keyboard.press('Tab'); - await expect(locators.toggle(page, 0)).toBeFocused(); - await page.keyboard.press('Enter'); - await page.getByRole('link').waitFor({ state: 'hidden' }); - await expect(locators.toggle(page, 0)).toBeFocused(); - await expect(locators.collapse(page)).toHaveCount(3); - await page.keyboard.press('Tab'); - await expect(locators.toggle(page, 2)).toBeFocused(); - if (browserName === 'webkit') return; - await page.keyboard.press('Space'); - await page.keyboard.press('Tab'); - await page.getByRole('link').waitFor({ state: 'visible' }); - await expect(page.getByRole('link')).toBeFocused(); + await test.step('Verify all sections are rendered in DOM', async () => { + await expect(locators.collapse(page)).toHaveCount(3); + }); + + await test.step('Verify collapsed section stays in DOM and its link is skipped by Tab', async () => { + await page.keyboard.press('Tab'); + await expect(locators.toggle(page, 0)).toBeFocused(); + await page.keyboard.press('Enter'); + await page.getByRole('link').waitFor({ state: 'hidden' }); + await expect(locators.toggle(page, 0)).toBeFocused(); + await expect(locators.collapse(page)).toHaveCount(3); + await page.keyboard.press('Tab'); + await expect(locators.toggle(page, 2)).toBeFocused(); + }); + + const linkFocusStep = browserName === 'webkit' ? test.step.skip : test.step; + await linkFocusStep('Verify link in expanded section is focused by Tab (WebKit skips links on Tab)', async () => { + await page.keyboard.press('Space'); + await page.keyboard.press('Tab'); + await page.getByRole('link').waitFor({ state: 'visible' }); + await expect(page.getByRole('link')).toBeFocused(); + }); }); - test('Verify One section opening by keyboard ', { + test('Verify one section opening by keyboard', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@accordion'], @@ -364,7 +352,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.collapse(page)).toHaveCount(0); }); - test('Verify One section opening by mouse', { + test('Verify one section opening by mouse', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@accordion'], @@ -382,7 +370,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.collapse(page)).toHaveCount(0); }); - test('Verify section not expands by mouse and keyboard activation on the interactive element in toggle', { + test('Verify section does not expand by mouse and keyboard activation of the interactive element in toggle', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, @@ -391,8 +379,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/accordion/tests/examples/button-on-toggle.tsx', 'en'); + const buttonInToggle = (index: number) => page.getByTestId(`button_in_toggle_${index}`); + await expect(locators.collapse(page)).toHaveCount(0); - await locators.button(page, 0).click(); + await buttonInToggle(1).click(); await expect(locators.collapse(page)).toHaveCount(0); await page.keyboard.press('Tab'); @@ -401,30 +391,13 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.collapse(page)).toHaveCount(1); await page.keyboard.press('Tab'); - await expect(locators.button(page, 1)).toBeFocused(); + await expect(buttonInToggle(2)).toBeFocused(); await page.keyboard.press('Enter'); await expect(locators.collapse(page)).toHaveCount(1); }); - test('Verify values with different types', { - tag: [TAG.PRIORITY_HIGH, - '@accordion', - '@base-components', - '@flex-box'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/accordion/tests/examples/values.tsx', 'en'); - - await expect(page.locator('[data-test-id="number"]')).toBeVisible(); - await expect(page.locator('[data-test-id="string"]')).toBeVisible(); - - await locators.toggle(page, 0).click(); - await locators.toggle(page, 1).click(); - await expect(page.locator('[data-test-id="number"]')).not.toBeVisible(); - await expect(page.locator('[data-test-id="string"]')).not.toBeVisible(); - }); - - test('Verify default value', { + test('Verify values with different types and defaultValue', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@accordion', @@ -432,68 +405,72 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/accordion/tests/examples/values.tsx', 'en'); - await expect(page.locator('[data-test-id="default-value"]')).toBeVisible(); - }); - test('Verify heading tag', - { - tag: [TAG.PRIORITY_HIGH, - TAG.KEYBOARD, - '@accordion'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/accordion/docs/examples/heading_tag.tsx', 'en'); + await test.step('Verify sections with number and string values are expanded', async () => { + await expect(page.locator('[data-test-id="number"]')).toBeVisible(); + await expect(page.locator('[data-test-id="string"]')).toBeVisible(); + }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Space'); - await locators.collapse(page, 0).waitFor({ state: 'visible' }); - const count = await locators.toggle(page).count(); + await test.step('Verify sections with number and string values collapse by click', async () => { + await locators.toggle(page, 0).click(); + await locators.toggle(page, 1).click(); + await expect(page.locator('[data-test-id="number"]')).not.toBeVisible(); + await expect(page.locator('[data-test-id="string"]')).not.toBeVisible(); + }); - for (let i = 0; i < count; i++) { - const element = locators.toggle(page, i); - const tagName = await element.evaluate((el) => el.tagName.toLowerCase()); - expect(tagName).toBe('h2'); - } + await test.step('Verify non-array defaultValue expands the matching section', async () => { + await expect(page.locator('[data-test-id="default-value"]')).toBeVisible(); }); + }); - test('Verify overflowHidden=false and defaultHeight=auto', { - tag: [TAG.PRIORITY_MEDIUM, - TAG.MOUSE, + test('Verify toggle heading tag', { + tag: [TAG.PRIORITY_HIGH, '@accordion'], }, async ({ page }) => { - await loadPage(page, 'stories/components/accordion/docs/examples/basic_usage.tsx', 'en', { overflowHidden: false, defaultHeight: 'auto' }); - - await expect(locators.collapse(page, 0)).toBeVisible(); - - const inlineStyle = await locators.collapse(page, 0).getAttribute('style'); - expect(inlineStyle).toContain('height: auto'); + await test.step('Verify toggles are h3 by default', async () => { + await loadPage(page, 'stories/components/accordion/docs/examples/basic_usage.tsx', 'en'); + await expect(page.getByRole('heading', { level: 3 })).toHaveCount(await locators.toggle(page).count()); + }); - await locators.toggle(page, 0).click(); - await locators.toggle(page, 0).click(); - await locators.collapse(page, 0).waitFor({ state: 'visible' }); - const inlineStyle2 = await locators.collapse(page, 0).getAttribute('style'); - expect(inlineStyle2).not.toContain('overflow'); + await test.step('Verify toggles are h2 with tag="h2"', async () => { + await loadPage(page, 'stories/components/accordion/docs/examples/heading_tag.tsx', 'en'); + await expect(page.getByRole('heading', { level: 2 })).toHaveCount(await locators.toggle(page).count()); + }); }); - test('Verify overflowHidden=true and defaultHeight=100%', { - tag: [TAG.PRIORITY_MEDIUM, - TAG.MOUSE, - '@accordion'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/accordion/docs/examples/basic_usage.tsx', 'en', { overflowHidden: true, defaultHeight: '100%' }); + const collapseLayoutCases = [ + { overflowHidden: false, defaultHeight: 'auto', overflowClip: false }, + { overflowHidden: true, defaultHeight: '100%', overflowClip: true }, + ]; + collapseLayoutCases.forEach(({ overflowHidden, defaultHeight, overflowClip }) => { + test(`Verify overflowHidden=${overflowHidden} and defaultHeight=${defaultHeight}`, { + tag: [TAG.PRIORITY_MEDIUM, + TAG.MOUSE, + '@accordion'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/accordion/docs/examples/basic_usage.tsx', 'en', { overflowHidden, defaultHeight }); - await expect(locators.collapse(page, 0)).toBeVisible(); + await test.step(`Verify expanded section has height: ${defaultHeight}`, async () => { + await expect(locators.collapse(page, 0)).toBeVisible(); + await expect(locators.collapse(page, 0)).toHaveAttribute('style', new RegExp(`height: ${defaultHeight}`)); + }); - const inlineStyle = await (locators.collapse(page, 0)).getAttribute('style'); - expect(inlineStyle).toContain('height: 100%'); - await locators.toggle(page, 0).click(); - await locators.toggle(page, 0).click(); - await locators.collapse(page).waitFor({ state: 'visible' }); - const inlineStyle2 = await (locators.collapse(page, 0)).getAttribute('style'); - expect(inlineStyle2).toContain('overflow: clip'); + await test.step(`Verify overflow is ${overflowClip ? 'clipped' : 'not set'} after collapse and expand`, async () => { + await locators.toggle(page, 0).click(); + await locators.toggle(page, 0).click(); + await locators.collapse(page, 0).waitFor({ state: 'visible' }); + + if (overflowClip) { + await expect(locators.collapse(page, 0)).toHaveAttribute('style', /overflow: clip/); + } else { + await expect(locators.collapse(page, 0)).not.toHaveAttribute('style', /overflow/); + } + }); + }); }); test('Verify accordion animation collapse props', { - tag: [TAG.PRIORITY_HIGH, + tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@accordion', '@base-components', @@ -502,36 +479,27 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/accordion/tests/examples/accordion-collapse-duration.tsx', 'en'); - const count = await locators.toggle(page).count(); - for (let i = 0; i < count; i++) { - await locators.button(page, i).click(); - await locators.collapse(page).waitFor({ state: 'visible' }); - - const animationDelay = await locators.collapse(page).evaluate((el) => { - const style = getComputedStyle(el); - return style.animationDelay; - }); - - const animationDuration = await locators.collapse(page).evaluate((el) => { - const style = getComputedStyle(el); - return style.animationDuration; + const cases = [ + { label: 'Duration 500', duration: '0.5s' }, + { label: 'Duration 500 Delay 500', duration: '0.5s' }, + { label: 'Duration 0', duration: '0s' }, + { label: 'Default', duration: '0.2s' }, + { label: 'Accordion duration 300', duration: '0.3s' }, + ]; + + for (const { label, duration } of cases) { + await test.step(`Verify "${label}" section has animation-duration ${duration}`, async () => { + const toggleButton = page.getByRole('button', { name: label, exact: true }); + const section = page.getByRole('region', { name: label, exact: true, includeHidden: true }); + + await toggleButton.click(); + await expect(toggleButton).toHaveAttribute('aria-expanded', 'true'); + await expect(section).toHaveCSS('animation-duration', duration); + + await toggleButton.click(); + await expect(toggleButton).toHaveAttribute('aria-expanded', 'false'); + await expect(section).toHaveCount(0); }); - - if (i === 0) { - expect(animationDelay).toBe('0s'); - expect(animationDuration).toBe('0.5s'); - } else if (i === 1) { - expect(animationDelay).toBe('0s'); - expect(animationDuration).toBe('0.5s'); - } else if (i === 2) { - expect(animationDelay).toBe('0s'); - expect(animationDuration).toBe('0s'); - } else if (i === 3) { - expect(animationDelay).toBe('0s'); - expect(animationDuration).toBe('0.2s'); - } - await locators.button(page, i).click(); - await locators.collapse(page).waitFor({ state: 'hidden' }); } }); }); diff --git a/semcore/accordion/__tests__/index.test.tsx b/semcore/accordion/__tests__/index.test.tsx index cec4e096a0..f478f85e35 100644 --- a/semcore/accordion/__tests__/index.test.tsx +++ b/semcore/accordion/__tests__/index.test.tsx @@ -68,17 +68,21 @@ describe('Accordion', (test) => { expect(result).toMatchSnapshot(); }); - test.concurrent('Verify supports uncontrolled mode with single expandable item', async () => { + const renderItems = () => ( + <> + + Item 1 + + + Item 2 + + + ); + + test('Verify supports uncontrolled mode with single expandable item', async () => { const spy = vi.fn(); const { getByText } = render( - - - Item 1 - - - Item 2 - - , + {renderItems()}, ); await userEvent.click(getByText('Item 1')); @@ -93,44 +97,18 @@ describe('Accordion', (test) => { test('Verify supports controlled mode with single expandable item', async () => { const spy = vi.fn(); - const { getByText, rerender } = render( - - - Item 1 - - - Item 2 - - , + {renderItems()}, ); await userEvent.click(getByText('Item 1')); expect(spy).toBeCalledWith(1); - rerender( - - - Item 1 - - - Item 2 - - , - ); + rerender({renderItems()}); await userEvent.click(getByText('Item 2')); expect(spy).toBeCalledWith(2); - rerender( - - - Item 1 - - - Item 2 - - , - ); + rerender({renderItems()}); await userEvent.click(getByText('Item 2')); expect(spy).toBeCalledWith(null); }); @@ -138,14 +116,7 @@ describe('Accordion', (test) => { test('Verify supports uncontrolled mode with multiple expandable items', async () => { const spy = vi.fn(); const { getByText } = render( - - - Item 1 - - - Item 2 - - , + {renderItems()}, ); await userEvent.click(getByText('Item 1')); @@ -163,56 +134,22 @@ describe('Accordion', (test) => { test('Verify supports controlled mode with multiple expandable items', async () => { const spy = vi.fn(); - const { getByText, rerender } = render( - - - Item 1 - - - Item 2 - - , + {renderItems()}, ); + await userEvent.click(getByText('Item 1')); expect(spy).toBeCalledWith([1]); - rerender( - - - Item 1 - - - Item 2 - - , - ); + rerender({renderItems()}); await userEvent.click(getByText('Item 2')); expect(spy).toBeCalledWith([1, 2]); - rerender( - - - Item 1 - - - Item 2 - - , - ); + rerender({renderItems()}); await userEvent.click(getByText('Item 1')); expect(spy).toBeCalledWith([2]); - rerender( - - - Item 1 - - - Item 2 - - , - ); + rerender({renderItems()}); await userEvent.click(getByText('Item 2')); expect(spy).toBeCalledWith([]); }); diff --git a/semcore/add-filter/__tests__/add-filter.axe-test.tsx b/semcore/add-filter/__tests__/add-filter.axe-test.tsx index 02c09b61d6..a7fea4a450 100644 --- a/semcore/add-filter/__tests__/add-filter.axe-test.tsx +++ b/semcore/add-filter/__tests__/add-filter.axe-test.tsx @@ -22,6 +22,7 @@ test.describe(`@add-filter ${TAG.ACCESSIBILITY}`, () => { expect(violations).toEqual([]); } { + await expect(page.getByRole('menuitem', { name: 'Color' })).toBeFocused(); await page.keyboard.press('Enter'); await page.getByRole('menuitem', { name: 'Color' }).waitFor({ state: 'hidden' }); const violations = await getAccessibilityViolations({ page }); diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx b/semcore/add-filter/__tests__/add-filter.browser-test.tsx index 8750b61609..4f3e211dc0 100644 --- a/semcore/add-filter/__tests__/add-filter.browser-test.tsx +++ b/semcore/add-filter/__tests__/add-filter.browser-test.tsx @@ -4,64 +4,33 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - addFilterBtn: (page: Page, index?: number): Locator => { - const base = page.getByRole('button', { name: 'Add filter' }); - return typeof index === 'number' ? base.nth(index) : base; - }, - + addFilterBtn: (page: Page): Locator => page.getByRole('button', { name: 'Add filter' }), clearAllBtn: (page: Page): Locator => page.getByRole('button', { name: 'Clear filters' }), - - addFilterMenuItem: (page: Page, name: string, index?: number): Locator => { - const base = page.getByRole('menuitem', { name }); - return typeof index === 'number' ? base.nth(index) : base; - }, - - selectOption: (page: Page, name: string, index?: number): Locator => { - const base = page.getByRole('option', { name }); - return typeof index === 'number' ? base.nth(index) : base; - }, - - input: (page: Page, placeholder?: string, index?: number): Locator => { - const base = placeholder - ? page.getByPlaceholder(placeholder) - : page.locator('[data-ui-name="Input.Value"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, - - addFilterInput: (page: Page, placeholder?: string, index?: number): Locator => { - const base = placeholder - ? page.getByPlaceholder(placeholder) - : page.locator('[data-ui-name="AddFilterInput.Value"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, - - selectTrigger: (page: Page, placeholder: string, index?: number): Locator => { - const base = page.locator( - `[data-ui-name="FilterTrigger.TriggerButton"][placeholder="${placeholder}"]`, - ); - return typeof index === 'number' ? base.nth(index) : base; - }, - - selectTriggerFilled: (page: Page, placeholder: string, index?: number): Locator => { - const base = page.locator( - `[data-ui-name="FilterTrigger.Text"][placeholder="${placeholder}"]`, - ); - return typeof index === 'number' ? base.nth(index) : base; - }, - - addFilterSelectInputSearch: (page: Page): Locator => page.locator('[data-ui-name="AddFilterSelect.InputSearch"]'), - - dropdownTrigger: (page: Page, placeholder: string): Locator => - page.locator(`[data-ui-name="AddFilterDropdown.Trigger"][placeholder="${placeholder}"]`), - + applyBtn: (page: Page): Locator => page.getByRole('button', { name: 'Apply' }), + inputClearBtn: (page: Page): Locator => page.getByRole('button', { name: 'Clear', exact: true }), + addFilterMenuItem: (page: Page, name: string): Locator => page.getByRole('menuitem', { name }), + selectOption: (page: Page, name: string): Locator => page.getByRole('option', { name }), + input: (page: Page, placeholder: string): Locator => page.getByPlaceholder(placeholder), + rangeInput: (page: Page, placeholder: 'From' | 'To'): Locator => page.getByPlaceholder(placeholder, { exact: true }), + searchInput: (page: Page): Locator => page.locator('[data-ui-name="AddFilterSelect.InputSearch"]'), dialog: (page: Page): Locator => page.getByRole('dialog'), - + dialogWithFocus: (page: Page): Locator => page.locator('[role="dialog"]:focus-within'), clearInput: (page: Page): Locator => page.locator('[data-ui-name="AddFilterInput.Clear"]'), - - clearSelectButton: (page: Page, index?: number): Locator => { - const base = page.locator('[data-ui-name="FilterTrigger.ClearButton"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, + selectTrigger: (page: Page, placeholder?: string): Locator => page.locator( + placeholder + ? `[data-ui-name="FilterTrigger.TriggerButton"][placeholder="${placeholder}"]` + : '[data-ui-name="FilterTrigger.TriggerButton"]', + ), + filterValue: (page: Page, placeholder?: string): Locator => page.locator( + placeholder + ? `[data-ui-name="FilterTrigger.Text"][placeholder="${placeholder}"]` + : '[data-ui-name="FilterTrigger.Text"]', + ), + addFilterSelectTrigger: (page: Page): Locator => page.locator('[data-ui-name="AddFilterSelect.Trigger"]'), + dropdownTrigger: (page: Page, placeholder: string): Locator => + page.locator(`[data-ui-name="AddFilterDropdown.Trigger"][placeholder="${placeholder}"]`), + clearSelectButton: (page: Page, index: number): Locator => + page.locator('[data-ui-name="FilterTrigger.ClearButton"]').nth(index), }; /* ===================================================== @@ -71,6 +40,7 @@ Visual states, hover and focus styles, paddings, margins, and snapshots. test.describe(`${TAG.VISUAL}`, () => { test('Verify base example with selects after mouse interactions', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@add-filter', '@base-trigger', '@filter-trigger', @@ -110,7 +80,7 @@ test.describe(`${TAG.VISUAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/docs/examples/add-filter-basic.tsx', 'en'); - await test.step('Verify filter list expanded by click on Add filter', async () => { + await test.step('Verify filter list expanded by Enter on Add filter', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); @@ -125,7 +95,7 @@ test.describe(`${TAG.VISUAL}`, () => { }); }); - test('Verify Add filter without Add filter button', { + test('Verify all filters added and Add filter button hidden', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@add-filter', @@ -162,14 +132,15 @@ test.describe(`${TAG.VISUAL}`, () => { await locators.addFilterBtn(page).click(); await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); await locators.addFilterMenuItem(page, 'Keywords').click(); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); - await page.getByRole('button', { name: 'Apply' }).click(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await locators.applyBtn(page).click(); await expect(page).toHaveScreenshot(); }); }); - test('Verify Add filter after activating Clear all by keyboard', { + test('Verify Clear filters focus state by keyboard', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@add-filter', '@base-trigger', '@filter-trigger', @@ -191,10 +162,11 @@ test.describe(`${TAG.VISUAL}`, () => { await page.keyboard.press('Tab'); await page.waitForTimeout(50); } + await expect(locators.clearAllBtn(page)).toBeFocused(); await expect(page).toHaveScreenshot(); }); - test('Verify Select with range as filter after mouse interactions ', { + test('Verify Select with range as filter after mouse interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@add-filter', @@ -233,27 +205,31 @@ test.describe(`${TAG.VISUAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter-complex-selects.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); + await test.step('Verify select with search opened from filters list', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); - await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await locators.selectOption(page, 'Banana').waitFor({ state: 'visible' }); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await locators.selectOption(page, 'Banana').waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); - await locators.addFilterSelectInputSearch(page).fill('Banana'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('Enter'); - await locators.selectOption(page, 'Banana').waitFor({ state: 'hidden' }); - await expect(page).toHaveScreenshot(); + await expect(page).toHaveScreenshot(); + }); + await test.step('Verify option selected after search', async () => { + await locators.searchInput(page).fill('Banana'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('Enter'); + await locators.selectOption(page, 'Banana').waitFor({ state: 'hidden' }); + await expect(page).toHaveScreenshot(); + }); }); - test('Verify Input as filter after mouse interactions', { + test('Verify Input filter clear button hint on hover', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@add-filter', @@ -271,12 +247,12 @@ test.describe(`${TAG.VISUAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter.tsx', 'en'); - await locators.addFilterInput(page, 'Filter by name').fill('Test'); - await locators.addFilterInput(page, 'Filter by fullname').fill('Test'); + await locators.input(page, 'Filter by name').fill('Test'); + await locators.input(page, 'Filter by fullname').fill('Test'); await locators.addFilterBtn(page).click(); await locators.addFilterMenuItem(page, 'Position').waitFor({ state: 'visible' }); await locators.addFilterMenuItem(page, 'Position').click(); - await locators.addFilterInput(page, 'Filter by position').fill('Test'); + await locators.input(page, 'Filter by position').fill('Test'); await locators.clearInput(page).hover(); await expect(page.locator('[data-ui-name="Hint"]')).toHaveCount(1); await expect(page).toHaveScreenshot(); @@ -337,14 +313,14 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/docs/examples/add-filter-basic.tsx', 'en'); - await test.step('Verify filter list exapnded by click on Add filter', async () => { + await test.step('Verify filter list expanded by click on Add filter', async () => { await locators.addFilterBtn(page).click(); await locators.addFilterMenuItem(page, 'Color').waitFor({ state: 'visible' }); await locators.addFilterMenuItem(page, 'Color').click(); await expect(locators.selectTrigger(page, 'Color')).toBeFocused(); }); - await test.step('Verify filter hidden and filters list exapnded when cliking on Add filter', async () => { + await test.step('Verify filter hidden and filters list expanded when clicking on Add filter', async () => { await locators.addFilterBtn(page).click(); await expect(locators.selectTrigger(page, 'Color')).not.toBeVisible(); await expect(locators.addFilterMenuItem(page, 'Color')).toBeVisible(); @@ -434,7 +410,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.addFilterMenuItem(page, 'Position').waitFor({ state: 'visible' }); await expect(locators.addFilterMenuItem(page, 'Device')).not.toBeVisible(); await locators.addFilterMenuItem(page, 'Position').click(); - await locators.addFilterInput(page, 'Filter by position').fill('Test'); + await locators.input(page, 'Filter by position').fill('Test'); await expect(locators.addFilterBtn(page)).toBeVisible(); }); @@ -443,8 +419,8 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); await expect(locators.addFilterMenuItem(page, 'Position')).not.toBeVisible(); await locators.addFilterMenuItem(page, 'Keywords').click(); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); - await page.getByRole('button', { name: 'Apply' }).click(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await locators.applyBtn(page).click(); }); await test.step('Verify that Add filter removed when all filters from the list added', async () => { @@ -452,13 +428,13 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.addFilterBtn(page)).not.toBeVisible(); }); - await test.step('Verify Add filters appears when Select filter removed', async () => { + await test.step('Verify Add filter appears when Select filter removed', async () => { await locators.clearSelectButton(page, 0).click(); await expect(locators.clearAllBtn(page)).toBeVisible(); await expect(locators.addFilterBtn(page)).toBeVisible(); }); - await test.step('Verify Add filters appears when Input filter removed ', async () => { + await test.step('Verify Add filter appears when Input filter removed', async () => { await locators.addFilterBtn(page).click(); await locators.addFilterMenuItem(page, 'Device').waitFor({ state: 'visible' }); await locators.addFilterMenuItem(page, 'Device').click(); @@ -469,11 +445,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.addFilterBtn(page)).toBeVisible(); }); - await test.step('Vefity Add filters appear when clicking on Clear filters', async () => { + await test.step('Verify Add filter appears when clicking on Clear filters', async () => { await locators.addFilterBtn(page).click(); await locators.addFilterMenuItem(page, 'Position').waitFor({ state: 'visible' }); await locators.addFilterMenuItem(page, 'Position').click(); - await locators.addFilterInput(page, 'Filter by position').fill('Test'); + await locators.input(page, 'Filter by position').fill('Test'); await locators.clearAllBtn(page).click(); await expect(locators.clearAllBtn(page)).not.toBeVisible(); await expect(locators.addFilterBtn(page)).toBeVisible(); @@ -482,7 +458,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Add filter button appearing and disappearing by keyboard', { tag: [TAG.PRIORITY_HIGH, - TAG.FUNCTIONAL, + TAG.KEYBOARD, '@add-filter', '@base-trigger', '@filter-trigger', @@ -534,7 +510,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('ArrowDown'); await page.keyboard.press('Enter'); await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'hidden' }); - await locators.addFilterInput(page, 'Filter by position').fill('Test'); + await locators.input(page, 'Filter by position').fill('Test'); }); await test.step('Add DD filter and fill value', async () => { @@ -548,25 +524,27 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'hidden' }); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await expect(locators.dialogWithFocus(page)).toBeVisible(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); await page.keyboard.press('Tab'); + await expect(locators.applyBtn(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.dialog(page).waitFor({ state: 'hidden' }); }); - await test.step('Verofy Add filter removed when all filters added', async () => { + await test.step('Verify Add filter removed when all filters added', async () => { await expect(locators.clearAllBtn(page)).toBeVisible(); await expect(locators.addFilterBtn(page)).not.toBeVisible(); }); - await test.step('Verify Add filter appears and focused when Input flter removed', async () => { + await test.step('Verify Add filter appears and focused when Input filter removed', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); await expect(locators.clearAllBtn(page)).toBeVisible(); await expect(locators.addFilterBtn(page)).toBeFocused(); }); - await test.step('Verify Add filter appears and focused when Select flter removed', async () => { + await test.step('Verify Add filter appears and focused when Select filter removed', async () => { await page.keyboard.press('Enter'); await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); await expect(locators.addFilterMenuItem(page, 'Keywords')).toHaveClass(/highlighted/); @@ -574,8 +552,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await locators.dialog(page).waitFor({ state: 'visible' }); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await expect(locators.dialogWithFocus(page)).toBeVisible(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); await page.keyboard.press('Tab'); + await expect(locators.applyBtn(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.dialog(page).waitFor({ state: 'hidden' }); @@ -584,9 +564,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.clearAllBtn(page)).toBeVisible(); await expect(locators.addFilterBtn(page)).not.toBeFocused(); await expect( - page.locator( - '[data-ui-name="FilterTrigger.TriggerButton"][placeholder="Exclude keywords"]', - ), + locators.selectTrigger(page, 'Exclude keywords'), ).toBeFocused(); }); @@ -598,7 +576,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.addFilterMenuItem(page, 'Position')).toHaveClass(/highlighted/); await page.keyboard.press('Enter'); await locators.addFilterMenuItem(page, 'Position').waitFor({ state: 'hidden' }); - await locators.addFilterInput(page, 'Filter by position').fill('Test'); + await locators.input(page, 'Filter by position').fill('Test'); await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); await expect(locators.clearAllBtn(page)).toBeVisible(); @@ -630,8 +608,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.clearAllBtn(page)).not.toBeVisible(); await locators.input(page, 'Filter by name').fill('Test'); await expect(locators.clearAllBtn(page)).toBeVisible(); - const clearButton = page.locator('button[data-ui-name="ButtonLink"][aria-label="Clear"]'); - await clearButton.click(); + await locators.inputClearBtn(page).click(); await expect(locators.clearAllBtn(page)).not.toBeVisible(); }); @@ -652,8 +629,8 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.clearAllBtn(page)).toBeVisible(); await locators.clearAllBtn(page).click(); await expect(locators.clearAllBtn(page)).not.toBeVisible(); - await expect(locators.selectTriggerFilled(page, 'Device')).not.toBeVisible(); - await expect(locators.input(page, 'Filter by name')).not.toHaveText('Test'); + await expect(locators.filterValue(page, 'Device')).not.toBeVisible(); + await expect(locators.input(page, 'Filter by name')).toHaveValue(''); }); }); @@ -704,15 +681,16 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await locators.selectOption(page, 'Desktop').waitFor({ state: 'hidden' }); - await expect(locators.selectTriggerFilled(page, 'Device')).toBeVisible(); + await expect(locators.filterValue(page, 'Device')).toBeVisible(); await expect( - page.locator('[data-ui-name="FilterTrigger.TriggerButton"][placeholder="Device"]'), + locators.selectTrigger(page, 'Device'), ).toBeFocused(); await expect(locators.clearAllBtn(page)).toBeVisible(); await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); await expect(locators.clearAllBtn(page)).not.toBeVisible(); + await expect(locators.addFilterBtn(page)).toBeFocused(); }); await test.step('Verify all filters removed and Clear filters button hidden when pressing Clear filters', async () => { @@ -738,14 +716,14 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { } await page.keyboard.press('Enter'); await expect(locators.clearAllBtn(page)).not.toBeVisible(); - await expect(locators.selectTriggerFilled(page, 'Device')).not.toBeVisible(); - await expect(locators.input(page, 'Filter by fullname')).not.toHaveText('Test'); + await expect(locators.filterValue(page, 'Device')).not.toBeVisible(); + await expect(locators.input(page, 'Filter by fullname')).toHaveValue(''); }); }); }); test.describe('Different filter types', () => { - test('Verify drodown as filter keyboard interactions', { + test('Verify Dropdown as filter keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@add-filter', @@ -763,39 +741,45 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter.tsx', 'en'); - for (let i = 0; i < 6; i++) { - await page.keyboard.press('Tab'); - } - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Keywords')).toHaveClass(/highlighted/); + await test.step('Verify not applied Dropdown filter removed by Escape', async () => { + for (let i = 0; i < 6; i++) { + await page.keyboard.press('Tab'); + } + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Keywords')).toHaveClass(/highlighted/); - await page.keyboard.press('Enter'); - await locators.dialog(page).waitFor({ state: 'visible' }); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); - await page.keyboard.press('Escape'); - await expect(locators.dropdownTrigger(page, 'Exclude keywords')).not.toBeVisible(); - await expect(locators.addFilterBtn(page)).toBeFocused(); + await page.keyboard.press('Enter'); + await locators.dialog(page).waitFor({ state: 'visible' }); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await page.keyboard.press('Escape'); + await expect(locators.dropdownTrigger(page, 'Exclude keywords')).not.toBeVisible(); + await expect(locators.addFilterBtn(page)).toBeFocused(); + }); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Keywords')).toHaveClass(/highlighted/); - await page.keyboard.press('Enter'); - await locators.dialog(page).waitFor({ state: 'visible' }); + await test.step('Verify Dropdown filter value applied by keyboard', async () => { + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Keywords')).toHaveClass(/highlighted/); + await page.keyboard.press('Enter'); + await locators.dialog(page).waitFor({ state: 'visible' }); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.dialog(page).waitFor({ state: 'hidden' }); + await expect(locators.dialogWithFocus(page)).toBeVisible(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await page.keyboard.press('Tab'); + await expect(locators.applyBtn(page)).toBeFocused(); + await page.keyboard.press('Enter'); + await locators.dialog(page).waitFor({ state: 'hidden' }); - await expect( - page.locator('[data-ui-name="FilterTrigger.Text"][placeholder="Exclude keywords"]'), - ).toHaveText('Exclude: 1 keywords'); - await expect(locators.clearAllBtn(page)).toBeVisible(); - await expect(locators.addFilterBtn(page)).not.toBeFocused(); + await expect( + locators.filterValue(page, 'Exclude keywords'), + ).toHaveText('Exclude: 1 keywords'); + await expect(locators.clearAllBtn(page)).toBeVisible(); + await expect(locators.addFilterBtn(page)).not.toBeFocused(); + }); }); - test('Verify drodown as filter mouse interactions', { + test('Verify Dropdown as filter mouse interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@add-filter', @@ -813,33 +797,34 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter.tsx', 'en'); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); + await test.step('Verify not applied Dropdown filter removed by click on its trigger', async () => { + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); - await locators.addFilterMenuItem(page, 'Keywords').click(); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); - const applyButton = page.locator('span[data-ui-name="Button.Text"]:has-text("Apply")'); - await locators.dropdownTrigger(page, 'Exclude keywords').click(); - await expect(locators.dropdownTrigger(page, 'Exclude keywords')).not.toBeVisible(); + await locators.addFilterMenuItem(page, 'Keywords').click(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await locators.dropdownTrigger(page, 'Exclude keywords').click(); + await expect(locators.dropdownTrigger(page, 'Exclude keywords')).not.toBeVisible(); + }); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); + await test.step('Verify Dropdown filter value applied by Apply button', async () => { + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Keywords').waitFor({ state: 'visible' }); - await locators.addFilterMenuItem(page, 'Keywords').click(); - await locators.addFilterInput(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); - await applyButton.click(); - await expect( - page.locator('[data-ui-name="FilterTrigger.Text"][placeholder="Exclude keywords"]'), - ).toHaveText('Exclude: 1 keywords'); - await expect(locators.clearAllBtn(page)).toBeVisible(); + await locators.addFilterMenuItem(page, 'Keywords').click(); + await locators.input(page, 'Keyword - broad match\n[Keyword] - exact match').fill('Test'); + await locators.applyBtn(page).click(); + await expect( + locators.filterValue(page, 'Exclude keywords'), + ).toHaveText('Exclude: 1 keywords'); + await expect(locators.clearAllBtn(page)).toBeVisible(); + }); }); test('Verify Select with range as filter keyboard interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.KEYBOARD, '@add-filter', - '@base-trigger', - '@filter-trigger', '@button', '@input', '@input-number', @@ -852,50 +837,54 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter-complex-selects.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await test.step('Verify empty filter removed by Escape on its trigger', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await page.keyboard.press('Escape'); - await expect(locators.selectTrigger(page, 'Range')).not.toBeVisible(); - await expect(locators.addFilterBtn(page)).toBeFocused(); + await page.keyboard.press('Escape'); + await expect(locators.selectTrigger(page, 'Range')).not.toBeVisible(); + await expect(locators.addFilterBtn(page)).toBeFocused(); + }); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await locators.selectOption(page, '100,001+').waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Escape'); - await locators.selectOption(page, '100,001+').waitFor({ state: 'hidden' }); - await expect(locators.selectTrigger(page, 'Range')).not.toBeVisible(); - await expect(locators.addFilterBtn(page)).toBeFocused(); + await test.step('Verify empty filter removed by Escape inside the popper', async () => { + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await locators.selectOption(page, '100,001+').waitFor({ state: 'visible' }); + await page.keyboard.press('Tab'); + await page.keyboard.press('Escape'); + await locators.selectOption(page, '100,001+').waitFor({ state: 'hidden' }); + await expect(locators.selectTrigger(page, 'Range')).not.toBeVisible(); + await expect(locators.addFilterBtn(page)).toBeFocused(); + }); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await locators.selectOption(page, '100,001+').waitFor({ state: 'visible' }); + await test.step('Verify custom range applied by Enter', async () => { + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await locators.selectOption(page, '100,001+').waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.locator('[data-ui-name="InputNumber.Value"][placeholder="To"]').fill('5'); - await page.keyboard.press('Enter'); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText('Volume: 1-5'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await locators.rangeInput(page, 'To').fill('5'); + await page.keyboard.press('Enter'); + await expect(locators.filterValue(page)).toHaveText('Volume: 1-5'); + }); }); test('Verify Select with range as filter mouse interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@add-filter', - '@base-trigger', - '@filter-trigger', '@button', '@input', '@input-number', @@ -908,38 +897,42 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter-complex-selects.tsx', 'en'); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await locators.addFilterMenuItem(page, 'Range').click(); - await page.locator('[data-ui-name="AddFilterSelect.Option"][value="10,001-100,000"]').click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText( - 'Volume: 10,001-100,000', - ); + await test.step('Verify preset range selected', async () => { + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await locators.addFilterMenuItem(page, 'Range').click(); + await locators.selectOption(page, '10,001-100,000').click(); + await expect(locators.filterValue(page)).toHaveText( + 'Volume: 10,001-100,000', + ); + }); - await locators.clearSelectButton(page, 0).click(); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Range').click(); + await test.step('Verify custom range with From only', async () => { + await locators.clearSelectButton(page, 0).click(); + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Range').click(); - await page.locator('[data-ui-name="InputNumber.Value"][placeholder="From"]').fill('1'); - await page.locator('[data-ui-name="Button.Text"]:has-text("Apply")').click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText('Volume: 1+'); + await locators.rangeInput(page, 'From').fill('1'); + await locators.applyBtn(page).click(); + await expect(locators.filterValue(page)).toHaveText('Volume: 1+'); + }); - await locators.clearSelectButton(page, 0).click(); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await locators.addFilterMenuItem(page, 'Range').click(); - await page.locator('[data-ui-name="InputNumber.Value"][placeholder="From"]').fill('1'); - await page.locator('[data-ui-name="InputNumber.Value"][placeholder="To"]').fill('5'); - await page.locator('[data-ui-name="Button.Text"]:has-text("Apply")').click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText('Volume: 1-5'); + await test.step('Verify custom range with From and To', async () => { + await locators.clearSelectButton(page, 0).click(); + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await locators.addFilterMenuItem(page, 'Range').click(); + await locators.rangeInput(page, 'From').fill('1'); + await locators.rangeInput(page, 'To').fill('5'); + await locators.applyBtn(page).click(); + await expect(locators.filterValue(page)).toHaveText('Volume: 1-5'); + }); }); - test('Verify Select with search as filter keyboard interactions ', { + test('Verify Select with search as filter keyboard interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.KEYBOARD, '@add-filter', - '@base-trigger', - '@filter-trigger', '@button', '@input', '@input-number', @@ -952,43 +945,45 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter-complex-selects.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); - await page.keyboard.press('ArrowDown'); + await test.step('Verify filter removed by Escape when search has no selection', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); + await page.keyboard.press('ArrowDown'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await locators.addFilterSelectInputSearch(page).fill('abc'); - await page.keyboard.press('Escape'); - await expect(locators.selectTrigger(page, 'Select a fruit')).not.toBeVisible(); - await expect(locators.addFilterBtn(page)).toBeFocused(); + await locators.searchInput(page).fill('abc'); + await page.keyboard.press('Escape'); + await expect(locators.selectTrigger(page, 'Select a fruit')).not.toBeVisible(); + await expect(locators.addFilterBtn(page)).toBeFocused(); + }); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); - await page.keyboard.press('ArrowDown'); + await test.step('Verify option selected after search and trigger focused', async () => { + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Range')).toHaveClass(/highlighted/); + await page.keyboard.press('ArrowDown'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await locators.addFilterSelectInputSearch(page).fill('Banana'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('Enter'); - await locators.selectOption(page, 'Banana').waitFor({ state: 'hidden' }); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText('Fruit: Banana'); - await expect(page.locator('[data-ui-name="FilterTrigger.TriggerButton"]')).toBeFocused(); + await locators.searchInput(page).fill('Banana'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('Enter'); + await locators.selectOption(page, 'Banana').waitFor({ state: 'hidden' }); + await expect(locators.filterValue(page)).toHaveText('Fruit: Banana'); + await expect(locators.selectTrigger(page)).toBeFocused(); + }); }); test('Verify Select with search as filter mouse interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@add-filter', - '@base-trigger', - '@filter-trigger', '@button', '@input', '@input-number', @@ -1001,30 +996,31 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter-complex-selects.tsx', 'en'); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await locators.addFilterMenuItem(page, 'Select with search').click(); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - const selectInputSearch = page.locator('[data-ui-name="AddFilterSelect.InputSearch"]'); - await selectInputSearch.fill('abc'); - await locators.selectTrigger(page, 'Select a fruit').click(); - await expect(locators.selectTrigger(page, 'Select a fruit')).not.toBeVisible(); + await test.step('Verify filter removed by click on trigger when search has no selection', async () => { + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await locators.addFilterMenuItem(page, 'Select with search').click(); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await locators.searchInput(page).fill('abc'); + await locators.selectTrigger(page, 'Select a fruit').click(); + await expect(locators.selectTrigger(page, 'Select a fruit')).not.toBeVisible(); + }); - await locators.addFilterBtn(page).click(); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); - await locators.addFilterMenuItem(page, 'Select with search').click(); - await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); - await selectInputSearch.fill('Banana'); - await page.locator('[data-ui-name="AddFilterSelect.Option"]:has-text("Banana")').click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText('Fruit: Banana'); + await test.step('Verify option selected after search', async () => { + await locators.addFilterBtn(page).click(); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); + await locators.addFilterMenuItem(page, 'Select with search').click(); + await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'hidden' }); + await locators.searchInput(page).fill('Banana'); + await locators.selectOption(page, 'Banana').click(); + await expect(locators.filterValue(page)).toHaveText('Fruit: Banana'); + }); }); test('Verify Multiselect as filter keyboard interactions', { tag: [TAG.PRIORITY_MEDIUM, TAG.KEYBOARD, '@add-filter', - '@base-trigger', - '@filter-trigger', '@button', '@input', '@input-number', @@ -1051,8 +1047,8 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await page.keyboard.press('ArrowDown'); await page.keyboard.press('Enter'); - await page.locator('[data-ui-name="AddFilterSelect.Trigger"]').click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText( + await locators.addFilterSelectTrigger(page).click(); + await expect(locators.filterValue(page)).toHaveText( 'Multiselect: 1, 2', ); }); @@ -1061,8 +1057,6 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@add-filter', - '@base-trigger', - '@filter-trigger', '@button', '@input', '@input-number', @@ -1078,10 +1072,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.addFilterBtn(page).click(); await locators.addFilterMenuItem(page, 'Range').waitFor({ state: 'visible' }); await locators.addFilterMenuItem(page, 'MultiSelect').click(); - await page.getByText('Awesome option 0').click(); - await page.getByText('Awesome option 2').click(); - await page.locator('[data-ui-name="AddFilterSelect.Trigger"]').click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Text"]')).toHaveText( + await locators.selectOption(page, 'Awesome option 0').click(); + await locators.selectOption(page, 'Awesome option 2').click(); + await locators.addFilterSelectTrigger(page).click(); + await expect(locators.filterValue(page)).toHaveText( 'Multiselect: 0, 2', ); }); @@ -1104,27 +1098,31 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/add-filter/advanced/examples/add-filter.tsx', 'en'); - await page.keyboard.press('Tab'); - await locators.addFilterInput(page, 'Filter by name').fill('Test'); - await expect(locators.clearAllBtn(page)).toBeVisible(); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await locators.addFilterInput(page, 'Filter by fullname').fill('Test'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); + await test.step('Fill pre-filled Input filters', async () => { + await page.keyboard.press('Tab'); + await locators.input(page, 'Filter by name').fill('Test'); + await expect(locators.clearAllBtn(page)).toBeVisible(); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await locators.input(page, 'Filter by fullname').fill('Test'); + }); + await test.step('Verify Add filter focused after added Input filter is cleared', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.addFilterMenuItem(page, 'Position').waitFor({ state: 'visible' }); - await expect(locators.addFilterMenuItem(page, 'Keyword')).toHaveClass(/highlighted/); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('Enter'); - await locators.addFilterInput(page, 'Filter by position').fill('Test'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await expect(locators.addFilterBtn(page)).toBeFocused(); + await page.keyboard.press('Enter'); + await locators.addFilterMenuItem(page, 'Position').waitFor({ state: 'visible' }); + await expect(locators.addFilterMenuItem(page, 'Keyword')).toHaveClass(/highlighted/); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('Enter'); + await locators.input(page, 'Filter by position').fill('Test'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await expect(locators.addFilterBtn(page)).toBeFocused(); + }); }); }); @@ -1149,17 +1147,16 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.selectOption(page, 'Blue').click(); await expect(locators.addFilterBtn(page)).not.toBeVisible(); await expect(locators.clearAllBtn(page)).toBeVisible(); - await expect(locators.selectTriggerFilled(page, 'Color')).toHaveText('Color: Blue'); + await expect(locators.filterValue(page, 'Color')).toHaveText('Color: Blue'); }); await locators.clearAllBtn(page).click(); await test.step('Add Color filter and fill value outside from addFilter component', async () => { - const cigaretteChartElement = page.locator(`div[data-ui-name="Cigarette.Bar"][aria-label="Colors"] path[color="blue-300"]`); - await cigaretteChartElement.click(); + await page.locator('div[data-ui-name="Cigarette.Bar"][aria-label="Colors"] path[color="blue-300"]').click(); await expect(locators.addFilterBtn(page)).not.toBeVisible(); await expect(locators.clearAllBtn(page)).toBeVisible(); - await expect(locators.selectTriggerFilled(page, 'Color')).toHaveText('Color: Yellow'); + await expect(locators.filterValue(page, 'Color')).toHaveText('Color: Yellow'); await page.waitForTimeout(100); await expect(locators.selectOption(page, 'Blue')).not.toBeVisible(); await locators.clearAllBtn(page).click(); diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-chromium-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-chromium-linux.png deleted file mode 100644 index 7de7ce49d8..0000000000 Binary files a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-chromium-linux.png and /dev/null differ diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-chromium-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-chromium-linux.png new file mode 100644 index 0000000000..f92b036fc8 Binary files /dev/null and b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-chromium-linux.png differ diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-firefox-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-firefox-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-firefox-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-firefox-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-webkit-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-webkit-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-after-activating-Clear-all-by-keyboard-1-webkit-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Clear-filters-focus-state-by-keyboard-1-webkit-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-as-filter-after-mouse-interactions-1-chromium-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-filter-clear-button-hint-on-hover-1-chromium-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-as-filter-after-mouse-interactions-1-chromium-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-filter-clear-button-hint-on-hover-1-chromium-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-as-filter-after-mouse-interactions-1-firefox-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-filter-clear-button-hint-on-hover-1-firefox-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-as-filter-after-mouse-interactions-1-firefox-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-filter-clear-button-hint-on-hover-1-firefox-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-as-filter-after-mouse-interactions-1-webkit-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-filter-clear-button-hint-on-hover-1-webkit-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-as-filter-after-mouse-interactions-1-webkit-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Input-filter-clear-button-hint-on-hover-1-webkit-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-without-Add-filter-button-1-chromium-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-all-filters-added-and-Add-filter-button-hidden-1-chromium-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-without-Add-filter-button-1-chromium-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-all-filters-added-and-Add-filter-button-hidden-1-chromium-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-without-Add-filter-button-1-firefox-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-all-filters-added-and-Add-filter-button-hidden-1-firefox-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-without-Add-filter-button-1-firefox-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-all-filters-added-and-Add-filter-button-hidden-1-firefox-linux.png diff --git a/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-without-Add-filter-button-1-webkit-linux.png b/semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-all-filters-added-and-Add-filter-button-hidden-1-webkit-linux.png similarity index 100% rename from semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-Add-filter-without-Add-filter-button-1-webkit-linux.png rename to semcore/add-filter/__tests__/add-filter.browser-test.tsx-snapshots/-visual-Verify-all-filters-added-and-Add-filter-button-hidden-1-webkit-linux.png diff --git a/semcore/badge/__tests__/badge.browser-test.tsx b/semcore/badge/__tests__/badge.browser-test.tsx index 3b37542d1f..c84d8e63d1 100644 --- a/semcore/badge/__tests__/badge.browser-test.tsx +++ b/semcore/badge/__tests__/badge.browser-test.tsx @@ -34,6 +34,7 @@ test.describe(`${TAG.VISUAL}`, () => { await page.keyboard.press('ArrowDown'); await page.keyboard.press('Enter'); await page.getByRole('option').nth(0).waitFor({ state: 'hidden' }); + await expect(page.getByText('Current locale: fr')).toBeVisible(); await expect(page).toHaveScreenshot(); }); }); diff --git a/semcore/base-components/__tests__/animation.browser-test.tsx b/semcore/base-components/__tests__/animation.browser-test.tsx index ef090cf6fc..a880133a4e 100644 --- a/semcore/base-components/__tests__/animation.browser-test.tsx +++ b/semcore/base-components/__tests__/animation.browser-test.tsx @@ -19,7 +19,7 @@ We verify states, visibility, and attributes. ===================================================== */ test.describe(`${TAG.FUNCTIONAL}`, () => { variants.forEach(({ parent, duration, delay }) => { - test(`Check ${parent} duration=${duration}, delay=${delay}`, { + test(`Verify ${parent} animation styles with duration=${duration}, delay=${delay}`, { tag: [TAG.PRIORITY_HIGH, '@animation', '@base-components', @@ -45,26 +45,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const parentLocator = button.locator(`xpath=ancestor::*[@data-ui-name="${parent}"]`); await expect(parentLocator).toBeVisible(); - const animationStyles = await parentLocator.evaluate((el) => { - const style = getComputedStyle(el); - return { - animationDelay: style.animationDelay, - animationDuration: style.animationDuration, - animationTimingFunction: style.animationTimingFunction, - display: style.display, - }; - }); - - const expectedDuration = `${duration / 1000}s`; - const expectedDelay = `${delay / 1000}s`; - - await expect(animationStyles.animationDuration).toBe(expectedDuration); - await expect(animationStyles.animationDelay).toBe(expectedDelay); - await expect(animationStyles.animationTimingFunction).toBe('ease-out'); - expect(animationStyles.display).toBe('block'); - - await button.click(); - await expect(button).toBeVisible(); + await expect(parentLocator).toHaveCSS('animation-duration', `${duration / 1000}s`); + await expect(parentLocator).toHaveCSS('animation-delay', `${delay / 1000}s`); + await expect(parentLocator).toHaveCSS('animation-timing-function', 'ease-out'); + await expect(parentLocator).toHaveCSS('display', 'block'); }); }); }); diff --git a/semcore/base-components/__tests__/breakpoints.browser-test.tsx b/semcore/base-components/__tests__/breakpoints.browser-test.tsx index c1aab4983c..07ec3b9759 100644 --- a/semcore/base-components/__tests__/breakpoints.browser-test.tsx +++ b/semcore/base-components/__tests__/breakpoints.browser-test.tsx @@ -27,13 +27,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await loadPage(page, 'stories/components/base-components/breakpoints/docs/examples/simple-use.tsx', 'en'); await page.waitForTimeout(100); - const button = page.locator('[data-ui-name="Button"]'); + const button = page.getByRole('button'); - const buttonText = await button.locator('[data-ui-name="Button.Text"]').textContent(); - expect(buttonText?.trim()).toBe(`Size ${expectedSize}`); - - const buttonHeight = await button.evaluate((el) => getComputedStyle(el).height); - expect(buttonHeight).toBe(expectedHeight); + await expect(button).toHaveText(`Size ${expectedSize}`); + await expect(button).toHaveCSS('height', expectedHeight); }); }); }); @@ -57,43 +54,29 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await loadPage(page, 'stories/components/base-components/breakpoints/docs/examples/manual-control.tsx', 'en'); await page.waitForTimeout(100); - const button = page.locator('[data-ui-name="Button"]'); - - const buttonText = await button.locator('[data-ui-name="Button.Text"]').textContent(); - expect(buttonText?.trim()).toBe(`Size${expectedSize}`); + const button = page.getByRole('button'); - const buttonHeight = await button.evaluate((el) => getComputedStyle(el).height); - expect(buttonHeight).toBe(expectedHeight); + await expect(button).toHaveText(`Size${expectedSize}`); + await expect(button).toHaveCSS('height', expectedHeight); }); }); }); - test.describe('Mocking ', () => { - const breakpoints = [ - { width: 300, expectedText: '(max-width: 300px)' }, - { width: 500, expectedText: '(max-width: 500px)' }, - { width: 700, expectedText: '(max-width: 700px)' }, - { width: 900, expectedText: '(max-width: 900px)' }, - { width: 1100, expectedText: '(max-width: 1100px)' }, - { width: 1200, expectedText: 'ZOOM WINDOW' }, - ]; + test.describe('Mocking', () => { + test('Verify mocked matchMedia query is shown regardless of viewport width', { + tag: [TAG.PRIORITY_HIGH, + '@base-components', + '@breakpoints'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/base-components/breakpoints/docs/examples/mocking.tsx', 'en'); - breakpoints.forEach(({ width, expectedText }) => { - test(`Verify '${expectedText}' shown at viewport width ${width}px`, { - tag: [TAG.PRIORITY_HIGH, - '@base-components', - '@breakpoints'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/breakpoints/docs/examples/mocking.tsx', 'en'); + await page.setViewportSize({ width: 1200, height: 800 }); + await page.waitForTimeout(100); - await page.setViewportSize({ width, height: 800 }); - await page.waitForTimeout(100); - - const mediaTextLocator = page.locator('div', { - hasText: 'Media matches \'(max-width: 700px)\'', - }); - await expect(mediaTextLocator.nth(1)).toBeVisible(); + const mediaTextLocator = page.locator('div', { + hasText: 'Media matches \'(max-width: 700px)\'', }); + await expect(mediaTextLocator.nth(1)).toBeVisible(); }); }); @@ -113,18 +96,16 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@base-components', '@breakpoints'], }, async ({ page, browserName }) => { + test.skip(browserName === 'webkit', 'WebKit does not update matchMedia after setViewportSize in headless mode'); await loadPage(page, 'stories/components/base-components/breakpoints/docs/examples/custom-media.tsx', 'en'); - if (browserName !== 'webkit') { - // the webkit skipped temporary because it doesnt update the size, in debug mode all words well - await page.setViewportSize({ width, height: 800 }); - await page.waitForTimeout(100); + await page.setViewportSize({ width, height: 800 }); + await page.waitForTimeout(100); - const mediaTextLocator = page.locator('div', { - hasText: ` Media matches "${expectedText}"`, - }); - await expect(mediaTextLocator.nth(1)).toBeVisible(); - } + const mediaTextLocator = page.locator('div', { + hasText: ` Media matches "${expectedText}"`, + }); + await expect(mediaTextLocator.nth(1)).toBeVisible(); }); }); }); diff --git a/semcore/base-components/__tests__/ellipsis-manager.test.ts b/semcore/base-components/__tests__/ellipsis-manager.test.tsx similarity index 100% rename from semcore/base-components/__tests__/ellipsis-manager.test.ts rename to semcore/base-components/__tests__/ellipsis-manager.test.tsx diff --git a/semcore/base-components/__tests__/ellipsis.axe-test.tsx b/semcore/base-components/__tests__/ellipsis.axe-test.tsx index 2a2b22d586..d1039852ea 100644 --- a/semcore/base-components/__tests__/ellipsis.axe-test.tsx +++ b/semcore/base-components/__tests__/ellipsis.axe-test.tsx @@ -9,7 +9,7 @@ export const locators = { hint: (page: Page) => page.locator('[data-ui-name="Hint"]'), }; -test.describe(`@ellipsis ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@base-components @ellipsis ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/base-components/ellipsis/docs/examples/basic_usage.tsx', 'en'); diff --git a/semcore/base-components/__tests__/ellipsis.browser-test.tsx b/semcore/base-components/__tests__/ellipsis.browser-test.tsx index 2c61604575..4291ca8583 100644 --- a/semcore/base-components/__tests__/ellipsis.browser-test.tsx +++ b/semcore/base-components/__tests__/ellipsis.browser-test.tsx @@ -11,9 +11,17 @@ export const locators = { return link.locator('[data-ui-name="Link.Text"]'); }, text: (page: Page) => page.locator('[data-ui-name="Text"]'), + tagText: (page: Page) => page.locator('[data-ui-name="Tag.Text"]'), hint: (page: Page) => page.locator('[data-ui-name="Hint"]'), }; +const waitForHintOpaque = (page: Page) => page.waitForFunction( + () => { + const el = document.querySelector('[data-ui-name="Hint"]'); + return el && getComputedStyle(el).opacity === '1'; + }, +); + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -49,17 +57,13 @@ test.describe(`${TAG.VISUAL}`, () => { await locators.text(page).waitFor({ state: 'visible' }); await page.waitForTimeout(200); + await expect(locators.text(page)).toHaveClass(/__isEllipsized/); await test.step('Hover text and verify hint appears', async () => { await locators.text(page).hover(); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); }); @@ -89,26 +93,21 @@ test.describe(`${TAG.VISUAL}`, () => { }); test('Verify basic ellipsis usage', { - tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@base-components', '@ellipsis', '@tag', '@typography'], + tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@base-components', '@ellipsis', '@tag'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/ellipsis/docs/examples/basic_usage.tsx', 'en'); await page.waitForTimeout(100); await test.step('Hover text and verify hint appears', async () => { - await page.locator('[data-ui-name="Tag.Text"]').hover(); + await locators.tagText(page).hover(); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); }); - test('Verify search highlight works well', { - tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@base-components', '@ellipsis', '@flex-box', '@input', '@typography'], + test('Verify search match highlight inside ellipsis text', { + tag: [TAG.PRIORITY_HIGH, '@base-components', '@ellipsis', '@flex-box', '@input', '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/ellipsis/docs/examples/with_search_selection.tsx', 'en'); @@ -149,18 +148,20 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Hover text - hint should appear', async () => { - await page.locator('[data-ui-name="Tag.Text"]').hover(); + await expect(locators.tagText(page)).toHaveClass(/__isEllipsized/); + await locators.tagText(page).hover(); await expect(locators.hint(page)).toHaveCount(1); + await waitForHintOpaque(page); }); await test.step('Move mouse away - hint should hide', async () => { - await page.mouse.move(0, 0); + await page.mouse.move(0, 0, { steps: 5 }); await expect(locators.hint(page)).toHaveCount(0); }); }); - test('Verify hint shows and hide via keyboard interaction', { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-components', '@ellipsis', '@link'], + test('Verify hint shows and hides via keyboard interaction', { + tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-components', '@ellipsis', '@link', '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/ellipsis/tests/examples/link_with_ellipsis.tsx', 'en'); await locators.link(page).waitFor({ state: 'visible' }); @@ -181,7 +182,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test('Verify no hint when text is not truncated', { - tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@base-components', '@ellipsis', '@link'], + tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@base-components', '@ellipsis', '@link', '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/ellipsis/tests/examples/link_with_ellipsis.tsx', 'en', { ellipsis: false }); await page.waitForTimeout(100); @@ -218,26 +219,27 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await loadPage(page, 'stories/components/base-components/ellipsis/docs/examples/basic_usage.tsx', 'en'); await page.waitForTimeout(100); - await test.step('Show hint and verify it is positioned above text', async () => { - await page.locator('[data-ui-name="Tag.Text"]').hover(); + await test.step('Show hint and verify it is placed right next to the text without overlapping', async () => { + await locators.tagText(page).hover(); await expect(locators.hint(page)).toHaveCount(1); + await waitForHintOpaque(page); - const textBox = await page.locator('[data-ui-name="Tag.Text"]').boundingBox(); - const hintBox = await locators.hint(page).boundingBox(); + const textBox = (await locators.tagText(page).boundingBox())!; + const hintBox = (await locators.hint(page).boundingBox())!; - expect(textBox).not.toBeNull(); - expect(hintBox).not.toBeNull(); + const textBottom = textBox.y + textBox.height; + const gap = hintBox.y >= textBottom + ? hintBox.y - textBottom + : textBox.y - (hintBox.y + hintBox.height); - // Hint should be positioned above or near the text - if (textBox && hintBox) { - expect(Math.abs(hintBox.y - textBox.y)).toBeLessThan(200); - } + expect(gap).toBeGreaterThanOrEqual(0); + expect(gap).toBeLessThan(20); }); }); test('Verify observe with undefined init value', { - tag: [TAG.PRIORITY_HIGH, '@base-components', '@ellipsis', '@link'], + tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@base-components', '@ellipsis', '@link'], }, async ({ page }) => { const link = 'https://developer.semrush.com/intergalactic/components/ellipsis/ellipsis'; @@ -269,7 +271,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Click button to change text to long text', async () => { - await page.getByRole('button').first().click(); + await page.getByRole('button', { name: 'Change text (via DOM)' }).click(); // Wait for text to change const textElement = locators.text(page); @@ -282,8 +284,6 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Hover on ellipsis text - hint should appear with full text', async () => { - await page.getByRole('button').nth(0).click(); - const textElement = locators.text(page); await textElement.hover(); @@ -300,7 +300,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.hint(page)).toHaveCount(0); - await page.getByRole('button').nth(1).click(); + await page.getByRole('button', { name: 'Reset' }).click(); const textElement = locators.text(page); await expect(textElement).toBeVisible(); @@ -335,7 +335,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test.describe(` Clipboard copy`, () => { + test.describe('Clipboard copy', () => { const fullText = 'Intergalactic is a constantly developing system of UI components, guidelines and UX patterns for building exceptional web experiences.'; const longUrl = 'https://example.com/very/long/path/to/resource/with/many/segments/file.pdf'; @@ -371,10 +371,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { } test('Verify full text is copied from end-crop ellipsis', { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], + tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], }, async ({ page, browserName }) => { await loadPage(page, storyPath, 'en'); - if (browserName == 'webkit') test.skip(); // doesnt work properly for webkit in headless mode + test.skip(browserName === 'webkit', 'Clipboard copy does not work in headless WebKit'); const textElements = locators.text(page); await textElements.first().waitFor({ state: 'visible' }); @@ -391,10 +391,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test('Verify full text is copied from middle-crop ellipsis', { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], + tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], }, async ({ page, browserName }) => { await loadPage(page, storyPath, 'en'); - if (browserName == 'webkit') test.skip(); // doesnt work properly in headless mode + test.skip(browserName === 'webkit', 'Clipboard copy does not work in headless WebKit'); const textElements = locators.text(page); await textElements.first().waitFor({ state: 'visible' }); @@ -411,10 +411,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test('Verify full link is copied from middle-crop link ellipsis', { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], + tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], }, async ({ page, browserName }) => { await loadPage(page, storyPath, 'en'); - if (browserName != 'chromium') test.skip(); + test.skip(browserName !== 'chromium', 'Clipboard copy of links works only in headless Chromium'); await page.waitForTimeout(300); await setupClipboardMock(page); @@ -428,15 +428,15 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test('Verify full link is copied from end-crop link ellipsis', { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], + tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, '@base-components', '@ellipsis', '@flex-box', '@link', '@notice', '@typography'], }, async ({ page, browserName }) => { await loadPage(page, storyPath, 'en'); - if (browserName != 'chromium') test.skip(); // doesnt work properly in headless mode + test.skip(browserName !== 'chromium', 'Clipboard copy of links works only in headless Chromium'); await page.waitForTimeout(300); await setupClipboardMock(page); - await test.step('Select middle-crop link text and copy', async () => { + await test.step('Select end-crop link text and copy', async () => { const linkText = page.locator('[data-ui-name="Link.Text"]').nth(1); await selectAllAndCopy(page, linkText); diff --git a/semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-highlight-works-well-1-chromium-linux.png b/semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-match-highlight-inside-ellipsis-text-1-chromium-linux.png similarity index 100% rename from semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-highlight-works-well-1-chromium-linux.png rename to semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-match-highlight-inside-ellipsis-text-1-chromium-linux.png diff --git a/semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-highlight-works-well-1-firefox-linux.png b/semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-match-highlight-inside-ellipsis-text-1-firefox-linux.png similarity index 100% rename from semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-highlight-works-well-1-firefox-linux.png rename to semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-match-highlight-inside-ellipsis-text-1-firefox-linux.png diff --git a/semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-highlight-works-well-1-webkit-linux.png b/semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-match-highlight-inside-ellipsis-text-1-webkit-linux.png similarity index 100% rename from semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-highlight-works-well-1-webkit-linux.png rename to semcore/base-components/__tests__/ellipsis.browser-test.tsx-snapshots/-visual-Verify-search-match-highlight-inside-ellipsis-text-1-webkit-linux.png diff --git a/semcore/base-components/__tests__/ellipsis.test.ts b/semcore/base-components/__tests__/ellipsis.test.tsx similarity index 100% rename from semcore/base-components/__tests__/ellipsis.test.ts rename to semcore/base-components/__tests__/ellipsis.test.tsx diff --git a/semcore/base-components/__tests__/flex-box.browser-test.tsx b/semcore/base-components/__tests__/flex-box.browser-test.tsx index c497dd2cbe..ba0c347edf 100644 --- a/semcore/base-components/__tests__/flex-box.browser-test.tsx +++ b/semcore/base-components/__tests__/flex-box.browser-test.tsx @@ -1,7 +1,26 @@ +import type { Locator } from '@semcore/testing-utils/playwright'; import { test, expect } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; +const expectCSS = async (locator: Locator, styles: Record) => { + for (const [property, value] of Object.entries(styles)) { + await expect(locator).toHaveCSS(property, value); + } +}; + +type StyleCase = { props: string; styles: Record }; + +const getAfterInset = (locator: Locator) => locator.evaluate((el) => { + const after = window.getComputedStyle(el, '::after'); + return { + top: after.top, + right: after.right, + bottom: after.bottom, + left: after.left, + }; +}); + /* ===================================================== @functional Keyboard and mouse interactions - no snapshots here. @@ -15,100 +34,24 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/flex-box/tests/examples/box-margins-and-paddings.tsx', 'en'); - // Get all Box elements - const boxes = await page.$$('div[data-ui-name="Box"]'); - - // Check No m/p - expect( - await boxes[0].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - margin: computedStyle.margin, - padding: computedStyle.padding, - }; - }), - ).toEqual({ margin: '0px', padding: '0px' }); - - // Check m={5} p={10} - expect( - await boxes[1].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - margin: computedStyle.margin, - padding: computedStyle.padding, - }; - }), - ).toEqual({ margin: '20px', padding: '40px' }); - - // Check mr={5} ml={5} mt={10} mb={10} - expect( - await boxes[2].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - margin: computedStyle.margin, - }; - }), - ).toEqual({ margin: '40px 20px' }); - - // Check pt={10} pr={5} pb={10} pl={5} - expect( - await boxes[3].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - padding: computedStyle.padding, - }; - }), - ).toEqual({ padding: '40px 20px' }); - - // Check mx={10} - expect( - await boxes[4].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - margin: computedStyle.margin, - }; - }), - ).toEqual({ margin: '0px 40px' }); - - // Check my={10} - expect( - await boxes[5].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - margin: computedStyle.margin, - }; - }), - ).toEqual({ margin: '40px 0px' }); - - // Check px={10} - expect( - await boxes[6].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - padding: computedStyle.padding, - }; - }), - ).toEqual({ padding: '0px 40px' }); - - // Check py={10} - expect( - await boxes[7].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - padding: computedStyle.padding, - }; - }), - ).toEqual({ padding: '40px 0px' }); - - // Check scaleIndent={4} - expect( - await boxes[8].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - padding: computedStyle.padding, - }; - }), - ).toEqual({ padding: '40px 0px' }); + const boxes = page.locator('div[data-ui-name="Box"]'); + const cases: StyleCase[] = [ + { props: 'no m/p', styles: { margin: '0px', padding: '0px' } }, + { props: 'm={5} p={10}', styles: { margin: '20px', padding: '40px' } }, + { props: 'mr={5} ml={5} mt={10} mb={10}', styles: { margin: '40px 20px' } }, + { props: 'pt={10} pr={5} pb={10} pl={5}', styles: { padding: '40px 20px' } }, + { props: 'mx={10}', styles: { margin: '0px 40px' } }, + { props: 'my={10}', styles: { margin: '40px 0px' } }, + { props: 'px={10}', styles: { padding: '0px 40px' } }, + { props: 'py={10}', styles: { padding: '40px 0px' } }, + { props: 'scaleIndent={5} py={10}', styles: { padding: '50px 0px' } }, + ]; + + for (const [index, { props, styles }] of cases.entries()) { + await test.step(`Verify ${props}`, async () => { + await expectCSS(boxes.nth(index), styles); + }); + } }); test('Verify Box dimensions', { @@ -118,109 +61,30 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/flex-box/tests/examples/flex-box-width-height-test.tsx', 'en'); - // Get all Box elements - const boxes = await page.$$('div[data-ui-name="Box"]'); - - // Check w={0.5} h={0.25} - expect( - await boxes[0].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - width: computedStyle.width, - height: computedStyle.height, - }; - }), - ).toEqual({ width: '200px', height: '25px' }); - - // Check w='50px' h='50px' - expect( - await boxes[1].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - width: computedStyle.width, - height: computedStyle.height, - }; - }), - ).toEqual({ width: '50px', height: '50px' }); - - // Check w={2 / 5} h='auto' - expect( - await boxes[2].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - width: computedStyle.width, - }; - }), - ).toEqual({ width: '160px' }); - - // Check h={2 / 5} w='auto' - expect( - await boxes[3].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - height: computedStyle.height, - }; - }), - ).toEqual({ height: '40px' }); - - // Check wMax='100px' hMax='50px' - expect( - await boxes[4].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - width: computedStyle.width, - height: computedStyle.height, - }; - }), - ).toEqual({ width: '100px', height: '50px' }); - - // Check wMin='100px' hMin='100px' - expect( - await boxes[5].evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - width: computedStyle.width, - height: computedStyle.height, - }; - }), - ).toEqual({ width: '100px', height: '100px' }); - }); -}); - -/* ===================================================== -@visual -Visual states, hover and focus styles, paddings, margins, and snapshots. -===================================================== */ -test.describe(`${TAG.VISUAL}`, () => { - test('Verify Flex gaps for all boxes', { - tag: [TAG.PRIORITY_HIGH, - '@base-components', - '@flex-box'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/flex-box/tests/examples/flex-gaps-test.tsx', 'en'); - await expect(page).toHaveScreenshot(); - }); - - test('Verify Flex base example', { - tag: [TAG.PRIORITY_HIGH, - '@base-components', - '@flex-box'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/flex-box/docs/examples/flex.tsx', 'en'); - await expect(page).toHaveScreenshot(); + const boxes = page.locator('div[data-ui-name="Box"]'); + const cases: StyleCase[] = [ + { props: 'w={0.5} h={0.25}', styles: { width: '200px', height: '25px' } }, + { props: 'w=\'50px\' h=\'50px\'', styles: { width: '50px', height: '50px' } }, + { props: 'w={2 / 5} h=\'auto\'', styles: { width: '160px' } }, + { props: 'h={2 / 5} w=\'auto\'', styles: { height: '40px' } }, + { props: 'wMax=\'100px\' hMax=\'50px\'', styles: { width: '100px', height: '50px' } }, + { props: 'wMin=\'100px\' hMin=\'100px\'', styles: { width: '100px', height: '100px' } }, + ]; + + for (const [index, { props, styles }] of cases.entries()) { + await test.step(`Verify ${props}`, async () => { + await expectCSS(boxes.nth(index), styles); + }); + } }); test('Verify Flex hover cursor', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@base-components', '@flex-box'], }, async ({ page, browserName }) => { - /* - Firefox doesn't retain the :hover pseudo-state when getComputedStyle - is evaluated via Playwright — by the time the JS executes, the browser - has already dropped the synthetic hover, so cursor falls back to 'auto'. - */ - if (browserName === 'firefox') return; + test.skip(browserName === 'firefox', 'Firefox drops the synthetic :hover state before getComputedStyle runs'); const hoverCursor = 'zoom-in'; @@ -230,13 +94,7 @@ test.describe(`${TAG.VISUAL}`, () => { await box.hover(); - const cursor = await box.evaluate((el) => { - const { cursor } = getComputedStyle(el); - - return cursor; - }); - - expect(cursor).toBe(hoverCursor); + await expect(box).toHaveCSS('cursor', hoverCursor); }); test('Verify Box token style props in configurable story', { @@ -250,31 +108,17 @@ test.describe(`${TAG.VISUAL}`, () => { borderRadius: '10px', }); - const box = page.locator('[data-ui-name="Box"]'); - - const styles = await box.evaluate((el) => { - const computedStyle = window.getComputedStyle(el); - return { - backgroundColor: computedStyle.backgroundColor, - borderTopWidth: computedStyle.borderTopWidth, - borderTopStyle: computedStyle.borderTopStyle, - borderTopColor: computedStyle.borderTopColor, - borderRadius: computedStyle.borderRadius, - }; - }); - - expect(styles).toEqual({ - backgroundColor: 'rgb(1, 2, 3)', - borderTopWidth: '2px', - borderTopStyle: 'solid', - borderTopColor: 'rgb(7, 8, 9)', - borderRadius: '10px', + await expectCSS(page.locator('[data-ui-name="Box"]'), { + 'background-color': 'rgb(1, 2, 3)', + 'border-top-width': '2px', + 'border-top-style': 'solid', + 'border-top-color': 'rgb(7, 8, 9)', + 'border-radius': '10px', }); }); test('Verify inAfterOutline applies focusRingXOffset attributes to ::after', { tag: [TAG.PRIORITY_HIGH, - TAG.KEYBOARD, '@base-components', '@flex-box'], }, async ({ page }) => { @@ -290,17 +134,7 @@ test.describe(`${TAG.VISUAL}`, () => { const box = page.locator('[data-ui-name="Box"]'); await box.focus(); - const offsets = await box.evaluate((el) => { - const after = window.getComputedStyle(el, '::after'); - return { - top: after.top, - right: after.right, - bottom: after.bottom, - left: after.left, - }; - }); - - expect(offsets).toEqual({ + expect(await getAfterInset(box)).toEqual({ top: '8px', right: '4px', bottom: '8px', @@ -310,7 +144,6 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify inAfterOutline without focusRingXOffset keeps inset 0 on ::after', { tag: [TAG.PRIORITY_HIGH, - TAG.KEYBOARD, '@base-components', '@flex-box'], }, async ({ page }) => { @@ -322,17 +155,7 @@ test.describe(`${TAG.VISUAL}`, () => { const box = page.locator('[data-ui-name="Box"]'); await box.focus(); - const offsets = await box.evaluate((el) => { - const after = window.getComputedStyle(el, '::after'); - return { - top: after.top, - right: after.right, - bottom: after.bottom, - left: after.left, - }; - }); - - expect(offsets).toEqual({ + expect(await getAfterInset(box)).toEqual({ top: '0px', right: '0px', bottom: '0px', @@ -340,3 +163,27 @@ test.describe(`${TAG.VISUAL}`, () => { }); }); }); + +/* ===================================================== +@visual +Visual states, hover and focus styles, paddings, margins, and snapshots. +===================================================== */ +test.describe(`${TAG.VISUAL}`, () => { + test('Verify Flex gaps for all boxes', { + tag: [TAG.PRIORITY_HIGH, + '@base-components', + '@flex-box'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/base-components/flex-box/tests/examples/flex-gaps-test.tsx', 'en'); + await expect(page).toHaveScreenshot(); + }); + + test('Verify Flex base example', { + tag: [TAG.PRIORITY_HIGH, + '@base-components', + '@flex-box'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/base-components/flex-box/docs/examples/flex.tsx', 'en'); + await expect(page).toHaveScreenshot(); + }); +}); diff --git a/semcore/base-components/__tests__/grid.browser-test.tsx b/semcore/base-components/__tests__/grid.browser-test.tsx index d54ea4709a..c4faa1dc93 100644 --- a/semcore/base-components/__tests__/grid.browser-test.tsx +++ b/semcore/base-components/__tests__/grid.browser-test.tsx @@ -1,123 +1,102 @@ -import { test, expect } from '@playwright/test'; +import { test, expect } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; +const sizes = [{ width: 320 }, { width: 768 }, { width: 1200 }]; + +const getColSpan = (className: string) => className.match(/_span_(\d+)/g)?.at(-1)?.match(/\d+/)?.[0] ?? null; + /* ===================================================== @visual Visual states, paddings, margins, and snapshots. ===================================================== */ test.describe(`${TAG.VISUAL}`, () => { - const sizes = [{ width: 320 }, { width: 768 }, { width: 1200 }]; - sizes.forEach(({ width }) => { - test(`Verify Row gutter for each ${width}px`, { + test(`Verify Col span and offset for each ${width}px`, { tag: [TAG.PRIORITY_HIGH, '@base-components', '@grid', '@flex-box'], }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/grid/docs/examples/example-use.tsx', 'en'); + await loadPage(page, 'stories/components/base-components/grid/docs/examples/change-in-general-offset.tsx', 'en'); await page.setViewportSize({ width, height: 800 }); - - const row = await page.locator('div[data-ui-name="Row"]'); - - expect( - await row.evaluate((box) => { - const computedStyle = window.getComputedStyle(box); - return { - marginLeft: computedStyle.marginLeft, - marginRight: computedStyle.marginRight, - }; - }), - ).toEqual({ marginLeft: '-8px', marginRight: '-8px' }); + await expect(page).toHaveScreenshot(); + await page.waitForSelector('div[data-ui-name="Row"]'); const columns = await page.locator('[data-ui-name="Row.Col"]').all(); + const expectedSpanValues = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']; + const expectedOffsetValues = ['11', '10', '9', '8', '7', '6', '5', '4', '3', '2', '1']; + await page.waitForTimeout(100); - for (const col of columns) { - const colPaddingLeft = await col.evaluate((el) => getComputedStyle(el).paddingLeft); - const colPaddingRight = await col.evaluate((el) => getComputedStyle(el).paddingRight); - - expect(colPaddingLeft).toBe('8px'); - expect(colPaddingRight).toBe('8px'); + for (const [i, column] of columns.entries()) { + await test.step(`Verify column ${i + 1} has span=${expectedSpanValues[i]}, offset=${expectedOffsetValues[i]} and 8px gutters`, async () => { + expect(getColSpan(await column.evaluate((el) => el.className))).toBe(expectedSpanValues[i]); + await expect(column).toHaveAttribute('offset', expectedOffsetValues[i]); + await expect(column).toHaveCSS('padding-left', '8px'); + await expect(column).toHaveCSS('padding-right', '8px'); + }); } }); }); sizes.forEach(({ width }) => { - test(`Verify Col span and offset for each ${width}px`, { + test(`Verify Grid is responsive with md, sm, xs, offset and mdOffset for each ${width}px`, { tag: [TAG.PRIORITY_HIGH, '@base-components', '@grid', '@flex-box'], }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/grid/docs/examples/change-in-general-offset.tsx', 'en'); + await loadPage(page, 'stories/components/base-components/grid/docs/examples/responsive.tsx', 'en'); await page.setViewportSize({ width, height: 800 }); await expect(page).toHaveScreenshot(); - const row = await page.waitForSelector('div[data-ui-name="Row"]'); - - const columns = await page.locator('[data-ui-name="Row.Col"]').all(); - - // Expected span and offset values based on the HTML structure - const expectedSpanValues = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']; - const expectedOffsetValues = ['11', '10', '9', '8', '7', '6', '5', '4', '3', '2', '1']; - await page.waitForTimeout(100); - for (let i = 0; i < columns.length; i++) { - const column = columns[i]; - const spanClass = await column.evaluate((el) => el.className); - const spanMatches = spanClass.match(/_span_(\d+)/g); - let secondSpanValue = null; - if (spanMatches && spanMatches.length > 1) { - secondSpanValue = spanMatches[1].match(/\d+/)[0]; - } - // added this logic because sometimes the class can contain two spans, where the second one is correct, and sometimes it contains only one correct span in the class. - const spanValue = - spanMatches?.length > 1 - ? spanMatches[1].match(/\d+/)?.[0] - : spanMatches?.[0]?.match(/\d+/)?.[0] ?? null; - expect(spanValue).toBe(expectedSpanValues[i]); - const offset = await column.evaluate( - (el) => el.getAttribute('offset') || getComputedStyle(el).getPropertyValue('offset'), - ); - expect(offset).toBe(expectedOffsetValues[i]); - const rowPaddingLeft = await column.evaluate( - (el) => window.getComputedStyle(el).paddingLeft, - ); - const rowPaddingRight = await column.evaluate( - (el) => window.getComputedStyle(el).paddingRight, - ); - expect(rowPaddingLeft).toBe('8px'); - expect(rowPaddingRight).toBe('8px'); - } }); }); sizes.forEach(({ width }) => { - test(`Verify Grid is responsive with md, sm, xs, offset and mdOffset for each ${width}px`, { + test(`Verify Grid is responsive with alternative API for each ${width}px`, { tag: [TAG.PRIORITY_HIGH, '@base-components', '@grid', '@flex-box'], }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/grid/docs/examples/responsive.tsx', 'en'); + await loadPage(page, 'stories/components/base-components/grid/docs/examples/responsive-alternative-api.tsx', 'en'); await page.setViewportSize({ width, height: 800 }); await expect(page).toHaveScreenshot(); }); }); +}); +/* ===================================================== +@functional +Computed styles - no snapshots here. +===================================================== */ +test.describe(`${TAG.FUNCTIONAL}`, () => { sizes.forEach(({ width }) => { - test(`Verify Grid is responsive with alternative API for each ${width}px`, { + test(`Verify Row gutter for each ${width}px`, { tag: [TAG.PRIORITY_HIGH, '@base-components', '@grid', '@flex-box'], }, async ({ page }) => { - await loadPage(page, 'stories/components/base-components/grid/docs/examples/responsive-alternative-api.tsx', 'en'); + await loadPage(page, 'stories/components/base-components/grid/docs/examples/example-use.tsx', 'en'); await page.setViewportSize({ width, height: 800 }); - await expect(page).toHaveScreenshot(); + + await test.step('Verify Row has -8px horizontal margins', async () => { + const row = page.locator('div[data-ui-name="Row"]'); + await expect(row).toHaveCSS('margin-left', '-8px'); + await expect(row).toHaveCSS('margin-right', '-8px'); + }); + + await test.step('Verify each Col has 8px horizontal paddings', async () => { + for (const col of await page.locator('[data-ui-name="Row.Col"]').all()) { + await expect(col).toHaveCSS('padding-left', '8px'); + await expect(col).toHaveCSS('padding-right', '8px'); + } + }); }); }); }); diff --git a/semcore/base-components/__tests__/hint.axe-test.tsx b/semcore/base-components/__tests__/hint.axe-test.tsx index 55187655ae..4caf60521c 100644 --- a/semcore/base-components/__tests__/hint.axe-test.tsx +++ b/semcore/base-components/__tests__/hint.axe-test.tsx @@ -4,18 +4,10 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - trigger: (page: Page, index?: number) => { - const base = page.getByRole('button'); - return typeof index === 'number' ? base.nth(index) : base; - }, - hint: (page: Page, index?: number) => { - const base = page.locator('[data-ui-name="Hint"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, - text: (page: Page) => page.getByText('Export to PDF'), + hint: (page: Page) => page.locator('[data-ui-name="Hint"]'), }; -test.describe(`@hint ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@base-components @hint ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/base-components/hint/docs/examples/basic-usage.tsx', 'en'); diff --git a/semcore/base-components/__tests__/hint.browser-test.tsx b/semcore/base-components/__tests__/hint.browser-test.tsx index ae017870a6..596c1eec27 100644 --- a/semcore/base-components/__tests__/hint.browser-test.tsx +++ b/semcore/base-components/__tests__/hint.browser-test.tsx @@ -4,7 +4,7 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - triggerBth: (page: Page, index?: number) => { + triggerBtn: (page: Page, index?: number) => { const base = page.getByRole('button'); return typeof index === 'number' ? base.nth(index) : base; }, @@ -19,6 +19,13 @@ export const locators = { text: (page: Page) => page.getByText('Export to PDF'), }; +const waitForHintOpaque = (page: Page) => page.waitForFunction( + () => { + const el = document.querySelector('[data-ui-name="Hint"]'); + return el && getComputedStyle(el).opacity === '1'; + }, +); + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -40,20 +47,15 @@ test.describe(`${TAG.VISUAL}`, () => { ]; placementVariants.forEach((variant) => { - test(`Verify hint with placement= ${variant.placement}`, { + test(`Verify hint with placement=${variant.placement}`, { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@hint', '@base-components', '@button'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/hint/tests/examples/base-example-props.tsx', 'en', variant); await test.step('Hover trigger and verify hint appears', async () => { - await locators.triggerBth(page).hover(); + await locators.triggerBtn(page).hover(); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); }); @@ -67,15 +69,10 @@ test.describe(`${TAG.VISUAL}`, () => { await test.step('Focus on button', async () => { await page.keyboard.press('Tab'); - await expect(locators.triggerBth(page)).toBeFocused(); + await expect(locators.triggerBtn(page)).toBeFocused(); await expect(locators.hint(page)).toHaveCount(1); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); @@ -85,12 +82,7 @@ test.describe(`${TAG.VISUAL}`, () => { await expect(locators.triggerLink(page)).toBeFocused(); await expect(locators.hint(page)).toHaveCount(1); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); }); @@ -105,12 +97,7 @@ test.describe(`${TAG.VISUAL}`, () => { const box = await link.boundingBox(); await link.hover({ position: { x: box!.width / 6, y: box!.height / 2 } }); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); }); @@ -125,12 +112,7 @@ test.describe(`${TAG.VISUAL}`, () => { const box = await link.boundingBox(); await link.hover({ position: { x: box!.width / 6, y: box!.height / 2 } }); await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); + await waitForHintOpaque(page); await expect(page).toHaveScreenshot(); }); }); @@ -152,7 +134,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Hover trigger - hint should appear', async () => { - await locators.triggerBth(page).hover(); + await locators.triggerBtn(page).hover(); await expect(locators.hint(page)).toHaveCount(1); }); @@ -168,7 +150,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await loadPage(page, 'stories/components/base-components/hint/docs/examples/basic-usage.tsx', 'en'); await page.getByRole('button').waitFor({ state: 'visible' }); - await test.step('Hint shown when bth focused', async () => { + await test.step('Hint shown when button focused', async () => { await page.keyboard.press('Tab'); await locators.hint(page).waitFor({ state: 'visible' }); await expect(locators.hint(page)).toHaveCount(1); @@ -196,16 +178,16 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify hint hides on blur', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@hint', '@base-components', '@flex-box', '@button', '@link'], }, async ({ page, browserName }) => { + test.skip(browserName === 'firefox', 'Firefox moves focus out of the page on Tab from the last element without a blur event'); await loadPage(page, 'stories/components/base-components/hint/docs/examples/basic-usage.tsx', 'en'); - if (browserName == 'firefox') test.skip(); - await test.step('Show hint by focusing trigger', async () => { + await test.step('Show hint by focusing the link', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await locators.hint(page).waitFor({ state: 'visible' }); await expect(locators.hint(page)).toHaveCount(1); }); - await test.step('Press Escape - hint should hide', async () => { + await test.step('Move focus away by Tab - hint should hide', async () => { await page.keyboard.press('Tab'); await locators.hint(page).waitFor({ state: 'hidden' }); await expect(locators.hint(page)).toHaveCount(0); @@ -213,12 +195,12 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test('Verify custom timeout delays', { - tag: [TAG.PRIORITY_MEDIUM, '@hint', '@base-components', '@button'], + tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@hint', '@base-components', '@button'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/hint/tests/examples/base-example-props.tsx', 'en', { timeout: 1000 }); await test.step('Hover and verify hint respects custom show delay', async () => { - await locators.triggerBth(page).hover(); + await locators.triggerBtn(page).hover(); await page.waitForTimeout(500); await expect(locators.hint(page)).toHaveCount(0); @@ -229,22 +211,21 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test('Verify hint z-index stacking', { - tag: [TAG.PRIORITY_MEDIUM, '@hint', '@base-components', '@flex-box', '@button', '@link'], + tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@hint', '@base-components', '@flex-box', '@button', '@link'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/hint/docs/examples/basic-usage.tsx', 'en'); await test.step('Show hint', async () => { - await locators.triggerBth(page).hover(); + await locators.triggerBtn(page).hover(); await expect(locators.hint(page)).toBeVisible({ timeout: 1000 }); }); - await test.step('Verify hint has proper z-index', async () => { + await test.step('Verify hint is placed on a positive z-index layer', async () => { const hint = locators.hint(page); const zIndex = await hint.evaluate((el) => { return window.getComputedStyle(el).zIndex; }); - // Hint should have high z-index for tooltip layer expect(parseInt(zIndex)).toBeGreaterThan(0); }); }); diff --git a/semcore/base-components/__tests__/popper.browser-test.tsx b/semcore/base-components/__tests__/popper.browser-test.tsx index 9b75e2f5ef..e9cdbfa6c8 100644 --- a/semcore/base-components/__tests__/popper.browser-test.tsx +++ b/semcore/base-components/__tests__/popper.browser-test.tsx @@ -1,13 +1,19 @@ +import type { Page } from '@semcore/testing-utils/playwright'; import { test, expect } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; +export const locators = { + popper: (page: Page) => page.locator('[data-ui-name="Popper.Popper"]'), + buttonTriggerText: (page: Page) => page.locator('[data-ui-name="ButtonTrigger.Text"]'), +}; + /* ===================================================== @functional Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe('@functional @popper', () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Focus Lock', () => { test('Verify Focus lock without disablePortal', { tag: [TAG.PRIORITY_HIGH, @@ -20,6 +26,7 @@ test.describe('@functional @popper', () => { '@dropdown-menu'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/dropdown-no-disable-portal.tsx', 'en'); + await expect(page.getByTestId('popper')).toBeVisible(); await page.mouse.click(1, 1); @@ -42,10 +49,10 @@ test.describe('@functional @popper', () => { '@popper', '@base-trigger', '@button-trigger', - '@input', '@dropdown-menu'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/dropdown-disable-portal.tsx', 'en'); + await expect(page.getByTestId('popper')).toBeVisible(); await page.mouse.click(1, 1); @@ -68,8 +75,8 @@ test.describe('@functional @popper', () => { }, async ({ page, browserName }) => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/cursor-anchoring.tsx', 'en'); - const trigger = page.locator('[data-testid="trigger"]'); - const popper = page.locator('[data-testid="popper"]'); + const trigger = page.getByTestId('trigger'); + const popper = page.getByTestId('popper'); const triggerRect = (await trigger.boundingBox())!; const rightBottom = [triggerRect.x + triggerRect.width, triggerRect.y + triggerRect.height]; @@ -89,15 +96,11 @@ test.describe('@functional @popper', () => { await page.mouse.move(leftBottom[0] + 10, leftBottom[1] - 10, { steps: 10 }); await popper.waitFor({ state: 'visible' }); - const secondX = (await popper.boundingBox())?.x ?? 0; - - // WebKit sometimes doesnt re-count coordinates - if (browserName === 'webkit') { - expect(secondX).toBeGreaterThan(0); - } else { + const leftPositionStep = browserName === 'webkit' ? test.step.skip : test.step; + await leftPositionStep('Verify popper follows the cursor to the left edge (WebKit does not recalculate coordinates)', async () => { await expect.poll(async () => (await popper.boundingBox())?.x ?? 0) .toBeLessThan(triggerRect.x + triggerRect.width * 0.2); - } + }); }); test.describe('Label', () => { @@ -111,7 +114,7 @@ test.describe('@functional @popper', () => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/label-referenced.tsx', 'en'); const options = page.getByRole('option'); - const selectText = page.locator('[data-ui-name="ButtonTrigger.Text"]'); + const selectText = locators.buttonTriggerText(page); await expect(options.nth(3)).toHaveCount(0); @@ -135,7 +138,7 @@ test.describe('@functional @popper', () => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/label-wrapped.tsx', 'en'); const options = page.getByRole('option'); - const selectText = page.locator('[data-ui-name="ButtonTrigger.Text"]'); + const selectText = locators.buttonTriggerText(page); await expect(options.nth(3)).toHaveCount(0); @@ -159,7 +162,7 @@ test.describe('@functional @popper', () => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/label-wrapped-disable-portal.tsx', 'en'); const options = page.getByRole('option'); - const selectText = page.locator('[data-ui-name="ButtonTrigger.Text"]'); + const selectText = locators.buttonTriggerText(page); await page.locator('label').click(); @@ -179,7 +182,7 @@ test.describe('@functional @popper', () => { }); }); - test('Verify popper display when OutsideClick', { + test('Verify popper closes by Escape and trigger click and stays open on clicks inside root', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, TAG.KEYBOARD, @@ -190,7 +193,7 @@ test.describe('@functional @popper', () => { await loadPage(page, 'stories/components/base-components/popper/docs/examples/click-outside', 'en'); const trigger = page.getByRole('button'); - const popper = page.locator('[data-ui-name="Popper.Popper"]'); + const popper = locators.popper(page); await trigger.click(); await expect(popper).toHaveCount(1); @@ -204,10 +207,7 @@ test.describe('@functional @popper', () => { await trigger.click(); - const rootBox = await page.locator('div').first().boundingBox(); - if (!rootBox) { - return; - } + const rootBox = (await page.locator('div').first().boundingBox())!; const clickX = rootBox.x + rootBox.width - 10; const clickY = rootBox.y + 10; @@ -231,7 +231,7 @@ test.describe('@functional @popper', () => { const triggerControlled = page.getByRole('button', { name: 'Controlled', exact: true }); const triggerUncontrolled = page.getByRole('button', { name: 'Uncontrolled', exact: true }); - const attachedPoppers = page.locator('[data-ui-name="Popper.Popper"]', { + const attachedPoppers = locators.popper(page).filter({ hasText: 'Attached content', }); @@ -354,7 +354,7 @@ test.describe('@functional @popper', () => { '@input'], }, async ({ page, browserName }) => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/disableEnforceFocus.tsx', 'en'); - if (browserName === 'firefox') return; // skipped for ff because focus order is other + test.skip(browserName === 'firefox', 'Firefox has a different focus order'); await page.keyboard.press('Tab'); @@ -423,7 +423,7 @@ test.describe('@functional @popper', () => { '@card'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/interaction-hover.tsx', 'en'); - const popper = page.locator('[data-ui-name="Popper.Popper"]'); + const popper = locators.popper(page); await test.step('Verify appears on hover Tooltip.Trigger as Text', async () => { const trigger = page.getByText('Trigger', { exact: true }); @@ -451,7 +451,7 @@ test.describe('@functional @popper', () => { await expect(popper).toHaveCount(0); }); - await test.step('Verify appears by click Button', async () => { + await test.step('Verify appears when click on a button moves focus to the trigger', async () => { const buttonBeforeOnFocus = page.locator('[data-position="before-onFocus"]'); const triggerOnFocus = page.getByTestId('popper-onFocus'); @@ -465,7 +465,7 @@ test.describe('@functional @popper', () => { test('Verify hover interaction appears by focus', { tag: [TAG.PRIORITY_HIGH, - TAG.MOUSE, + TAG.KEYBOARD, '@base-components', '@popper', '@flex-box', @@ -475,7 +475,7 @@ test.describe('@functional @popper', () => { '@card'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-components/popper/tests/examples/interaction-hover.tsx', 'en'); - const popper = page.locator('[data-ui-name="Popper.Popper"]'); + const popper = locators.popper(page); const buttonTrigger = page.getByTestId('button-hover'); await test.step('Verify appears on focus Tooltip.Trigger as button', async () => { @@ -522,7 +522,7 @@ test.describe('@functional @popper', () => { '@button', '@card'], }, async ({ page, browserName }) => { - if (browserName === 'chromium') test.skip(); // Chromium doesn’t simulate touch + test.skip(browserName === 'chromium', 'Chromium does not simulate touch'); await loadPage(page, 'stories/components/base-components/popper/tests/examples/interaction-hover.tsx', 'en'); const trigger = page.getByText('Trigger', { exact: true }); @@ -631,7 +631,6 @@ test.describe('@functional @popper', () => { '@base-components', '@popper', '@flex-box', - '@tooltip', '@button', '@card'], }, async ({ page, browserName }) => { @@ -761,7 +760,7 @@ test.describe('@functional @popper', () => { const openButton = page.getByRole('button', { name: 'Open popper' }); const closeButton = page.getByRole('button', { name: 'Close popper' }); const attachTrigger = page.getByText('Attach trigger'); - const popper = page.locator('[data-ui-name="Popper.Popper"]'); + const popper = locators.popper(page); await test.step('Mouse: Open popper via button click', async () => { await expect(popper).toHaveCount(0); @@ -814,14 +813,13 @@ test.describe('@functional @popper', () => { await expect(popper).toHaveCount(0); }); - if (browserName === 'chromium') { - await test.step('Focus should return to open button in Chromium', async () => { - await expect(openButton).toBeFocused(); - }); - } + const focusReturnStep = browserName === 'chromium' ? test.step : test.step.skip; + await focusReturnStep('Verify focus returns to the open button (checked in Chromium only)', async () => { + await expect(openButton).toBeFocused(); + }); }); - test('Verify popper dynamic and fixed position on page resize', { + test('Verify absolute and fixed poppers keep their position when page height changes', { tag: [TAG.PRIORITY_MEDIUM, TAG.MOUSE, '@base-components', @@ -839,21 +837,39 @@ test.describe('@functional @popper', () => { await expect(poppers.first()).toBeVisible(); await expect(poppers.nth(1)).toBeVisible(); - const initialDynamicY = (await poppers.first().boundingBox())!.x; - const initialFixedY = (await poppers.nth(1).boundingBox())!.x; + const triggers = page.getByRole('button', { name: 'Trigger' }); + + await test.step('Wait for poppers to be positioned above their triggers', async () => { + for (const index of [0, 1]) { + await expect.poll(async () => { + const popperBox = await poppers.nth(index).boundingBox(); + const triggerBox = await triggers.nth(index).boundingBox(); + return Boolean(popperBox && triggerBox && popperBox.y + popperBox.height <= triggerBox.y + 1); + }).toBe(true); + let previous = ''; + await expect.poll(async () => { + const current = JSON.stringify(await poppers.nth(index).boundingBox()); + const isStable = current === previous; + previous = current; + return isStable; + }).toBe(true); + } + }); + + const initialBoxes = [(await poppers.first().boundingBox())!, (await poppers.nth(1).boundingBox())!]; await resizeButton.click(); await page.getByText('some dynamic block that is loaded').waitFor({ state: 'visible' }); - const newDynamicY = (await poppers.first().boundingBox())!.x; - const newFixedY = (await poppers.nth(1).boundingBox())!.x; - - const dynamicShift = Math.abs(newDynamicY - initialDynamicY); - const fixedShift = Math.abs(newFixedY - initialFixedY); - - expect(dynamicShift).toBeGreaterThanOrEqual(0); - expect(fixedShift).toBeGreaterThanOrEqual(0); + await test.step('Verify absolute and fixed poppers did not move', async () => { + for (const index of [0, 1]) { + await expect.poll(async () => { + const box = (await poppers.nth(index).boundingBox())!; + return Math.max(Math.abs(box.x - initialBoxes[index].x), Math.abs(box.y - initialBoxes[index].y)); + }).toBeLessThan(1); + } + }); }); }); @@ -862,7 +878,7 @@ test.describe('@functional @popper', () => { Visual states and snapshots. ===================================================== */ test.describe(`${TAG.VISUAL}`, () => { - test('Verify popper position with OffSet prop', { + test('Verify popper position with offset prop', { tag: [TAG.PRIORITY_MEDIUM, '@base-components', '@popper', @@ -872,7 +888,7 @@ test.describe(`${TAG.VISUAL}`, () => { const trigger = page.getByRole('button'); await trigger.click(); - await page.locator('[data-ui-name="Popper.Popper"]').waitFor({ state: 'visible' }); + await locators.popper(page).waitFor({ state: 'visible' }); await expect(page).toHaveScreenshot(); }); diff --git a/semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-OffSet-prop-1-chromium-linux.png b/semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-offset-prop-1-chromium-linux.png similarity index 100% rename from semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-OffSet-prop-1-chromium-linux.png rename to semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-offset-prop-1-chromium-linux.png diff --git a/semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-OffSet-prop-1-firefox-linux.png b/semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-offset-prop-1-firefox-linux.png similarity index 100% rename from semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-OffSet-prop-1-firefox-linux.png rename to semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-offset-prop-1-firefox-linux.png diff --git a/semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-OffSet-prop-1-webkit-linux.png b/semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-offset-prop-1-webkit-linux.png similarity index 100% rename from semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-OffSet-prop-1-webkit-linux.png rename to semcore/base-components/__tests__/popper.browser-test.tsx-snapshots/-visual-Verify-popper-position-with-offset-prop-1-webkit-linux.png diff --git a/semcore/base-components/__tests__/scroll-area.browser-test.tsx b/semcore/base-components/__tests__/scroll-area.browser-test.tsx index 915d40153d..d71d89cfd8 100644 --- a/semcore/base-components/__tests__/scroll-area.browser-test.tsx +++ b/semcore/base-components/__tests__/scroll-area.browser-test.tsx @@ -16,9 +16,11 @@ async function checkAriaNowValue(scrollBar: any) { return value; } -async function waitForScrollChange(scrollBar: any, timeout = 3000) { +async function waitForScrollChange(scrollBar: any, scroll: () => Promise, timeout = 3000) { const before = Number(await scrollBar.getAttribute('aria-valuenow')); + await scroll(); + await expect .poll(async () => { const current = Number(await scrollBar.getAttribute('aria-valuenow')); @@ -55,11 +57,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Tab'); await expect(scrollContainer).toBeFocused(); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - - await waitForScrollChange(scrollBar); + await waitForScrollChange(scrollBar, async () => { + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + }); const now = await checkAriaNowValue(scrollBar); expect(now).toBeLessThanOrEqual(maxValue); }); @@ -78,8 +80,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const maxValue = await checkAriaMaxValue(scrollBar); await container.hover(); - await page.mouse.wheel(0, 600); - await waitForScrollChange(scrollBar); + await waitForScrollChange(scrollBar, async () => { + await page.mouse.wheel(0, 600); + }); const now = await checkAriaNowValue(scrollBar); expect(now).toBeLessThanOrEqual(maxValue); @@ -115,11 +118,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Tab'); await expect(mainContainer).toBeFocused(); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - - await waitForScrollChange(mainBar); + await waitForScrollChange(mainBar, async () => { + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + }); const nowMain = await checkAriaNowValue(mainBar); const nowReverse = await checkAriaNowValue(reverseBar); expect(nowReverse).toBeLessThan(await checkAriaMaxValue(reverseBar)); @@ -152,10 +155,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { .toBeGreaterThanOrEqual(initialMax); await grid.focus(); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await waitForScrollChange(scrollBar); + await waitForScrollChange(scrollBar, async () => { + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + }); const now = await checkAriaNowValue(scrollBar); expect(now).toBeGreaterThan(0); @@ -225,8 +229,9 @@ test.describe(`${TAG.VISUAL}`, () => { await page.keyboard.press('Tab'); await expect(scrollContainer).toBeFocused(); - await page.keyboard.press('ArrowDown'); - await waitForScrollChange(page.locator('[data-ui-name="ScrollArea.Bar"]')); + await waitForScrollChange(page.locator('[data-ui-name="ScrollArea.Bar"]'), async () => { + await page.keyboard.press('ArrowDown'); + }); await expect(page).toHaveScreenshot({ maxDiffPixelRatio: 0.01 }); }); @@ -244,8 +249,9 @@ test.describe(`${TAG.VISUAL}`, () => { const scrollBar = page.locator('[data-ui-name="ScrollArea.Bar"]'); await container.hover(); - await page.mouse.wheel(0, 600); - await waitForScrollChange(scrollBar); + await waitForScrollChange(scrollBar, async () => { + await page.mouse.wheel(0, 600); + }); await expect(page).toHaveScreenshot({ maxDiffPixelRatio: 0.01 }); }); @@ -323,12 +329,13 @@ test.describe(`${TAG.VISUAL}`, () => { const scrollBar = page.locator('[data-ui-name="ScrollArea.Bar"]'); await scrollContainer.hover(); - if (item.orientation === 'vertical') { - await page.mouse.wheel(0, 300); - } else if (item.orientation === 'horizontal') { - await page.mouse.wheel(300, 0); - } - await waitForScrollChange(scrollBar); + await waitForScrollChange(scrollBar, async () => { + if (item.orientation === 'vertical') { + await page.mouse.wheel(0, 300); + } else if (item.orientation === 'horizontal') { + await page.mouse.wheel(300, 0); + } + }); await expect(page).toHaveScreenshot({ maxDiffPixelRatio: 0.01 }); }); @@ -345,18 +352,19 @@ test.describe(`${TAG.VISUAL}`, () => { const scrollBar = page.locator('[data-ui-name="ScrollArea.Bar"]'); await page.keyboard.press('Tab'); - if (item.orientation === 'horizontal') { - await page.keyboard.press('ArrowRight'); - await page.keyboard.press('ArrowRight'); - await page.keyboard.press('ArrowRight'); - await page.keyboard.press('ArrowRight'); - } else if (item.orientation === 'vertical') { - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - } - await waitForScrollChange(scrollBar); + await waitForScrollChange(scrollBar, async () => { + if (item.orientation === 'horizontal') { + await page.keyboard.press('ArrowRight'); + await page.keyboard.press('ArrowRight'); + await page.keyboard.press('ArrowRight'); + await page.keyboard.press('ArrowRight'); + } else if (item.orientation === 'vertical') { + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + } + }); await expect(page).toHaveScreenshot({ maxDiffPixelRatio: 0.01 }); }); }); diff --git a/semcore/base-trigger/__tests__/base-trigger.axe-test.tsx b/semcore/base-trigger/__tests__/base-trigger.axe-test.tsx index 6082e6f503..d6af5b2160 100644 --- a/semcore/base-trigger/__tests__/base-trigger.axe-test.tsx +++ b/semcore/base-trigger/__tests__/base-trigger.axe-test.tsx @@ -4,39 +4,35 @@ import { TAG } from '@semcore/testing-utils/shared/tags'; import { selectOption, locators } from './utils'; -test.describe(`@base-components @filter-trigger ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@base-trigger @filter-trigger ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/docs/filter-trigger/examples/usage_with_select.tsx', 'en'); - // check empty filter trigger - { + await test.step('Check empty Filter trigger', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - // check filter trigger with value - { + await test.step('Check Filter trigger with value', async () => { await selectOption(page); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Accessible name with counter', async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/docs/filter-trigger/examples/accessible_name.tsx', 'en'); - // check empty filter trigger - { + await test.step('Check empty Filter trigger', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - // check filter trigger with value - { + await test.step('Check Filter trigger with value', async () => { await locators.trigger(page).nth(1).click(); await locators.options(page).nth(1).waitFor({ state: 'visible' }); await locators.options(page).nth(0).click(); @@ -48,70 +44,64 @@ test.describe(`@base-components @filter-trigger ${TAG.ACCESSIBILITY}`, () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Programmatic focus', async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/docs/filter-trigger/examples/programmatic_focus.tsx', 'en'); - // check empty filter trigger - { + await test.step('Check empty Filter trigger', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - // check filter trigger with value - { + await test.step('Check Filter trigger with value', async () => { await selectOption(page); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); }); -test.describe(`@base-components @link-trigger ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@base-trigger @link-trigger ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/docs/link-trigger/examples/link-trigger.tsx', 'en'); - // check empty filter trigger - { + await test.step('Check empty Link trigger', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - // check filter trigger with value - { + await test.step('Check Link trigger with value', async () => { await selectOption(page); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); }); -test.describe(`@base-components @button-trigger ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@base-trigger @button-trigger ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/select/docs/examples/basic_usage.tsx', 'en'); - // check empty filter trigger - { + await test.step('Check empty Button trigger', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - // check filter trigger with value - { + await test.step('Check Button trigger with value', async () => { await selectOption(page); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); }); diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx index 3a5d1a190d..e20ec3cdc1 100644 --- a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx +++ b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx @@ -2,7 +2,7 @@ import { expect, test } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -import { checkBackgroundColor, checkBorderColor, getCssVarColor, locators } from './utils'; +import { checkBackgroundColor, checkBorderColor, getTriggerColors, locators } from './utils'; /* ===================================================== @visual @@ -24,25 +24,21 @@ test.describe(`${TAG.VISUAL}`, () => { // Disabled { size: 'm', state: 'normal', active: false, empty: false, placeholder: undefined, disabled: true }, - { size: 'l', state: 'valid', active: true, empty: true, placeholder: 'Placeholder', disabled: true }, - { size: 'm', state: 'invalid', active: true, empty: false, placeholder: undefined, disabled: true }, ]; variables.forEach((item) => { - test(`Verify Base case size=${item.size} disabled=${item.disabled} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { + test(`Verify Base case size=${item.size} disabled=${item.disabled} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@base-trigger', '@base-components', '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/tests/examples/base-trigger/base.tsx', 'en', item); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { await checkBackgroundColor(page, locators.button(page), bgPrimary); @@ -52,7 +48,7 @@ test.describe(`${TAG.VISUAL}`, () => { await test.step('Normal/Active styles', async () => { await expect(locators.button(page)).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="BaseTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'BaseTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } if (item.active) { @@ -87,13 +83,15 @@ test.describe(`${TAG.VISUAL}`, () => { await test.step('Invalid state styles', async () => { await checkBorderColor(page, locators.button(page), borderCritical); await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(`base-size:${item.size}-disabled:${item.disabled}-lstate:${item.state}-active:${item.active}-placeholder:${item.placeholder}.png`); + await expect(page).toHaveScreenshot(`base-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}.png`); }); } }); - test(`Verify With addons case size=${item.size} disabled=${item.disabled} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { + test(`Verify With addons case size=${item.size} disabled=${item.disabled} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@base-trigger', '@base-components', '@flex-box'], @@ -102,11 +100,7 @@ test.describe(`${TAG.VISUAL}`, () => { const buttons = await locators.button(page).all(); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { for (const button of buttons) { @@ -119,7 +113,7 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of buttons) { await expect(button).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="BaseTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'BaseTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } if (item.active) { @@ -131,7 +125,7 @@ test.describe(`${TAG.VISUAL}`, () => { await locators.button(page).nth(1).hover(); await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}}.png`); + await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}.png`); }); } @@ -151,7 +145,7 @@ test.describe(`${TAG.VISUAL}`, () => { await checkBorderColor(page, button, borderSuccess); } await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}}.png`); + await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}.png`); }); } @@ -161,13 +155,15 @@ test.describe(`${TAG.VISUAL}`, () => { await checkBorderColor(page, button, borderCritical); } await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}}.png`); + await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}.png`); }); } }); test(`Verify Neighbor Location case size=${item.size} disabled=${item.disabled} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@base-trigger', '@base-components', '@neighbor-location', @@ -177,11 +173,7 @@ test.describe(`${TAG.VISUAL}`, () => { const buttons = await locators.button(page).all(); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { for (const button of buttons) { @@ -194,7 +186,7 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of buttons) { await expect(button).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="BaseTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'BaseTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } if (item.active) { @@ -242,6 +234,7 @@ test.describe(`${TAG.VISUAL}`, () => { test(`Verify Base Trigger for Select or DD menu case size=${item.size} disabled=${item.disabled} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@dropdown', '@select', @@ -252,11 +245,7 @@ test.describe(`${TAG.VISUAL}`, () => { const triggers = await locators.trigger(page).all(); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { for (const button of triggers) { @@ -270,7 +259,7 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of triggers) { await expect(button).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="BaseTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'BaseTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } if (item.active) { @@ -312,6 +301,7 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify ellipsis in Base trigger and few tags', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@base-trigger', '@dropdown-menu', '@ellipsis', @@ -436,7 +426,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.trigger(page).first()).toHaveAttribute('value', 'Desktop'); }); - test('Verify ellipsis in Base trigger and few tags', { + test('Verify Base trigger custom heading tags and ellipsis hint on hover', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, @@ -447,11 +437,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/advanced/examples/base-trigger-ellipsis.tsx', 'en'); - const triggerText = page.locator('[data-ui-name="BaseTrigger.Text"]').first(); - const tagNameButton = await locators.button(page).first().evaluate((el) => el.tagName.toLowerCase()); - expect(tagNameButton).toBe('h1'); - const tagNameText = await triggerText.evaluate((el) => el.tagName.toLowerCase()); - expect(tagNameText).toBe('h2'); + const triggerText = locators.triggerText(page, 'BaseTrigger').first(); + await expect(locators.button(page).first()).toHaveJSProperty('tagName', 'H1'); + await expect(triggerText).toHaveJSProperty('tagName', 'H2'); await page.keyboard.press('Tab'); await expect(page.locator(`[data-ui-name="Hint"]`)).toHaveCount(0); diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-chromium-linux.png deleted file mode 100644 index 9f1ff6e682..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-chromium-linux.png new file mode 100644 index 0000000000..b1cd62e431 Binary files /dev/null and b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-lstate-invalid-active-true-placeholder-Placeholder-webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-chromium-linux.png deleted file mode 100644 index d9eb0855be..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-firefox-linux.png deleted file mode 100644 index fe587ebd43..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-webkit-linux.png deleted file mode 100644 index 0925a160cb..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-lstate-invalid-active-false-placeholder-undefined-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-lstate-invalid-active-false-placeholder-undefined-chromium-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-lstate-invalid-active-false-placeholder-undefined-firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-lstate-invalid-active-false-placeholder-undefined-firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-lstate-invalid-active-false-placeholder-undefined-webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-lstate-invalid-active-false-placeholder-undefined-webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-chromium-linux.png deleted file mode 100644 index ce051c6851..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-firefox-linux.png deleted file mode 100644 index 1e0f93f0fd..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-webkit-linux.png deleted file mode 100644 index 1d5563eafe..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-chromium-linux.png deleted file mode 100644 index 321b239670..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-firefox-linux.png deleted file mode 100644 index c625941993..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-webkit-linux.png deleted file mode 100644 index 338eb6109f..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-state-valid-active-true-placeholder-Placeholder-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-chromium-linux.png deleted file mode 100644 index 72c531d9ff..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-firefox-linux.png deleted file mode 100644 index 8a5d946d5f..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-webkit-linux.png deleted file mode 100644 index 4d0c91579d..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-state-invalid-active-true-placeholder-undefined-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--chromium-linux.png deleted file mode 100644 index 4d5035700b..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-chromium-linux.png new file mode 100644 index 0000000000..6fb0f70a09 Binary files /dev/null and b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder--webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-invalid-active-true-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-chromium-linux.png similarity index 91% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--chromium-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-chromium-linux.png index df46e8692d..1feb6c431f 100644 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--chromium-linux.png and b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder--webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-state-valid-active-false-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined--chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined--chromium-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined--firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined--firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined--webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined--webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-invalid-active-false-placeholder-undefined-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder--chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder--chromium-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder--firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder--firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder--webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder--webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-false-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--chromium-linux.png deleted file mode 100644 index e453c3e016..0000000000 Binary files a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-chromium-linux.png new file mode 100644 index 0000000000..d5ea265de1 Binary files /dev/null and b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder--webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-normal-active-true-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined--chromium-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined--chromium-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined--firefox-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined--firefox-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined--webkit-linux.png b/semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined--webkit-linux.png rename to semcore/base-trigger/__tests__/base-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-state-valid-active-true-placeholder-undefined-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx index 476acf5c82..e88286ce6f 100644 --- a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx +++ b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx @@ -6,7 +6,7 @@ import { checkBackgroundColor, checkBorderColor, expectVisibleHintsCount, - getCssVarColor, + getTriggerColors, locators, waitForHint, } from './utils'; @@ -31,8 +31,6 @@ test.describe(`${TAG.VISUAL}`, () => { // Disabled { size: 'm', state: 'normal', active: false, empty: false, placeholder: undefined, disabled: true, loading: false, chevron: true }, - { size: 'l', state: 'valid', active: true, empty: true, placeholder: 'Placeholder', disabled: true, loading: false, chevron: true }, - { size: 'm', state: 'invalid', active: true, empty: false, placeholder: undefined, disabled: true, loading: false, chevron: false }, // Loading { size: 'l', state: 'normal', active: false, empty: false, placeholder: undefined, disabled: false, loading: true, chevron: true }, @@ -43,6 +41,8 @@ test.describe(`${TAG.VISUAL}`, () => { variables.forEach((item) => { test(`Verify Base case size=${item.size} disabled=${item.disabled} loading=${item.loading} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder} chevron=${item.chevron}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@base-trigger', '@button-trigger', '@base-components', @@ -50,11 +50,7 @@ test.describe(`${TAG.VISUAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/tests/examples/button-trigger/base.tsx', 'en', item); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { await checkBackgroundColor(page, locators.button(page), bgPrimary); @@ -64,7 +60,7 @@ test.describe(`${TAG.VISUAL}`, () => { await test.step('Normal/Active styles', async () => { await expect(locators.button(page)).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="ButtonTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'ButtonTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } @@ -124,6 +120,8 @@ test.describe(`${TAG.VISUAL}`, () => { test(`Verify With addons case size=${item.size} disabled=${item.disabled} loading=${item.loading} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder} chevron=${item.chevron}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@base-trigger', '@button-trigger', '@base-components', @@ -133,11 +131,7 @@ test.describe(`${TAG.VISUAL}`, () => { const buttons = await locators.button(page).all(); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { for (const button of buttons) { @@ -166,7 +160,7 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of buttons) { await expect(button).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="ButtonTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'ButtonTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } @@ -221,8 +215,10 @@ test.describe(`${TAG.VISUAL}`, () => { } }); - test(`Verify Neighbor Location case size=${item.size} disabled=${item.disabled} loading=${item.loading} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder} chevron=${item.chevron} `, { + test(`Verify Neighbor Location case size=${item.size} disabled=${item.disabled} loading=${item.loading} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder} chevron=${item.chevron}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@base-trigger', '@base-components', '@flex-box', @@ -233,11 +229,7 @@ test.describe(`${TAG.VISUAL}`, () => { const buttons = await locators.button(page).all(); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { for (const button of buttons) { @@ -263,7 +255,7 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of buttons) { await expect(button).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = button.locator('[data-ui-name="ButtonTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(button, 'ButtonTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } @@ -317,6 +309,7 @@ test.describe(`${TAG.VISUAL}`, () => { test(`Verify Button Trigger for Select or DD menu case size=${item.size} disabled=${item.disabled} loading=${item.loading} state=${item.state} active=${item.active} empty=${item.empty} placeholder=${item.placeholder} chevron=${item.chevron}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@button-trigger', '@base-components', @@ -328,11 +321,7 @@ test.describe(`${TAG.VISUAL}`, () => { const triggers = await locators.trigger(page).all(); - const bgPrimary = await getCssVarColor(page, '--intergalactic-bg-primary-neutral'); - const borderPrimary = await getCssVarColor(page, '--intergalactic-border-primary'); - const borderActive = await getCssVarColor(page, '--intergalactic-border-info-active'); - const borderSuccess = await getCssVarColor(page, '--intergalactic-border-success-active'); - const borderCritical = await getCssVarColor(page, '--intergalactic-border-critical-active'); + const { bgPrimary, borderPrimary, borderActive, borderSuccess, borderCritical } = await getTriggerColors(page); await test.step('Base background check', async () => { for (const button of triggers) { @@ -353,7 +342,7 @@ test.describe(`${TAG.VISUAL}`, () => { await page.keyboard.press('Tab'); await expect(button).not.toBeFocused(); } - await expect(page).toHaveScreenshot(`triggers-size:${item.size}-disabled:${item.disabled}-loading:${item.loading}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}-chevron:${item.chevron}.png`); + await expect(page).toHaveScreenshot(`triggers-loading-size:${item.size}-disabled:${item.disabled}-loading:${item.loading}-state:${item.state}-active:${item.active}-placeholder:${item.placeholder}-chevron:${item.chevron}.png`); }); } @@ -362,7 +351,7 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of triggers) { await expect(button).toHaveAttribute('tabindex', '0'); if (item.empty && item.placeholder !== undefined) { - const placeholderElement = page.locator('[data-ui-name="ButtonTrigger.Text"][placeholder]').first(); + const placeholderElement = locators.triggerText(page, 'ButtonTrigger', { withPlaceholder: true }).first(); await expect(placeholderElement).toHaveAttribute('aria-hidden', 'true'); } @@ -410,11 +399,11 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify ellipsis in Button trigger and few tags', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@base-trigger', '@button-trigger', '@ellipsis', - '@dropdown-menu', - '@typography'], + '@dropdown-menu'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/advanced/examples/button-trigger-ellipsis.tsx', 'en'); await page.waitForTimeout(300); @@ -493,24 +482,20 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { expect(finalWidth).toBeLessThan(initialWidth); }); - test('Verify ellipsis in Button trigger and few tags', { + test('Verify Button trigger custom heading tags and ellipsis hint on focus', { tag: [TAG.PRIORITY_HIGH, - TAG.MOUSE, TAG.KEYBOARD, '@base-trigger', '@button-trigger', '@ellipsis', - '@dropdown-menu', - '@typography'], + '@dropdown-menu'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/advanced/examples/button-trigger-ellipsis.tsx', 'en'); - const triggerText = page.locator('[data-ui-name="ButtonTrigger.Text"]').first(); - const secondTriggerText = page.locator('[data-ui-name="ButtonTrigger.Text"]').nth(1); - const tagNameButton = await locators.button(page).first().evaluate((el) => el.tagName.toLowerCase()); - expect(tagNameButton).toBe('h1'); - const tagNameText = await triggerText.evaluate((el) => el.tagName.toLowerCase()); - expect(tagNameText).toBe('h2'); + const triggerText = locators.triggerText(page, 'ButtonTrigger').first(); + const secondTriggerText = locators.triggerText(page, 'ButtonTrigger').nth(1); + await expect(locators.button(page).first()).toHaveJSProperty('tagName', 'H1'); + await expect(triggerText).toHaveJSProperty('tagName', 'H2'); await expect(secondTriggerText.locator('span[aria-hidden="true"]').first()).toBeAttached(); diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-chromium-linux.png deleted file mode 100644 index 5aedddde87..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-firefox-linux.png deleted file mode 100644 index b9f1e844e1..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-webkit-linux.png deleted file mode 100644 index 9333b9f619..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-chromium-linux.png deleted file mode 100644 index ce051c6851..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-firefox-linux.png deleted file mode 100644 index 1e0f93f0fd..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-webkit-linux.png deleted file mode 100644 index 1d5563eafe..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/base-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-chromium-linux.png new file mode 100644 index 0000000000..2692a55603 Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-firefox-linux.png new file mode 100644 index 0000000000..27009a8515 Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-webkit-linux.png new file mode 100644 index 0000000000..abef28986f Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-invalid-active-true-placeholder-Placeholder-chevron-false-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-chromium-linux.png new file mode 100644 index 0000000000..4d14684550 Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-firefox-linux.png new file mode 100644 index 0000000000..7201e17e3c Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-webkit-linux.png new file mode 100644 index 0000000000..8559055e83 Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-l-disabled-false-loading-true-state-normal-active-false-placeholder-undefined-chevron-true-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-chromium-linux.png new file mode 100644 index 0000000000..47f6cb2510 Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-firefox-linux.png new file mode 100644 index 0000000000..b9856a90e8 Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-webkit-linux.png new file mode 100644 index 0000000000..668d802a6e Binary files /dev/null and b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-loading-size-m-disabled-false-loading-true-state-valid-active-false-placeholder-undefined-chevron-true-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-chromium-linux.png deleted file mode 100644 index 63f29880cf..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-firefox-linux.png deleted file mode 100644 index dd39583907..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-webkit-linux.png deleted file mode 100644 index a31d7874a8..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-l-disabled-true-loading-false-state-valid-active-true-placeholder-Placeholder-chevron-true-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-chromium-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-chromium-linux.png deleted file mode 100644 index 0becf9f7ac..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-firefox-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-firefox-linux.png deleted file mode 100644 index abe175d4e1..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-webkit-linux.png b/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-webkit-linux.png deleted file mode 100644 index 2163eb9cc8..0000000000 Binary files a/semcore/base-trigger/__tests__/button-trigger.browser-test.tsx-snapshots/triggers-size-m-disabled-true-loading-false-state-invalid-active-true-placeholder-undefined-chevron-false-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx index 80d0dd417f..c9154251f7 100644 --- a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx +++ b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx @@ -22,11 +22,11 @@ test.describe(`${TAG.VISUAL}`, () => { variables.forEach((item) => { test(`Verify Base case size=${item.size} disabled=${item.disabled} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@filter-trigger', '@base-components', - '@flex-box', - '@tooltip'], + '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/tests/examples/filter-trigger/base.tsx', 'en', item); @@ -52,13 +52,13 @@ test.describe(`${TAG.VISUAL}`, () => { } }); - test(`Verify With addons case size=${item.size} disabled=${item.disabled} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { + test(`Verify With addons case size=${item.size} disabled=${item.disabled} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@filter-trigger', '@base-components', - '@flex-box', - '@tooltip'], + '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/tests/examples/filter-trigger/with-addons.tsx', 'en', item); @@ -70,7 +70,7 @@ test.describe(`${TAG.VISUAL}`, () => { } await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(`with-addonssize:${item.size}-disabled:${item.disabled}-active:${item.active}-placeholder:${item.placeholder}.png`); + await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-active:${item.active}-placeholder:${item.placeholder}.png`); }); } @@ -79,13 +79,14 @@ test.describe(`${TAG.VISUAL}`, () => { for (const button of buttons) { await expect(button).toHaveAttribute('tabindex', '0'); } - await expect(page).toHaveScreenshot(`with-addonssize:${item.size}-disabled:${item.disabled}-active:${item.active}-placeholder:${item.placeholder}.png`); + await expect(page).toHaveScreenshot(`with-addons-size:${item.size}-disabled:${item.disabled}-active:${item.active}-placeholder:${item.placeholder}.png`); }); } }); - test(`Verify Filter Trigger for Select size=${item.size} disabled=${item.disabled} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { + test(`Verify Filter Trigger for Select size=${item.size} disabled=${item.disabled} active=${item.active} empty=${item.empty} placeholder=${item.placeholder}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@filter-trigger', '@base-components', @@ -113,6 +114,7 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify ellipsis in Filter trigger and few tags', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@base-trigger', '@filter-trigger', '@dropdown-menu', @@ -134,6 +136,7 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify Counter on trigger', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@filter-trigger', '@dropdown', @@ -155,11 +158,11 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify Hint on Close button', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@base-trigger', '@filter-trigger', '@base-components', - '@flex-box', - '@tooltip'], + '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/tests/examples/filter-trigger/base.tsx', 'en'); @@ -188,7 +191,7 @@ We verify states, visibility, and attributes. ===================================================== */ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Filter Trigger with select', () => { - test('Verify Filter Triger for select by keyboard interactions', { + test('Verify Filter Trigger for select by keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@base-trigger', @@ -232,7 +235,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.trigger(page)).toBeFocused(); }); - test('Verify Filter Triger for select by mouse AND keyboards interactions', { + test('Verify Filter Trigger for select by mouse AND keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, @@ -245,7 +248,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/docs/filter-trigger/examples/usage_with_select.tsx', 'en'); - locators.trigger(page).click(); + await locators.trigger(page).click(); await locators.options(page, 'Blue').waitFor({ state: 'visible' }); await expect(locators.options(page, 'Blue')).not.toHaveClass(/highlighted/); @@ -264,7 +267,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.clearButton(page)).toBeFocused(); }); - test('Verify Filter Triger for select by mouse interactions', { + test('Verify Filter Trigger for select by mouse interactions', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@base-trigger', @@ -275,14 +278,14 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/base-trigger/docs/filter-trigger/examples/usage_with_select.tsx', 'en'); - locators.trigger(page).click(); + await locators.trigger(page).click(); await locators.options(page, 'Blue').waitFor({ state: 'visible' }); await expect(locators.options(page, 'Blue')).not.toHaveClass(/highlighted/); - locators.trigger(page).click(); + await locators.trigger(page).click(); await locators.options(page, 'Blue').waitFor({ state: 'hidden' }); - locators.trigger(page).click(); + await locators.trigger(page).click(); await locators.options(page, 'Blue').waitFor({ state: 'visible' }); await locators.options(page, 'Green').click(); @@ -302,6 +305,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Controlled filter trigger (triggerRef)', () => { test('Verify keyboard interactions', { tag: [TAG.PRIORITY_HIGH, + '@button', TAG.KEYBOARD, '@base-trigger', '@filter-trigger', @@ -404,7 +408,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { for (let i = 0; i < 10; i++) { await page.keyboard.press('Enter'); } - await expect(page.locator('[data-ui-name="FilterTrigger.Counter"]')).toHaveText('10'); + await expect(locators.filterCounter(page)).toHaveText('10'); await page.keyboard.press('Escape'); await locators.dialog(page).waitFor({ state: 'hidden' }); @@ -417,7 +421,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await expect(locators.clearButton(page)).not.toBeVisible(); await expect(locators.trigger(page)).toBeFocused(); - await expect(page.locator('[data-ui-name="FilterTrigger.Counter"]')).not.toBeVisible(); + await expect(locators.filterCounter(page)).not.toBeVisible(); }); test('Verify mouse interactions', { @@ -437,19 +441,19 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { for (let i = 0; i < 10; i++) { await addFilter.click(); } - await expect(page.locator('[data-ui-name="FilterTrigger.Counter"]')).toHaveText('10'); + await expect(locators.filterCounter(page)).toHaveText('10'); await locators.trigger(page).click(); await expect(locators.trigger(page)).toBeVisible(); await expect(locators.clearButton(page)).toBeVisible(); await locators.clearButton(page).click(); - await expect(page.locator('[data-ui-name="FilterTrigger.Counter"]')).not.toBeVisible(); + await expect(locators.filterCounter(page)).not.toBeVisible(); }); - test('Verify Accessible name focus and keyboard interactions', { + test('Verify accessible name and selected values of multiselect Filter trigger by mouse', { tag: [TAG.PRIORITY_HIGH, - TAG.KEYBOARD, + TAG.MOUSE, '@base-trigger', '@filter-trigger', '@base-components', @@ -467,15 +471,15 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const button = page.getByRole('combobox', { name: 'Material' }); await expect(button).toHaveAttribute('value', 'Glass,Metal,Paper'); - await expect(button.locator('[data-ui-name="FilterTrigger.Text"]')).toContainText( + await expect(locators.triggerText(button, 'FilterTrigger')).toContainText( '3 selected', ); - const textSpan = button.locator('[data-ui-name="FilterTrigger.Text"] span'); + const textSpan = locators.triggerText(button, 'FilterTrigger').locator('span'); await expect(textSpan).toHaveAttribute('aria-hidden', 'true'); await locators.clearButton(page).click(); - await expect(button.locator('[data-ui-name="FilterTrigger.Text"]')).not.toContainText( + await expect(locators.triggerText(button, 'FilterTrigger')).not.toContainText( '3 selected', ); }); diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-false-active-true-placeholder-undefined-chromium-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-active-true-placeholder-undefined-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-false-active-true-placeholder-undefined-chromium-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-active-true-placeholder-undefined-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-false-active-true-placeholder-undefined-firefox-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-active-true-placeholder-undefined-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-false-active-true-placeholder-undefined-firefox-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-active-true-placeholder-undefined-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-false-active-true-placeholder-undefined-webkit-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-active-true-placeholder-undefined-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-false-active-true-placeholder-undefined-webkit-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-false-active-true-placeholder-undefined-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-true-active-true-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-true-active-true-placeholder-Placeholder-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-true-active-true-placeholder-Placeholder-chromium-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-true-active-true-placeholder-Placeholder-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-true-active-true-placeholder-Placeholder-firefox-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-true-active-true-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-true-active-true-placeholder-Placeholder-firefox-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-true-active-true-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-true-active-true-placeholder-Placeholder-webkit-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-true-active-true-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-l-disabled-true-active-true-placeholder-Placeholder-webkit-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-l-disabled-true-active-true-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-chromium-linux.png new file mode 100644 index 0000000000..dde5cab97d Binary files /dev/null and b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-firefox-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-firefox-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-webkit-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-webkit-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-false-active-false-placeholder-Placeholder-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-true-active-false-placeholder-undefined-chromium-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-true-active-false-placeholder-undefined-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-true-active-false-placeholder-undefined-chromium-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-true-active-false-placeholder-undefined-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-true-active-false-placeholder-undefined-firefox-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-true-active-false-placeholder-undefined-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-true-active-false-placeholder-undefined-firefox-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-true-active-false-placeholder-undefined-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-true-active-false-placeholder-undefined-webkit-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-true-active-false-placeholder-undefined-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-true-active-false-placeholder-undefined-webkit-linux.png rename to semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addons-size-m-disabled-true-active-false-placeholder-undefined-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-chromium-linux.png b/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-chromium-linux.png deleted file mode 100644 index 534f54139d..0000000000 Binary files a/semcore/base-trigger/__tests__/filter-trigger.browser-test.tsx-snapshots/with-addonssize-m-disabled-false-active-false-placeholder-Placeholder-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx index 290efda34e..eba4a8c09f 100644 --- a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx +++ b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx @@ -47,7 +47,7 @@ test.describe(` ${TAG.VISUAL}`, () => { sizes.forEach((size, sizeIndex) => { addonCombos.forEach(({ desc: addonDesc, ...addonVars }, addonIndex) => { const { desc: ellipsisDesc, vars: ellipsisVars } = - ellipsisVariants[addonIndex] ?? {}; + ellipsisVariants[addonIndex] ?? ellipsisVariants[sizeIndex % ellipsisVariants.length]; const hasAddons = addonVars.showAddonLeft || addonVars.showAddonRight; const addonType = hasAddons ? addonTypes[(sizeIndex + addonIndex - 1) % 4] : undefined; const color = !hasAddons ? colorBySize[size] : undefined; @@ -67,7 +67,7 @@ test.describe(` ${TAG.VISUAL}`, () => { if (merged) descParts.push('merged'); test(`Verify Link Trigger size=${size}, ${descParts.join(', ')}, ${ellipsisDesc}`, { - tag: [TAG.PRIORITY_HIGH, '@base-trigger', '@link-trigger', '@badge', '@counter', '@ellipsis', '@flags', '@tag', '@typography'], + tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, TAG.KEYBOARD, '@base-trigger', '@link-trigger', '@badge', '@counter', '@ellipsis', '@flags', '@tag', '@typography'], }, async ({ page }) => { await loadPage(page, storyPath, 'en', { size, ...addonVars, text: longText, ...ellipsisVars, ...extraVars, @@ -91,17 +91,19 @@ test.describe(` ${TAG.VISUAL}`, () => { } }); - await loadPage(page, storyPath, 'en', { - size, active: true, ...addonVars, text: longText, ...ellipsisVars, ...extraVars, - }); - const activeClip = await getTextClip(page); - await page.waitForTimeout(100); - await test.step('Verify active state + hover hint', async () => { - await locators.button(page).first().hover(); + if (size === 300) { + await loadPage(page, storyPath, 'en', { + size, active: true, ...addonVars, text: longText, ...ellipsisVars, ...extraVars, + }); + const activeClip = await getTextClip(page); await page.waitForTimeout(100); - await waitForHint(page); - await expect(page).toHaveScreenshot({ clip: activeClip }); - }); + await test.step('Verify active state + hover hint', async () => { + await locators.button(page).first().hover(); + await page.waitForTimeout(100); + await waitForHint(page); + await expect(page).toHaveScreenshot({ clip: activeClip }); + }); + } }); }); }); @@ -117,7 +119,7 @@ test.describe(` ${TAG.VISUAL}`, () => { await expect(page).toHaveScreenshot({ clip }); }); - test('Verify Link Trigger: loading ', { + test('Verify Link Trigger: loading', { tag: [TAG.PRIORITY_HIGH, '@base-trigger', '@link-trigger', '@badge', '@counter', '@flags', '@tag', '@typography'], }, async ({ page }) => { await loadPage(page, storyPath, 'en', { diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index cd1e3f7b5b..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 37362fb775..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index de36e34d23..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonLeft-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index e17d307579..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index bb3db615b7..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 146d382f69..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-ellipsis-true-1-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-1-chromium-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-ellipsis-true-1-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-ellipsis-true-1-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-1-firefox-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-ellipsis-true-1-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-ellipsis-true-1-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-1-webkit-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-ellipsis-true-1-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-chromium-linux.png deleted file mode 100644 index b62dec6c16..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-firefox-linux.png deleted file mode 100644 index cee5257a49..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-webkit-linux.png deleted file mode 100644 index a52f3fae14..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-both-addons-counter-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 56400ed3b9..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index e18730aaf3..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 37665ea8b0..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-100-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 079093c89c..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 60044c71a2..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index 7c8764a073..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonLeft-badge-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index bca6520aec..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index a14364179f..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index eb00015595..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-addonRight-counter-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-chromium-linux.png new file mode 100644 index 0000000000..f30829f733 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-firefox-linux.png new file mode 100644 index 0000000000..f9ac2031f4 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-webkit-linux.png new file mode 100644 index 0000000000..c306254759 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-cropPosition-middle-1-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-chromium-linux.png deleted file mode 100644 index f58e437330..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-firefox-linux.png deleted file mode 100644 index 73938ec9e2..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-webkit-linux.png deleted file mode 100644 index 5599bfdcab..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-1-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-chromium-linux.png deleted file mode 100644 index a8b5b6ced3..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-firefox-linux.png deleted file mode 100644 index 10dd249622..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-webkit-linux.png deleted file mode 100644 index 9fd561ce70..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-both-addons-tag-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 2e6baf266d..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index a1a2d4d584..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 68ab6edaee..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-200-no-addons-text-success-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-chromium-linux.png new file mode 100644 index 0000000000..09a309091b Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-firefox-linux.png new file mode 100644 index 0000000000..544bf55601 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-webkit-linux.png new file mode 100644 index 0000000000..946dc22240 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-1-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-chromium-linux.png new file mode 100644 index 0000000000..0524300964 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-firefox-linux.png new file mode 100644 index 0000000000..61ddbca513 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-webkit-linux.png new file mode 100644 index 0000000000..4521ddf42b Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-middle-lastRequired-2-2-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-chromium-linux.png deleted file mode 100644 index fda701c1b2..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-firefox-linux.png deleted file mode 100644 index d784a7f066..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-webkit-linux.png deleted file mode 100644 index aed0335f18..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-1-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-chromium-linux.png deleted file mode 100644 index a0bf4fc099..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-firefox-linux.png deleted file mode 100644 index 87e2d78732..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-webkit-linux.png deleted file mode 100644 index 650b09253a..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-300-both-addons-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 75e477da6e..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 495402ba1a..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index 67586e7746..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonLeft-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 708eb60348..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 152c5b001b..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 0b544e9402..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-chromium-linux.png new file mode 100644 index 0000000000..4c234c4468 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-firefox-linux.png new file mode 100644 index 0000000000..2ad68dac91 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-webkit-linux.png new file mode 100644 index 0000000000..61b0db480f Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-middle-lastRequired-2-1-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-chromium-linux.png deleted file mode 100644 index b548e0859a..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-firefox-linux.png deleted file mode 100644 index d9f7864482..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-webkit-linux.png deleted file mode 100644 index fe0f1e6948..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-1-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-chromium-linux.png deleted file mode 100644 index 6e05ab5844..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-firefox-linux.png deleted file mode 100644 index 1585d99f5f..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-webkit-linux.png deleted file mode 100644 index a40c400676..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-both-addons-counter-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 33b89f6237..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 8ac77c63a8..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index a79fcae483..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-350-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 330b3a4225..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 8d4b811f50..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index 6a87b5c778..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonLeft-tag-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index d87f467777..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index aa67aead97..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 02efce501d..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-addonRight-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-ellipsis-true-1-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-1-chromium-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-ellipsis-true-1-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-ellipsis-true-1-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-1-firefox-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-ellipsis-true-1-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-ellipsis-true-1-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-1-webkit-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-ellipsis-true-1-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-chromium-linux.png deleted file mode 100644 index c21a60b01b..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-firefox-linux.png deleted file mode 100644 index 4caf9b1969..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-webkit-linux.png deleted file mode 100644 index c69aa99739..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-both-addons-badge-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 4367bba993..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 617f828bfc..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 4cd0c32bcc..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-400-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 21ad34237a..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index dad3898b2c..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index f7126e0341..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonLeft-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 015a1ea591..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 9b7c2ee147..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 4dd991d6b7..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-chromium-linux.png new file mode 100644 index 0000000000..e92e5556a5 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-firefox-linux.png new file mode 100644 index 0000000000..bce645ce3b Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-webkit-linux.png new file mode 100644 index 0000000000..5d98f5ec11 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-cropPosition-middle-1-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-chromium-linux.png deleted file mode 100644 index caa2765d17..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-firefox-linux.png deleted file mode 100644 index 565020f81e..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-webkit-linux.png deleted file mode 100644 index 171a9948e8..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-1-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-chromium-linux.png deleted file mode 100644 index 2f7360473a..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-firefox-linux.png deleted file mode 100644 index 019308dd78..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-webkit-linux.png deleted file mode 100644 index 98a2fafedf..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-both-addons-counter-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index f02bd675b4..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 647fa65cfa..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 7f67cf2e54..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-500-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index d8d3e7a1db..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 5882930c31..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index f1169152f4..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonLeft-badge-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 95e0de9442..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index c7a09b0c8f..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index ce49ce5734..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-addonRight-counter-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-chromium-linux.png new file mode 100644 index 0000000000..846c5057eb Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-firefox-linux.png new file mode 100644 index 0000000000..f12e418b8a Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-webkit-linux.png new file mode 100644 index 0000000000..d2c526a2f7 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-middle-lastRequired-2-1-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-chromium-linux.png deleted file mode 100644 index 89c8aa13da..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-firefox-linux.png deleted file mode 100644 index 41e48a7245..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-webkit-linux.png deleted file mode 100644 index e6b905f2f7..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-1-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-chromium-linux.png deleted file mode 100644 index 4366ddc152..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-firefox-linux.png deleted file mode 100644 index fbc5715ea5..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-webkit-linux.png deleted file mode 100644 index d7e8363939..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-both-addons-tag-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 116595e4fb..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 2ec26e3cc4..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index ab104b2bce..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-600-no-addons-text-success-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 7c795ad75f..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 170ac66c1b..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index d4a91a9cfe..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonLeft-counter-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 8869be5590..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index f99abfa81f..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 36a787532b..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-addonRight-tag-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-ellipsis-true-1-chromium-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-1-chromium-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-ellipsis-true-1-chromium-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-ellipsis-true-1-firefox-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-1-firefox-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-ellipsis-true-1-firefox-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-ellipsis-true-1-webkit-linux.png similarity index 100% rename from semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-1-webkit-linux.png rename to semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-ellipsis-true-1-webkit-linux.png diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-chromium-linux.png deleted file mode 100644 index b7e125b920..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-firefox-linux.png deleted file mode 100644 index 62d1a51e88..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-webkit-linux.png deleted file mode 100644 index 61817dae32..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-both-addons-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 08c21467e8..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index de1dcd4cf2..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 142c0abb7e..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-700-no-addons-text-critical-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index acaa4c41bd..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 9c4936f6a4..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index 82ea8be44d..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonLeft-tag-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index bfd637154c..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 1681db8ac7..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index dc3a6991b8..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-addonRight-merged-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-chromium-linux.png new file mode 100644 index 0000000000..997bdac1aa Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-chromium-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-firefox-linux.png new file mode 100644 index 0000000000..2e95fd0441 Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-firefox-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-webkit-linux.png new file mode 100644 index 0000000000..6b3d2f6b0f Binary files /dev/null and b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-cropPosition-middle-1-webkit-linux.png differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-chromium-linux.png deleted file mode 100644 index 1607d26320..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-firefox-linux.png deleted file mode 100644 index cb53bfd598..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-webkit-linux.png deleted file mode 100644 index af4e254f87..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-1-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-chromium-linux.png deleted file mode 100644 index fc304f39ea..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-firefox-linux.png deleted file mode 100644 index a032041d06..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-webkit-linux.png deleted file mode 100644 index 930ebf70a3..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-both-addons-badge-undefined-2-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index c05d66da94..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 0a9a2c2e92..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 9ba6842288..0000000000 Binary files a/semcore/base-trigger/__tests__/link-trigger.browser-test.tsx-snapshots/-visual-Verify-Link-Trigger-size-800-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/base-trigger/__tests__/utils.ts b/semcore/base-trigger/__tests__/utils.ts index 1b93321598..a06a6459bf 100644 --- a/semcore/base-trigger/__tests__/utils.ts +++ b/semcore/base-trigger/__tests__/utils.ts @@ -12,6 +12,8 @@ export const selectOption = async (page: Page): Promise => { await locators.options(page).first().waitFor({ state: 'hidden' }); }; +type TriggerName = 'BaseTrigger' | 'ButtonTrigger' | 'FilterTrigger'; + export const locators = { button: (page: Page, index?: number) => { const base = page.getByRole('button'); @@ -27,6 +29,9 @@ export const locators = { ), dialog: (page: Page): Locator => page.getByRole('dialog'), hint: (page: Page) => page.locator('[data-ui-name="Hint"]'), + triggerText: (scope: Page | Locator, trigger: TriggerName, { withPlaceholder = false } = {}): Locator => + scope.locator(`[data-ui-name="${trigger}.Text"]${withPlaceholder ? '[placeholder]' : ''}`), + filterCounter: (scope: Page | Locator): Locator => scope.locator('[data-ui-name="FilterTrigger.Counter"]'), }; // Hint can stay mounted while fading out, so wait for a fully opaque instance. @@ -69,7 +74,15 @@ export const getCssVarColor = async (page: Page, varName: string) => { }, { name: varName, fallback: cssVarColorFallbacks[varName] }); }; -export async function checkBackgroundColor(page: any, selectorOrLocator: string | Locator, expectedColor: string) { +export const getTriggerColors = async (page: Page) => ({ + bgPrimary: await getCssVarColor(page, '--intergalactic-bg-primary-neutral'), + borderPrimary: await getCssVarColor(page, '--intergalactic-border-primary'), + borderActive: await getCssVarColor(page, '--intergalactic-border-info-active'), + borderSuccess: await getCssVarColor(page, '--intergalactic-border-success-active'), + borderCritical: await getCssVarColor(page, '--intergalactic-border-critical-active'), +}); + +export async function checkBackgroundColor(page: Page, selectorOrLocator: string | Locator, expectedColor: string) { const element = typeof selectorOrLocator === 'string' ? page.locator(selectorOrLocator) : selectorOrLocator; @@ -81,7 +94,7 @@ export async function checkBackgroundColor(page: any, selectorOrLocator: string expect(backgroundColor).toBe(expectedColor); } -export async function checkBorderColor(page: any, selectorOrLocator: string | Locator, expectedColor: string) { +export async function checkBorderColor(page: Page, selectorOrLocator: string | Locator, expectedColor: string) { const element = typeof selectorOrLocator === 'string' ? page.locator(selectorOrLocator) : selectorOrLocator; diff --git a/semcore/breadcrumbs/__tests__/breadcrumbs.axe-test.tsx b/semcore/breadcrumbs/__tests__/breadcrumbs.axe-test.tsx index 8fe5897906..1d64bacf87 100644 --- a/semcore/breadcrumbs/__tests__/breadcrumbs.axe-test.tsx +++ b/semcore/breadcrumbs/__tests__/breadcrumbs.axe-test.tsx @@ -1,13 +1,10 @@ -import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand'; import { expect, test, getAccessibilityViolations } from '@semcore/testing-utils/playwright'; +import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; test.describe(`@breadcrumbs ${TAG.ACCESSIBILITY}`, () => { test('Redefining a tag', async ({ page }) => { - const standPath = 'stories/components/breadcrumbs/docs/examples/redefining_a_tag.tsx'; - const htmlContent = await e2eStandToHtml(standPath, 'en'); - - await page.setContent(htmlContent); + await loadPage(page, 'stories/components/breadcrumbs/docs/examples/redefining_a_tag.tsx', 'en'); const violations = await getAccessibilityViolations({ page }); @@ -15,10 +12,7 @@ test.describe(`@breadcrumbs ${TAG.ACCESSIBILITY}`, () => { }); test('Base usage', async ({ page }) => { - const standPath = 'stories/components/breadcrumbs/docs/examples/usage_example.tsx'; - const htmlContent = await e2eStandToHtml(standPath, 'en'); - - await page.setContent(htmlContent); + await loadPage(page, 'stories/components/breadcrumbs/docs/examples/usage_example.tsx', 'en'); const violations = await getAccessibilityViolations({ page }); diff --git a/semcore/breadcrumbs/__tests__/breadcrumbs.browser-test.tsx b/semcore/breadcrumbs/__tests__/breadcrumbs.browser-test.tsx index eea2a65cca..ff32ee8a81 100644 --- a/semcore/breadcrumbs/__tests__/breadcrumbs.browser-test.tsx +++ b/semcore/breadcrumbs/__tests__/breadcrumbs.browser-test.tsx @@ -1,7 +1,30 @@ +import type { Page } from '@semcore/testing-utils/playwright'; import { expect, test } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; +const expectBreadcrumbsStructure = async (page: Page, { ariaLabel, itemsCount }: { ariaLabel: string; itemsCount: number }) => { + const nav = page.locator('nav'); + + await test.step('Verify nav landmark', async () => { + await expect(nav).toHaveAttribute('data-ui-name', 'Breadcrumbs'); + await expect(nav).toHaveAttribute('aria-label', ariaLabel); + }); + + await test.step('Verify ordered list items', async () => { + await expect(nav.locator(':scope > ol > li')).toHaveCount(itemsCount); + }); + + await test.step('Verify separators are hidden from assistive technologies', async () => { + const separators = nav.locator(':scope > ol > div'); + await expect(separators).toHaveCount(itemsCount); + for (const separator of await separators.all()) { + await expect(separator).toHaveAttribute('aria-hidden', 'true'); + await expect(separator.locator('svg')).toHaveAttribute('aria-hidden', 'true'); + } + }); +}; + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -9,67 +32,37 @@ Visual states, hover and focus styles, paddings, margins, and snapshots. test.describe(`${TAG.VISUAL}`, () => { test('Verify links and icons styles', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@breadcrumbs', '@ellipsis'], }, async ({ page, browserName }) => { await loadPage(page, 'stories/components/breadcrumbs/docs/examples/usage_example.tsx', 'en'); const breadcrumbLinks = page.locator('a[data-ui-name="Breadcrumbs.Item"]'); - const chevronIcons = page.locator('[data-ui-name="ChevronRight"]'); const lastItem = page.locator('[aria-current="page"]'); - const expectedLinkStyles = { - fontSize: '14px', - cursor: 'pointer', - }; - - const expectedHoverStyles = { - textDecoration: 'underline', - }; - - const expectedLastItemStyles = { - fontSize: '14px', - cursor: 'default', - }; - await test.step('Verify active item style', async () => { - const lastItemStyles = await lastItem.evaluate((el) => { - const styles = getComputedStyle(el); - return { - fontSize: styles.fontSize, - cursor: styles.cursor, - }; - }); - expect(lastItemStyles).toMatchObject(expectedLastItemStyles); + await expect(lastItem).toHaveCSS('font-size', '14px'); + await expect(lastItem).toHaveCSS('cursor', 'default'); }); - await test.step('Verify links in normal and hover states', async () => { - const links = await breadcrumbLinks.all(); - for (const link of links) { - const styles = await link.evaluate((el) => { - const computed = getComputedStyle(el); - return { - fontSize: computed.fontSize, - cursor: computed.cursor, - }; - }); - expect(styles).toMatchObject(expectedLinkStyles); - - if (browserName !== 'firefox') { - // ff works weird on hover in non debug mode - await link.hover(); - const hoverStyles = await link.evaluate((el) => { - const computed = getComputedStyle(el); - return { - textDecoration: computed.textDecorationLine || computed.textDecoration, - }; - }); - expect(hoverStyles).toMatchObject(expectedHoverStyles); - } + await test.step('Verify links in normal state', async () => { + for (const link of await breadcrumbLinks.all()) { + await expect(link).toHaveCSS('font-size', '14px'); + await expect(link).toHaveCSS('cursor', 'pointer'); } + }); - await breadcrumbLinks.first().hover(); + const hoverStep = browserName === 'firefox' ? test.step.skip : test.step; + await hoverStep('Verify links are underlined on hover (Firefox drops synthetic hover before style read)', async () => { + for (const link of await breadcrumbLinks.all()) { + await link.hover(); + await expect(link).toHaveCSS('text-decoration-line', 'underline'); + } + }); + await test.step('Verify hovered first link snapshot', async () => { + await breadcrumbLinks.first().hover(); await expect(page).toHaveScreenshot(); }); }); @@ -81,6 +74,8 @@ test.describe(`${TAG.VISUAL}`, () => { variables.forEach((item) => { test(`Verify base truncation and last item is active=${item.active}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, + TAG.MOUSE, '@breadcrumbs', '@ellipsis'], }, async ({ page }) => { @@ -106,6 +101,8 @@ test.describe(`${TAG.VISUAL}`, () => { test(`Verify ellipsis in the middle and last item is active=${item.active}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, + TAG.MOUSE, '@breadcrumbs', '@ellipsis'], }, async ({ page }) => { @@ -128,6 +125,8 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify ellipsis in the end', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, + TAG.MOUSE, '@breadcrumbs', '@ellipsis'], }, async ({ page }) => { @@ -150,6 +149,7 @@ test.describe(`${TAG.VISUAL}`, () => { test('Verify custom styles and separator', { tag: [TAG.PRIORITY_MEDIUM, + TAG.KEYBOARD, '@breadcrumbs'], }, async ({ page }) => { await loadPage(page, 'stories/components/breadcrumbs/tests/examples/edge-cases.tsx', 'en'); @@ -171,7 +171,6 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify ellipsis truncation in the end', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, - TAG.KEYBOARD, '@breadcrumbs', '@ellipsis'], }, async ({ page }) => { @@ -235,69 +234,28 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/breadcrumbs/advanced/examples/trim_middle.tsx', 'en'); - const nav = page.locator('nav'); - await expect(nav).toHaveAttribute('data-ui-name', 'Breadcrumbs'); - await expect(nav).toHaveAttribute('aria-label', 'Breadcrumbs'); - - const separator = page.locator('nav > div'); - - const separatorCount = await separator.count(); - for (let i = 0; i < separatorCount; i++) { - await expect(separator.nth(i)).toHaveAttribute('aria-hidden', 'true'); - const svg = separator.nth(i).locator('svg'); - await expect(svg).toHaveAttribute('aria-hidden', 'true'); - await expect(svg).toHaveAttribute('tabindex', '-1'); - await expect(svg).toHaveAttribute('hidden', ''); - } - - const list = page.locator('nav > li'); - - const listCount = await list.count(); - for (let i = 0; i < listCount; i++) { - const item = list.nth(i); - await expect(item).toHaveAttribute('role', 'listitem'); - await expect(item).toHaveAttribute('level', `${i + 1}`); - } + await expectBreadcrumbsStructure(page, { ariaLabel: 'Breadcrumbs', itemsCount: 3 }); - const currentItem = page.locator('nav ol > li').nth(2).locator('span').first(); - await expect(currentItem).toHaveAttribute('tabindex', '-1'); + await test.step('Verify current item is not focusable', async () => { + const currentItem = page.locator('nav ol > li').nth(2).locator('span').first(); + await expect(currentItem).toHaveAttribute('tabindex', '-1'); + }); }); test('Verify attributes when custom aria-label and items are links', { tag: [TAG.PRIORITY_MEDIUM, - TAG.MOUSE, '@breadcrumbs', '@link'], }, async ({ page }) => { await loadPage(page, 'stories/components/breadcrumbs/docs/examples/redefining_a_tag.tsx', 'en'); - const nav = page.locator('nav'); - await expect(nav).toHaveAttribute('data-ui-name', 'Breadcrumbs'); - await expect(nav).toHaveAttribute('aria-label', 'Redefining tag example'); - - const separator = page.locator('nav > div'); - - const separatorCount = await separator.count(); - for (let i = 0; i < separatorCount; i++) { - await expect(separator.nth(i)).toHaveAttribute('aria-hidden', 'true'); - const svg = separator.nth(i).locator('svg'); - await expect(svg).toHaveAttribute('aria-hidden', 'true'); - await expect(svg).toHaveAttribute('tabindex', '-1'); - await expect(svg).toHaveAttribute('hidden', ''); - } + await expectBreadcrumbsStructure(page, { ariaLabel: 'Redefining tag example', itemsCount: 3 }); - const list = page.locator('nav > li'); - - const listCount = await list.count(); - for (let i = 0; i < listCount; i++) { - const item = list.nth(i); - await expect(item).toHaveAttribute('role', 'listitem'); - await expect(item).toHaveAttribute('level', `${i + 1}`); - } - - const currentItem = page.locator('nav ol > li').nth(2).locator('span'); - await expect(currentItem).toHaveAttribute('aria-current', 'page'); - await expect(currentItem).toHaveAttribute('tabindex', '-1'); + await test.step('Verify current item is marked as page and not focusable', async () => { + const currentItem = page.locator('nav ol > li').nth(2).locator('span'); + await expect(currentItem).toHaveAttribute('aria-current', 'page'); + await expect(currentItem).toHaveAttribute('tabindex', '-1'); + }); }); }); diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.axe-test.tsx b/semcore/bulk-textarea/__tests__/bulk-textarea.axe-test.tsx index 2c41406dc0..092d201b11 100644 --- a/semcore/bulk-textarea/__tests__/bulk-textarea.axe-test.tsx +++ b/semcore/bulk-textarea/__tests__/bulk-textarea.axe-test.tsx @@ -6,13 +6,13 @@ test.describe(`@bulk-textarea ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/bulk-textarea/docs/examples/basic-usage.tsx', 'en'); - { + await test.step('Check empty BulkTextarea', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - { + await test.step('Check BulkTextarea with 10 rows after blur', async () => { const text = 'Zoom in on product categories to understand how each site segment drives conversions.\nSecond row\n3 row\n4 row\n5 row\n6 row\n7 row\n8 row\n9 row\n10 row'; await page.keyboard.type(text, { delay: 20 }); @@ -20,6 +20,6 @@ test.describe(`@bulk-textarea ${TAG.ACCESSIBILITY}`, () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); }); diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx index 4ab51b5db6..e9777385ca 100644 --- a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx +++ b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx @@ -15,8 +15,6 @@ export const locators = { rows: (page: Page): Locator => page.locator(ROW_SELECTOR), row: (page: Page, index: number): Locator => page.locator(ROW_SELECTOR).nth(index), - contentDiv: (page: Page): Locator => page.locator(TEXTBOX_SELECTOR), - assertive: (page: Page): Locator => page.locator('[aria-live="assertive"]'), tooltip: (page: Page, text?: string): Locator => { const base = page.locator('[data-ui-name="Tooltip.Popper"]'); return text ? base.getByText(text) : base; @@ -25,7 +23,7 @@ export const locators = { const base = page.locator('[data-ui-name="Text"]').nth(1); return text ? base.getByText(text) : base; }, - boxLocator: (page: Page, text?: string): Locator => page.locator('div[data-ui-name="Box"]').first(), + boxLocator: (page: Page): Locator => page.locator('div[data-ui-name="Box"]').first(), }; @@ -41,6 +39,14 @@ const pressRedo = async (page: Page) => { const pressRedoAlternative = async (page: Page) => { await page.keyboard.press(`${keyboardModifier}+y`); }; +const pasteText = (page: Page, text: string) => locators.textbox(page).evaluate((node, pasted) => { + const event = new Event('paste', { bubbles: true, cancelable: true }); + (event as any).clipboardData = { + getData: (type: string) => (type === 'text/plain' ? pasted : ''), + types: ['text/plain'], + }; + node.dispatchEvent(event); +}, text); /* ===================================================== @visual @@ -64,7 +70,7 @@ test.describe(`${TAG.VISUAL}`, () => { ]; variables.forEach((item) => { - test(`Verify size=${item.size} placeholder=${item.placeholder} w=${item.w} disabled=${item.disabled} readOnly=${item.readOnly} minRows=${item.minRows} maxRows=${item.maxRows} maxLines=${item.maxLines} autoFocus=${item.autoFocus}`, { + test(`Verify size=${item.size} placeholder=${item.placeholder} w=${item.w} disabled=${item.disabled} readOnly=${item.readOnly} minRows=${item.minRows} maxRows=${item.maxRows} maxLines=${item.maxLines} autoFocus=${item.autoFocus}`, { tag: [TAG.PRIORITY_HIGH, '@bulk-textarea', '@base-components', @@ -74,7 +80,7 @@ test.describe(`${TAG.VISUAL}`, () => { '@tooltip'], }, async ({ page }) => { - await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', item); + await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { ...item, readonly: item.readOnly }); await test.step('Verify initial state', async () => { if (!item.autoFocus) { await page.keyboard.press('Tab'); @@ -123,6 +129,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Counter and Clear all', () => { test('Verify counter functionality', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -174,10 +181,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Remove all content manually and verify counter', async () => { - const modifier = process.platform === 'darwin' ? 'Meta' : 'Control'; - await page.keyboard.down(modifier); - await page.keyboard.press('A'); - await page.keyboard.up(modifier); + await page.keyboard.press(`${keyboardModifier}+a`); await page.keyboard.press('Backspace'); await expect(locators.counter(page)).toHaveText('0/15of 15 lines'); const text = @@ -228,6 +232,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Clear all by mouse when no validation', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, TAG.MOUSE, '@bulk-textarea', '@base-components', @@ -237,7 +242,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { maxLines: 15 }); - await test.step('Removed when remove last character', async () => { + await test.step('Clear all is hidden after removing the last character', async () => { await locators.textbox(page).click(); await page.keyboard.type('abc', { delay: 50 }); await expect(locators.button(page, 'Clear all')).toBeVisible(); @@ -245,8 +250,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.textbox(page).press('Backspace'); await locators.textbox(page).press('Backspace'); await expect(locators.button(page, 'Clear all')).not.toBeVisible(); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(0); + await expect(locators.rows(page)).toHaveCount(0); await expect(locators.counter(page)).toHaveText('0/15of 15 lines'); }); @@ -259,8 +263,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.button(page, 'Clear all').click(); await expect(locators.textbox(page)).toBeFocused(); await expect(locators.button(page, 'Clear all')).not.toBeVisible(); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(0); + await expect(locators.rows(page)).toHaveCount(0); await expect(locators.counter(page)).toHaveText('0/15of 15 lines'); }); @@ -269,8 +272,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.textbox(page).click(); await page.keyboard.type('new text', { delay: 20 }); await expect(locators.counter(page)).toHaveText('1/15of 15 lines'); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(1); + await expect(locators.rows(page)).toHaveCount(1); await expect(locators.row(page, 0)).toHaveText('new text'); }); }); @@ -295,8 +297,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await expect(locators.textbox(page)).toBeFocused(); await expect(locators.button(page, 'Clear all')).not.toBeVisible(); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(0); + await expect(locators.rows(page)).toHaveCount(0); await expect(locators.counter(page)).toHaveText('0/10of 10 lines'); }); }); @@ -321,8 +322,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await expect(locators.textbox(page)).toBeFocused(); await expect(locators.button(page, 'Clear all')).not.toBeVisible(); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(0); + await expect(locators.rows(page)).toHaveCount(0); await expect(locators.counter(page)).toHaveText('0/10of 10 lines'); }); }); @@ -331,6 +331,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Undo and redo', () => { test('Verify text undo, redo and redo reset after new input', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -368,6 +369,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo and redo restore paragraph insertion with empty line', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -407,6 +409,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo restores caret position', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -442,6 +445,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo with paste lineProcessing restores processed empty row', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -465,6 +469,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo restores value before paste', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -475,14 +480,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { maxLines: 15 }); await locators.textbox(page).click(); - await locators.textbox(page).evaluate((node, text) => { - const event = new Event('paste', { bubbles: true, cancelable: true }); - (event as any).clipboardData = { - getData: (type: string) => (type === 'text/plain' ? text : ''), - types: ['text/plain'], - }; - node.dispatchEvent(event); - }, 'first\nsecond\nthird'); + await pasteText(page, 'first\nsecond\nthird'); await expect(locators.rows(page)).toHaveCount(3); await expect(locators.row(page, 0)).toHaveText('first'); @@ -501,6 +499,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo and redo after Backspace', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -524,6 +523,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo and redo after Delete (forward)', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -550,6 +550,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify undo restores a range selection, not just the caret', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -590,7 +591,6 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify instanceRef adds an empty row and sets its caret', { tag: [TAG.PRIORITY_HIGH, - TAG.KEYBOARD, '@bulk-textarea', '@base-components', '@flex-box', @@ -627,6 +627,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Keyboard navigation', () => { test('Verify Home and first character on empty row stay in current row', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -682,11 +683,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { maxLines: 15 }); - await test.step('Verify validation on blur not starts by entering new row', async () => { + await test.step('Verify validation on blur does not start on entering a new row', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await locators.textbox(page).press('['); - await page.waitForTimeout(100);// it is nessesary for stability in GitLab in Firefox + await page.waitForTimeout(100);// it is necessary for stability in GitLab in Firefox await page.keyboard.press('Enter'); await page.waitForTimeout(100); await expect(locators.textbox(page)).not.toHaveAttribute('aria-invalid', 'true'); @@ -710,7 +711,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page, 'Next error')).not.toBeVisible(); await expect(locators.button(page, 'Previous error')).not.toBeVisible(); await expect(locators.button(page, 'Clear all')).not.toBeVisible(); - await expect(locators.contentDiv(page)).not.toHaveAttribute('aria-invalid', 'true'); + await expect(locators.textbox(page)).not.toHaveAttribute('aria-invalid', 'true'); await expect(locators.counter(page)).toHaveText('0/15of 15 lines'); }); @@ -719,14 +720,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.waitForTimeout(100); // it is necessary for stability in GitLab in Firefox await page.keyboard.press('Enter'); await page.waitForTimeout(100); - const boxBoundingBox = await locators.boxLocator(page).boundingBox(); - - if (boxBoundingBox) { - const rightTopX = boxBoundingBox.x + boxBoundingBox.width; - const rightTopY = boxBoundingBox.y; - await page.mouse.click(rightTopX, rightTopY); - await page.waitForTimeout(200); - } + const boxBoundingBox = (await locators.boxLocator(page).boundingBox())!; + const rightTopX = boxBoundingBox.x + boxBoundingBox.width; + const rightTopY = boxBoundingBox.y; + await page.mouse.click(rightTopX, rightTopY); + await page.waitForTimeout(200); await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page, '1 error')).toBeVisible(); @@ -767,7 +765,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Tab'); await page.keyboard.type('test[]]', { delay: 10 }); await page.keyboard.press('Enter'); - await page.waitForTimeout(100);// it is nessesary for stability in GitLab in Firefox + await page.waitForTimeout(100);// it is necessary for stability in GitLab in Firefox await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page, '1 error')).toBeVisible(); await expect(locators.button(page, 'Next error')).toBeVisible(); @@ -803,13 +801,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await page.keyboard.type('text\n[]\nttext', { delay: 10 }); await page.waitForTimeout(100); // it is necessary for stability in GitLab in Firefox - const boxBoundingBox = await locators.boxLocator(page).boundingBox(); - - if (boxBoundingBox) { - const rightTopX = boxBoundingBox.x + boxBoundingBox.width; - const rightTopY = boxBoundingBox.y; - await page.mouse.click(rightTopX, rightTopY); - } + const boxBoundingBox = (await locators.boxLocator(page).boundingBox())!; + const rightTopX = boxBoundingBox.x + boxBoundingBox.width; + const rightTopY = boxBoundingBox.y; + await page.mouse.click(rightTopX, rightTopY); await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page, '1 error')).toBeVisible(); await expect(locators.button(page, 'Next error')).toBeVisible(); @@ -825,7 +820,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.errorMessage(page, '3 errors')).toBeVisible(); }); - await test.step('Verify focus order when validation starts ', async () => { + await test.step('Verify focus order when validation starts', async () => { await page.waitForTimeout(100); // it is necessary for stability in GitLab in Firefox await page.keyboard.press('Tab'); await expect(locators.button(page, 'Next error')).toBeFocused(); @@ -838,7 +833,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Validation on Paste', { tag: [TAG.PRIORITY_HIGH, - TAG.KEYBOARD, + TAG.MOUSE, '@bulk-textarea', '@base-components', '@flex-box', @@ -851,14 +846,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await locators.textbox(page).click(); - await locators.textbox(page).evaluate((node, text) => { - const event = new Event('paste', { bubbles: true, cancelable: true }); - (event as any).clipboardData = { - getData: (type: string) => (type === 'text/plain' ? text : ''), - types: ['text/plain'], - }; - node.dispatchEvent(event); - }, 'invalid[] value'); + await pasteText(page, 'invalid[] value'); await expect(locators.row(page, 0)).toHaveAttribute( 'data-errormessage', @@ -872,6 +860,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Validation on Submit', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, TAG.MOUSE, '@bulk-textarea', '@base-components', @@ -881,7 +870,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/bulk-textarea/tests/examples/on-submit-example.tsx', 'en'); - await test.step('Verify validation on blurRow starts by clicking submit', async () => { + await test.step('Verify validation starts by clicking submit', async () => { await page.keyboard.press('Tab'); const text = 'Zoom in \nSecond[] row\n3 row'; await page.keyboard.type(text, { delay: 10 }); @@ -912,27 +901,24 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await test.step('Verify enter delimiter works', async () => { const text = 'Zoom in \nSecond line\n3 line\n4 line\n5 line'; await page.keyboard.type(text, { delay: 10 }); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(5); + await expect(locators.rows(page)).toHaveCount(5); }); await test.step('Verify comma delimiter works', async () => { await page.keyboard.press('Enter'); const text = 'Zoom in ,Second line,3 line,4 line,5 line'; await page.keyboard.type(text, { delay: 10 }); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(10); + await expect(locators.rows(page)).toHaveCount(10); await expect(locators.counter(page)).toHaveText('10/15of 15 lines'); await locators.button(page, 'Clear all').click(); await page.waitForTimeout(100); }); - await test.step('Verify lines Processing works in 1st line ', async () => { + await test.step('Verify lines Processing works in 1st line', async () => { await page.waitForTimeout(100); await locators.textbox(page).click(); await page.keyboard.type('http://', { delay: 10 }); await page.keyboard.press('Enter'); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(2); + await expect(locators.rows(page)).toHaveCount(2); await expect(locators.counter(page)).toHaveText('0/15of 15 lines'); await page.keyboard.press('Backspace'); await expect(locators.rows(page)).toHaveCount(0); @@ -948,7 +934,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.rows(page)).toHaveCount(2); await expect(locators.counter(page)).toHaveText('1/15of 15 lines'); - await expect(locators.row(page, 0)).not.toHaveText(/^http:\/\//); + await expect(locators.row(page, 0)).toHaveText('Test'); await locators.button(page, 'Clear all').click(); await page.waitForTimeout(100); @@ -959,8 +945,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.waitForTimeout(100); await page.keyboard.type('Testhttp://', { delay: 100 }); await page.keyboard.press('Enter'); - const firstLineText = await locators.row(page, 0).textContent(); - expect(firstLineText).not.toMatch(/^http:\/\//); + await expect(locators.row(page, 0)).toHaveText('Test'); }); }); }); @@ -968,6 +953,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Common error OFF - Validation Delimiter LineProcessing', () => { test('Verify Validation on Blur', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, TAG.MOUSE, '@bulk-textarea', '@base-components', @@ -975,7 +961,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@button', '@typography'], }, async ({ page }) => { - await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props', 'en', { maxLines: 15, showErrors: false }); + await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { maxLines: 15, showErrors: false }); await test.step('Verify validation on blur starts by TAB', async () => { await page.keyboard.press('Tab'); @@ -999,14 +985,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.waitForTimeout(100); await page.keyboard.press('Enter'); await page.waitForTimeout(200); - const boxBoundingBox = await locators.boxLocator(page).boundingBox(); - - if (boxBoundingBox) { - const rightTopX = boxBoundingBox.x + boxBoundingBox.width; - const rightTopY = boxBoundingBox.y; - await page.mouse.click(rightTopX, rightTopY); - await page.waitForTimeout(200); - } + const boxBoundingBox = (await locators.boxLocator(page).boundingBox())!; + const rightTopX = boxBoundingBox.x + boxBoundingBox.width; + const rightTopY = boxBoundingBox.y; + await page.mouse.click(rightTopX, rightTopY); + await page.waitForTimeout(200); await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page, '1 error')).toBeVisible(); @@ -1072,13 +1055,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.button(page, 'Clear all').click(); await page.keyboard.type('text\n[]\nttext', { delay: 10 }); await page.waitForTimeout(100); - const boxBoundingBox = await locators.boxLocator(page).boundingBox(); - - if (boxBoundingBox) { - const rightTopX = boxBoundingBox.x + boxBoundingBox.width; - const rightTopY = boxBoundingBox.y; - await page.mouse.click(rightTopX, rightTopY); - } + const boxBoundingBox = (await locators.boxLocator(page).boundingBox())!; + const rightTopX = boxBoundingBox.x + boxBoundingBox.width; + const rightTopY = boxBoundingBox.y; + await page.mouse.click(rightTopX, rightTopY); await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page, '1 error')).toBeVisible(); await expect(locators.button(page, 'Next error')).toBeVisible(); @@ -1096,6 +1076,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Delimiter and Rows Processing functionality', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, TAG.MOUSE, '@bulk-textarea', '@base-components', @@ -1108,27 +1089,24 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await test.step('Verify enter delimiter works', async () => { const text = 'Zoom in \nSecond row\n3 row\n4 row\n5 row'; await page.keyboard.type(text, { delay: 10 }); - const lineCount = await locators.rows(page).count(); - await expect(lineCount).toBe(5); + await expect(locators.rows(page)).toHaveCount(5); }); await test.step('Verify comma delimiter works', async () => { await page.keyboard.press('Enter'); const text = 'Zoom in ,Second row,3 row,4 row,5 row'; await page.keyboard.type(text, { delay: 10 }); - const lineCount = await locators.rows(page).count(); - expect(lineCount).toBe(10); + await expect(locators.rows(page)).toHaveCount(10); await expect(locators.counter(page)).toHaveText('10/10of 10 linesLimit reached'); await locators.button(page, 'Clear all').click(); await page.waitForTimeout(100); }); - await test.step('Verify rows Processing works in 1st row ', async () => { + await test.step('Verify rows Processing works in 1st row', async () => { await page.waitForTimeout(100); await locators.textbox(page).click(); await page.keyboard.type('http://', { delay: 10 }); await page.keyboard.press('Enter'); - const lineCount = await locators.rows(page).count(); - expect(lineCount).toBe(2); + await expect(locators.rows(page)).toHaveCount(2); await expect(locators.counter(page)).toHaveText('0/10of 10 lines'); await page.keyboard.press('Backspace'); await expect(locators.rows(page)).toHaveCount(0); @@ -1143,7 +1121,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.rows(page)).toHaveCount(2); await expect(locators.counter(page)).toHaveText('1/10of 10 lines'); - await expect(locators.row(page, 0)).not.toHaveText(/^http:\/\//); + await expect(locators.row(page, 0)).toHaveText('Test'); await locators.button(page, 'Clear all').click(); await page.waitForTimeout(100); @@ -1154,9 +1132,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.waitForTimeout(100); await page.keyboard.type('Testhttp://', { delay: 100 }); await page.keyboard.press('Enter'); - const firstLine = await page.locator('ol[contenteditable="true"] li').first(); - const firstLineText = await firstLine.textContent(); - expect(firstLineText).not.toMatch(/^http:\/\//); + await expect(locators.row(page, 0)).toHaveText('Test'); }); }); }); @@ -1164,6 +1140,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Common error On - Error tooltips', () => { test('Verify tooltips by mouse hover and click', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, TAG.MOUSE, '@bulk-textarea', '@base-components', @@ -1197,7 +1174,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.row(page, 9).hover(); await locators.tooltip(page, 'Please fix this value = another error').waitFor({ state: 'hidden' }); - await expect(locators.tooltip(page)).toBeEmpty; + await expect(locators.tooltip(page)).toBeHidden(); await locators.row(page, 10).click(); await locators.tooltip(page, 'Please fix this value = another error').waitFor({ state: 'visible' }); @@ -1212,7 +1189,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.errorMessage(page)).toHaveText('3 errors'); }); - await test.step('Navigation between rows by clicking arrows', async () => { + await test.step('Navigate between errors with error navigation buttons', async () => { await locators.button(page, 'Next error').click(); await locators.tooltip(page, 'Please remove one error value').waitFor({ state: 'visible' }); @@ -1236,7 +1213,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify tooltips by keyboard click and navigate by arrows', { + test('Verify tooltips by keyboard and navigate between errors', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@bulk-textarea', @@ -1265,7 +1242,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.tooltip(page, 'Please enter correct movie names.').waitFor({ state: 'visible' }); await expect(locators.textbox(page)).toBeFocused(); - await expect(locators.contentDiv(page)).toHaveAttribute('aria-invalid', 'true'); + await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page)).toHaveText('3 errors'); await page.keyboard.press('ArrowUp'); @@ -1276,7 +1253,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.tooltip(page, 'Please enter correct movie names.').waitFor({ state: 'visible' }); }); - await test.step('Navigation between rows by clicking arrows', async () => { + await test.step('Navigate between errors with error navigation buttons', async () => { await page.keyboard.press('Tab'); await page.waitForTimeout(50); await page.keyboard.press('Enter'); @@ -1294,6 +1271,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify tooltips when fixing errors', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -1302,11 +1280,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@typography', '@tooltip'], }, async ({ page, browserName }) => { - if (browserName === 'webkit') test.skip(); + test.skip(browserName === 'webkit', 'Unstable in WebKit, reason not documented: needs investigation'); await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { maxLines: 15 }); - await test.step('Row Error on Focus', async () => { + await test.step('Row error tooltip after clicking a row', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); const text = @@ -1318,7 +1296,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.textbox(page).click(); await expect(locators.textbox(page)).toBeFocused(); await locators.tooltip(page, 'Please enter correct movie names.').waitFor({ state: 'visible' }); - await expect(locators.contentDiv(page)).toHaveAttribute('aria-invalid', 'true'); + await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page)).toHaveText('3 errors'); await locators.row(page, 10).click(); @@ -1334,7 +1312,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.row(page, 10)).not.toHaveAttribute('data-errormessage', 'Please fix this value = another error'); }); - await test.step('Navigation between rows by clicking arrows', async () => { + await test.step('Navigate between errors with error navigation buttons', async () => { await page.keyboard.press('Tab'); await page.waitForTimeout(200); @@ -1347,7 +1325,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { for (let i = 0; i < 6; i++) await page.keyboard.press('Backspace'); await locators.tooltip(page, 'Please enter correct movie names.').waitFor({ state: 'visible' }); - await expect(locators.contentDiv(page)).toHaveAttribute('aria-invalid', 'true'); + await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await locators.button(page, 'Next error').click(); @@ -1355,15 +1333,16 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.errorMessage(page)).toHaveText('Error 1 out of 1'); await locators.row(page, 4).click(); - await page.waitForTimeout(200); // wait for setting cursor, for forefox stability + await page.waitForTimeout(200); // wait for setting cursor, for Firefox stability for (let i = 0; i < 6; i++) await page.keyboard.press('Backspace'); - await expect(locators.contentDiv(page)).not.toHaveAttribute('aria-invalid', 'true'); - await expect(locators.tooltip(page)).toBeEmpty; + await expect(locators.textbox(page)).not.toHaveAttribute('aria-invalid', 'true'); + await expect(locators.tooltip(page)).toBeHidden(); }); }); - test('Verify tooltips when adding errors ', { + test('Verify tooltips when adding errors', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -1371,10 +1350,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@button', '@typography', '@tooltip'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/components/bulk-textarea/tests/examples/basic-props.tsx', 'en', { maxLines: 15 }); - await test.step('Row Error on Focus', async () => { + await test.step('Row error tooltip after clicking a row', async () => { await locators.textbox(page).click(); const text = '1 row[\n2[] row\n3 row\n4 ]]row\n5 row'; await page.keyboard.type(text, { delay: 10 }); @@ -1393,6 +1372,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('Common error Off - Error tooltips', () => { test('Verify tooltips by mouse hover and click', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, TAG.MOUSE, '@bulk-textarea', '@base-components', @@ -1445,7 +1425,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.errorMessage(page)).toHaveText('3 errors'); }); - await test.step('Navigation between rows by clicking arrows', async () => { + await test.step('Navigate between errors with error navigation buttons', async () => { await locators.button(page, 'Next error').click(); await locators.tooltip(page, 'Please remove invalid charsets from the movie name.').waitFor({ state: 'visible' }); @@ -1466,8 +1446,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify tooltips by keyboard click and navigate by arrows', { + test('Verify tooltips by keyboard and navigate between errors', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', @@ -1484,7 +1465,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Tab'); await page.waitForTimeout(500); await expect(locators.tooltip(page)).toHaveCount(0); - await expect(locators.contentDiv(page)).toHaveAttribute('aria-invalid', 'true'); + await expect(locators.textbox(page)).toHaveAttribute('aria-invalid', 'true'); await expect(locators.errorMessage(page)).toHaveText('3 errors'); await locators.row(page, 1).click(); @@ -1530,8 +1511,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test.describe('lineProcessing cases', () => { - test('Verify lineProcessing when paste empty rows', { + test('Verify lineProcessing of empty rows when value is passed to another BulkTextarea', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@bulk-textarea', '@base-components', '@flex-box', @@ -1548,8 +1531,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.textbox(page).nth(1)).toBeEmpty(); }); - test('Verify lineProcessing when counts lines and index', { + test('Verify lineProcessing receives line count and index', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@bulk-textarea', '@base-components', '@flex-box', @@ -1573,8 +1558,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); test.describe('Controlled errors', () => { - test('Verify error shows on manually errors set', { + test('Verify errors are shown when set manually', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@bulk-textarea', '@base-components', diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-e60b9-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-5b360-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-e60b9-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-5b360-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-e60b9-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-5b360-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-e60b9-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-5b360-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-e60b9-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-5b360-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-e60b9-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-5b360-Rows-2-maxRows-10-maxLines-10-autoFocus-false-4-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-firefox-linux.png deleted file mode 100644 index 4fdfad07fc..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-firefox-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-firefox-linux.png new file mode 100644 index 0000000000..89e5a067d4 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-firefox-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6b87c-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-6f3c3-Rows-2-maxRows-10-maxLines-10-autoFocus-false-2-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-fcf90-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-86b4b-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-fcf90-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-86b4b-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-fcf90-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-86b4b-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-fcf90-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-86b4b-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-fcf90-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-86b4b-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-fcf90-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-86b4b-Rows-2-maxRows-10-maxLines-10-autoFocus-false-1-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-webkit-linux.png similarity index 85% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-webkit-linux.png index 5c4594a085..5312da3e7e 100644 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-60e08-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-webkit-linux.png and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-Enter-or-pas-b66ec-Rows-2-maxRows-10-maxLines-10-autoFocus-false-3-webkit-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f40b3-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--7224e-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f40b3-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--7224e-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f40b3-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--7224e-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f40b3-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--7224e-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f40b3-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--7224e-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f40b3-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--7224e-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-bd682-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--9e0c8-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-bd682-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--9e0c8-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-bd682-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--9e0c8-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-bd682-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--9e0c8-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-bd682-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--9e0c8-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-bd682-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--9e0c8-inRows-1-maxRows-1-maxLines-5-autoFocus-false-2-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-6c192-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--dc23f-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-6c192-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--dc23f-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-6c192-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--dc23f-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-6c192-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--dc23f-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-6c192-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--dc23f-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-6c192-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--dc23f-inRows-1-maxRows-1-maxLines-5-autoFocus-false-4-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-webkit-linux.png new file mode 100644 index 0000000000..b145ad5656 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e475c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-webkit-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png new file mode 100644 index 0000000000..e5c09ddc54 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png new file mode 100644 index 0000000000..1747e8923b Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png new file mode 100644 index 0000000000..bec27b4ecc Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--e875c-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-16199-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--f53ad-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-16199-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--f53ad-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-16199-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--f53ad-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-16199-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--f53ad-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-16199-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--f53ad-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-16199-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w--f53ad-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png deleted file mode 100644 index a7f90f1f0a..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png deleted file mode 100644 index 5cfa1602ab..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png deleted file mode 100644 index 82578040fe..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-c8da5-inRows-1-maxRows-1-maxLines-5-autoFocus-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-webkit-linux.png deleted file mode 100644 index 4f974ec5a9..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-l-placeholder-undefined-w-f1b95-inRows-1-maxRows-1-maxLines-5-autoFocus-false-3-webkit-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-chromium-linux.png deleted file mode 100644 index 7587e96c87..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-8fbcd-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-5eadc-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-8fbcd-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-5eadc-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-8fbcd-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-5eadc-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-8fbcd-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-5eadc-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-8fbcd-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-5eadc-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-8fbcd-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-5eadc-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png new file mode 100644 index 0000000000..01170bd177 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png new file mode 100644 index 0000000000..70c6f1f806 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png new file mode 100644 index 0000000000..9fe7c9eefd Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-90e67-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-chromium-linux.png new file mode 100644 index 0000000000..3445471970 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-chromium-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-49d5e-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-949c3-nRows-2-maxRows-10-maxLines-10-autoFocus-true-3-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png deleted file mode 100644 index 8c5969425e..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png deleted file mode 100644 index b9e68400de..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png deleted file mode 100644 index 3515406a0e..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-a10b1-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-85c97-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-b5f76-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-85c97-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-b5f76-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-85c97-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-b5f76-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-85c97-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-b5f76-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-85c97-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-b5f76-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-85c97-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-b5f76-nRows-2-maxRows-10-maxLines-10-autoFocus-true-2-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-2bf0b-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f2cd4-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-2bf0b-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f2cd4-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-2bf0b-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f2cd4-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-2bf0b-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f2cd4-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-2bf0b-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f2cd4-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-2bf0b-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f2cd4-nRows-2-maxRows-10-maxLines-10-autoFocus-true-4-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-3d5af-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f7fd8-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-3d5af-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f7fd8-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-3d5af-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f7fd8-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-3d5af-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f7fd8-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-3d5af-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f7fd8-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-3d5af-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-Enter-or-pas-f7fd8-nRows-2-maxRows-10-maxLines-10-autoFocus-true-1-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-chromium-linux.png new file mode 100644 index 0000000000..e744bd9843 Binary files /dev/null and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-chromium-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-firefox-linux.png similarity index 57% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-firefox-linux.png index 0883a16fd1..79b1ac72ab 100644 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-firefox-linux.png and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-firefox-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-webkit-linux.png similarity index 56% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-webkit-linux.png index 157203633a..31536be418 100644 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-webkit-linux.png and b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--232e9-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-webkit-linux.png differ diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-b374f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--420a6-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-b374f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--420a6-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-b374f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--420a6-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-b374f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--420a6-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-b374f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--420a6-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-b374f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--420a6-minRows-1-maxRows-5-maxLines-3-autoFocus-true-4-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-cc833-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--50e0f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-cc833-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--50e0f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-cc833-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--50e0f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-cc833-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--50e0f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-cc833-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--50e0f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-cc833-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--50e0f-minRows-1-maxRows-5-maxLines-3-autoFocus-true-1-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-38264-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--ef944-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-chromium-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-38264-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-chromium-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--ef944-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-chromium-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-38264-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-firefox-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--ef944-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-firefox-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-38264-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-firefox-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--ef944-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-firefox-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-38264-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-webkit-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--ef944-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-webkit-linux.png similarity index 100% rename from semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-38264-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-webkit-linux.png rename to semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w--ef944-minRows-1-maxRows-5-maxLines-3-autoFocus-true-2-webkit-linux.png diff --git a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-chromium-linux.png b/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-chromium-linux.png deleted file mode 100644 index 65ce8801d6..0000000000 Binary files a/semcore/bulk-textarea/__tests__/bulk-textarea.browser-test.tsx-snapshots/-visual-Verify-size-m-placeholder-undefined-w-c7174-minRows-1-maxRows-5-maxLines-3-autoFocus-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx b/semcore/button/__tests__/button-link.browser-test.tsx index 44e1e5ed41..9f329fe450 100644 --- a/semcore/button/__tests__/button-link.browser-test.tsx +++ b/semcore/button/__tests__/button-link.browser-test.tsx @@ -8,14 +8,6 @@ export const locators = { const base = page.getByRole('button'); return typeof index === 'number' ? base.nth(index) : base; }, - buttonText: (page: Page, index?: number) => { - const base = page.locator('[data-ui-name="Button.Text"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, - buttonAddon: (page: Page, index?: number) => { - const base = page.locator('[data-ui-name="Button.Addon"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, hint: (page: Page) => page.locator('[data-ui-name="Hint"]'), }; @@ -89,7 +81,9 @@ test.describe(` ${TAG.VISUAL}`, () => { if (merged) descParts.push('merged'); test(`Verify ButtonLink size=${size}, ${descParts.join(', ')}, ${ellipsisDesc}`, { - tag: [TAG.PRIORITY_HIGH, '@button-link', '@ellipsis', '@badge', '@counter', '@spin', '@typography', + tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@button-link', '@ellipsis', '@badge', '@counter', '@spin', '@typography', '@button'], }, async ({ page }) => { await loadPage(page, storyPath, 'en', { @@ -119,22 +113,24 @@ test.describe(` ${TAG.VISUAL}`, () => { } }); - await loadPage(page, storyPath, 'en', { - size, active: true, ...addonVars, text: longText, ...ellipsisVars, ...extraVars, - }); - const activeClip = await getTextClip(page); - await page.waitForTimeout(100); - await test.step('Verify active state + hover hint', async () => { - await locators.button(page).first().hover(); - await locators.hint(page).waitFor({ state: 'visible' }); - await page.waitForFunction( - () => { - const el = document.querySelector('[data-ui-name="Hint"]'); - return el && getComputedStyle(el).opacity === '1'; - }, - ); - await expect(page).toHaveScreenshot({ clip: activeClip }); - }); + if (size === 300) { + await loadPage(page, storyPath, 'en', { + size, active: true, ...addonVars, text: longText, ...ellipsisVars, ...extraVars, + }); + const activeClip = await getTextClip(page); + await page.waitForTimeout(100); + await test.step('Verify active state + hover hint', async () => { + await locators.button(page).first().hover(); + await locators.hint(page).waitFor({ state: 'visible' }); + await page.waitForFunction( + () => { + const el = document.querySelector('[data-ui-name="Hint"]'); + return el && getComputedStyle(el).opacity === '1'; + }, + ); + await expect(page).toHaveScreenshot({ clip: activeClip }); + }); + } }); }); }); @@ -235,7 +231,8 @@ test.describe(` ${TAG.VISUAL}`, () => { // Section 4: Icon-only ButtonLink test('Verify ButtonLink: icon-only with hint', { - tag: [TAG.PRIORITY_HIGH, '@button-link', '@base-components', '@flex-box', + tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@button-link', '@base-components', '@flex-box', '@button'], }, async ({ page }) => { await loadPage(page, iconOnlyPath, 'en', { use: 'primary' }); @@ -266,7 +263,9 @@ test.describe(` ${TAG.VISUAL}`, () => { // Section 5: In-text test('Verify ButtonLink inside text', { - tag: [TAG.PRIORITY_HIGH, '@button-link', '@base-components', '@flex-box', '@typography', + tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@button-link', '@base-components', '@flex-box', '@typography', '@button'], }, async ({ page }) => { await loadPage(page, inTextPath, 'en', { size: 300 }); diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index e5481e658e..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index dd26425f8c..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index 1fb0d18d7c..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonLeft-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 27dab64689..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 1b39b476fb..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 21f6d4578c..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 9ef8a27b3e..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index b8dd5763fd..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index 39731c8380..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-both-addons-counter-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index abe4ec4d89..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 9462d17af9..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 9eb100998b..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-100-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 98ed54474a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 1f3bacb159..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index ad1274ef18..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonLeft-badge-secondary-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index a91c68dbd5..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 673ceaf353..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 8848bfa5dd..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-addonRight-counter-secondary-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 10a27f8eae..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index 4653ae9414..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index 34bfcbf44b..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-both-addons-spin-secondary-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 96f69812da..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index c92bf99374..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index ee55d2bd6c..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-200-no-addons-text-success-secondary-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 24522b218d..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 973c142174..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index aa1f7ae2f2..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonLeft-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index bcfb10cf2a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 0f9568f6f9..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 2490fd1d38..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index c4afafb1b9..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index 0b59b1cba4..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index cabb1585f3..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-both-addons-counter-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index fa1067526a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 5b5fc4d9f5..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 099f80fce3..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-350-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 048bb4beb3..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index cdc3bd359b..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index f5b4515f23..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonLeft-spin-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 70e3586894..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 317b5f66e3..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 0fb9df267a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-addonRight-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 506e4f7fb6..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index 481ba623b4..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index 30298613f8..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-both-addons-badge-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 4c742dbb8e..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 68d870f96d..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index edeeb0ece3..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-400-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 3437a3988a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index cbe399d66a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index a4c3af6a80..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonLeft-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 3f32c3c87d..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index d63a03dda6..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 5deca5e759..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-addonRight-badge-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 0bb401f899..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index d81daf4325..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index 40dd432cd8..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-both-addons-counter-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 88b1094570..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 0fa5c29bc4..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 10f2848da3..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-500-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index 1c950540a0..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index 6eab7ea3ab..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index 1ae079abaa..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonLeft-badge-secondary-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 8b06fbf4cd..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index f99b814f4f..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index fcdff24997..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-addonRight-counter-secondary-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 976787adde..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index fb864882ef..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index 9f58aafeb9..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-both-addons-spin-secondary-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 5e25f4816e..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index c6b3016f4b..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index 37c23b69ab..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-600-no-addons-text-success-secondary-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index b6d5c5fe98..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index d8114c6785..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index eed899cd29..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonLeft-counter-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index 93db0cbb41..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index cad549dd32..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 3591dca44f..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-addonRight-spin-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 39fe135e5a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index b72952937e..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index d0627ffa8a..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-both-addons-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index 5bff2429a8..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index f40f985a4e..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index b54168b57c..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-700-no-addons-text-critical-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-chromium-linux.png deleted file mode 100644 index b89ece75cc..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-firefox-linux.png deleted file mode 100644 index af11e421ba..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-webkit-linux.png deleted file mode 100644 index fe4784c1ac..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonLeft-spin-cropPosition-middle-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-chromium-linux.png deleted file mode 100644 index fa048b7a1b..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-firefox-linux.png deleted file mode 100644 index 75112306fc..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-webkit-linux.png deleted file mode 100644 index 8470723b05..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-addonRight-merged-middle-lastRequired-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-chromium-linux.png deleted file mode 100644 index 0632d1f0b8..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-firefox-linux.png deleted file mode 100644 index c6e6ff3718..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-webkit-linux.png deleted file mode 100644 index 9435b67bc0..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-both-addons-badge-end-maxLine-2-2-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-chromium-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-chromium-linux.png deleted file mode 100644 index fbdbdd374c..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-firefox-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-firefox-linux.png deleted file mode 100644 index 1f1a4b8efb..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-webkit-linux.png b/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-webkit-linux.png deleted file mode 100644 index b1a6b083bc..0000000000 Binary files a/semcore/button/__tests__/button-link.browser-test.tsx-snapshots/-visual-Verify-ButtonLink-size-800-no-addons-ellipsis-true-3-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx b/semcore/button/__tests__/button.browser-test.tsx index b6b0effa12..ac46f47812 100644 --- a/semcore/button/__tests__/button.browser-test.tsx +++ b/semcore/button/__tests__/button.browser-test.tsx @@ -1,6 +1,6 @@ import { expect, test } from '@semcore/testing-utils/playwright'; import type { Page } from '@semcore/testing-utils/playwright'; -import { loadPage } from '@semcore/testing-utils/shared/helpers'; +import { expectEachToHaveAttribute, loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { @@ -9,14 +9,6 @@ export const locators = { const base = page.getByRole('button'); return typeof index === 'number' ? base.nth(index) : base; }, - buttonText: (page: Page, index?: number) => { - const base = page.locator('[data-ui-name="Button.Text"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, - buttonAddon: (page: Page, index?: number) => { - const base = page.locator('[data-ui-name="Button.Addon"]'); - return typeof index === 'number' ? base.nth(index) : base; - }, hint: (page: Page) => page.locator('[data-ui-name="Hint"]'), }; @@ -32,6 +24,10 @@ const normalizeThemeProps = (props: T) => { Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ test.describe(`${TAG.VISUAL} `, () => { + const neighborThemes = ['primary-info', 'secondary-muted', 'tertiary-muted']; + const isNeighborVariant = (item: { theme: string; loading: boolean }) => + neighborThemes.includes(item.theme) && !item.loading; + const variablesPrimary = [ // primary { size: 'm', theme: 'primary-info', active: false, disabled: false, loading: false, hintPlacement: 'top' }, @@ -41,9 +37,6 @@ test.describe(`${TAG.VISUAL} `, () => { { size: 'm', theme: 'primary-invert', active: false, disabled: false, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, { size: 'l', theme: 'primary-info', active: false, disabled: false, loading: false, hintPlacement: 'top' }, - { size: 'l', theme: 'primary-success', active: false, disabled: false, loading: false, hintPlacement: 'bottom' }, - { size: 'l', theme: 'primary-brand', active: false, disabled: false, loading: false, hintPlacement: 'left' }, - { size: 'l', theme: 'primary-danger', active: false, disabled: false, loading: false, hintPlacement: 'right' }, { size: 'l', theme: 'primary-invert', active: false, disabled: false, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, // active @@ -55,17 +48,10 @@ test.describe(`${TAG.VISUAL} `, () => { // Disabled { size: 'l', theme: 'primary-info', active: false, disabled: true, loading: false, hintPlacement: 'top' }, - { size: 'l', theme: 'primary-success', active: false, disabled: true, loading: false, hintPlacement: 'bottom' }, - { size: 'l', theme: 'primary-brand', active: false, disabled: true, loading: false, hintPlacement: 'left' }, - { size: 'l', theme: 'primary-danger', active: false, disabled: true, loading: false, hintPlacement: 'right' }, { size: 'l', theme: 'primary-invert', active: false, disabled: true, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, // loading { size: 'l', theme: 'primary-info', active: false, disabled: false, loading: true, hintPlacement: 'top' }, - { size: 'l', theme: 'primary-success', active: false, disabled: false, loading: true, hintPlacement: 'bottom' }, - { size: 'l', theme: 'primary-brand', active: false, disabled: false, loading: true, hintPlacement: 'left' }, - { size: 'm', theme: 'primary-brand', active: false, disabled: false, loading: true, hintPlacement: 'left' }, - { size: 'm', theme: 'primary-danger', active: false, disabled: false, loading: true, hintPlacement: 'right' }, { size: 'm', theme: 'primary-invert', active: false, disabled: false, loading: true, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, ]; @@ -73,6 +59,8 @@ test.describe(`${TAG.VISUAL} `, () => { variablesPrimary.forEach((item) => { test(`Verify Base example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@button', '@base-components', '@flex-box', @@ -85,6 +73,7 @@ test.describe(`${TAG.VISUAL} `, () => { if (!item.loading) { await test.step('Verify text paddings and spacing based on content', async () => { + let checkedTextOnlyButtons = 0; for (let i = 0; i < count; i++) { const button = locators.button(page).nth(i); const text = button.locator('[data-ui-name="Button.Text"]'); @@ -94,16 +83,18 @@ test.describe(`${TAG.VISUAL} `, () => { const hasAddon = await addon.count(); if (hasText && !hasAddon) { + checkedTextOnlyButtons++; await expect(text).toHaveCSS('margin-left', '12px'); await expect(text).toHaveCSS('margin-right', '12px'); await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); } } + expect(checkedTextOnlyButtons).toBeGreaterThan(0); }); } if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { await page.keyboard.press('Tab'); await locators.button(page).nth(4).hover(); await expect(page).toHaveScreenshot(); @@ -119,9 +110,7 @@ test.describe(`${TAG.VISUAL} `, () => { if (item.loading) { await test.step(`Verify attributes for loading`, async () => { - for (let i = 0; i < count; i++) { - await expect(locators.button(page).nth(i)).toHaveAttribute('aria-busy', 'true'); - } + await expectEachToHaveAttribute(locators.button(page), 'aria-busy', 'true'); await expect(page).toHaveScreenshot(); }); } @@ -132,70 +121,77 @@ test.describe(`${TAG.VISUAL} `, () => { } }); - test(`Verify Neignbor location example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { - tag: [TAG.PRIORITY_HIGH, - '@button', - '@base-components', - '@neighbor-location', - '@flex-box'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/button/tests/examples/button-neighbor-location.tsx', 'en', normalizeThemeProps(item)); - - await page.keyboard.press('Tab'); - const count = await locators.button(page).count(); - - if (!item.loading) { - await test.step('Verify text paddings and spacing based on content', async () => { - for (let i = 0; i < count; i++) { - const button = locators.button(page).nth(i); - const text = button.locator('[data-ui-name="Button.Text"]'); - const addon = button.locator('[data-ui-name="Button.Addon"]'); - - const hasText = await text.count(); - const hasAddon = await addon.count(); + if (isNeighborVariant(item)) { + test(`Verify Neighbor location example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { + tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, + '@button', + '@base-components', + '@neighbor-location', + '@flex-box'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/button/tests/examples/button-neighbor-location.tsx', 'en', normalizeThemeProps(item)); - if (hasText && !hasAddon) { - await expect(text).toHaveCSS('margin-left', '12px'); - await expect(text).toHaveCSS('margin-right', '12px'); - await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); + await page.keyboard.press('Tab'); + const count = await locators.button(page).count(); + + if (!item.loading) { + await test.step('Verify text paddings and spacing based on content', async () => { + let checkedTextOnlyButtons = 0; + for (let i = 0; i < count; i++) { + const button = locators.button(page).nth(i); + const text = button.locator('[data-ui-name="Button.Text"]'); + const addon = button.locator('[data-ui-name="Button.Addon"]'); + + const hasText = await text.count(); + const hasAddon = await addon.count(); + + if (hasText && !hasAddon) { + checkedTextOnlyButtons++; + await expect(text).toHaveCSS('margin-left', '12px'); + await expect(text).toHaveCSS('margin-right', '12px'); + await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); + } } - } - }); - } - - if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { - await page.keyboard.press('Tab'); - await locators.button(page).nth(0).hover(); - await expect(page).toHaveScreenshot(); - }); - } - - if (item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for active button styles`, async () => { - await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(); - }); - } - - if (item.loading) { - await test.step(`Verify attributes for loading`, async () => { - for (let i = 0; i < count; i++) { - await expect(locators.button(page).nth(i)).toHaveAttribute('aria-busy', 'true'); - } - await expect(page).toHaveScreenshot(); - }); - } - - if (item.disabled) { - await test.step(`Verify disabled styles`, async () => { - await expect(page).toHaveScreenshot(); - }); - } - }); + expect(checkedTextOnlyButtons).toBeGreaterThan(0); + }); + } + + if (!item.active && !item.disabled && !item.loading) { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { + await page.keyboard.press('Tab'); + await locators.button(page).nth(0).hover(); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.active && !item.disabled && !item.loading) { + await test.step(`Verify focus styles for active button styles`, async () => { + await page.keyboard.press('Tab'); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.loading) { + await test.step(`Verify attributes for loading`, async () => { + await expectEachToHaveAttribute(locators.button(page), 'aria-busy', 'true'); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.disabled) { + await test.step(`Verify disabled styles`, async () => { + await expect(page).toHaveScreenshot(); + }); + } + }); + } test(`Verify Addon only example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading} hintPlacement=${item.hintPlacement}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@button', '@base-components', '@flex-box', @@ -207,7 +203,7 @@ test.describe(`${TAG.VISUAL} `, () => { await locators.button(page).first().waitFor({ state: 'visible' }); await page.waitForTimeout(100); if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { await page.keyboard.press('Tab'); await expect(locators.button(page).first()).toBeFocused(); await hint.waitFor({ state: 'visible' }); @@ -222,7 +218,7 @@ test.describe(`${TAG.VISUAL} `, () => { } if (item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for active button styles`, async () => { + await test.step(`Verify hover hint for active buttons`, async () => { await locators.button(page).nth(1).hover(); await page.getByText('Hint Button Addon').waitFor({ state: 'visible' }); await page.waitForFunction( @@ -243,8 +239,8 @@ test.describe(`${TAG.VISUAL} `, () => { }); }); - const variablesSeconsary = [ - // primary + const variablesSecondary = [ + // secondary { size: 'm', theme: 'secondary-muted', active: false, disabled: false, loading: false, hintPlacement: 'top' }, { size: 'm', theme: 'secondary-invert', active: false, disabled: false, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, @@ -265,9 +261,11 @@ test.describe(`${TAG.VISUAL} `, () => { ]; - variablesSeconsary.forEach((item) => { + variablesSecondary.forEach((item) => { test(`Verify Base example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@button', '@badge', '@base-components', @@ -280,6 +278,7 @@ test.describe(`${TAG.VISUAL} `, () => { if (!item.loading) { await test.step('Verify text paddings and spacing based on content', async () => { + let checkedTextOnlyButtons = 0; for (let i = 0; i < count; i++) { const button = locators.button(page).nth(i); const text = button.locator('[data-ui-name="Button.Text"]'); @@ -289,16 +288,18 @@ test.describe(`${TAG.VISUAL} `, () => { const hasAddon = await addon.count(); if (hasText && !hasAddon) { + checkedTextOnlyButtons++; await expect(text).toHaveCSS('margin-left', '12px'); await expect(text).toHaveCSS('margin-right', '12px'); await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); } } + expect(checkedTextOnlyButtons).toBeGreaterThan(0); }); } if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { await page.keyboard.press('Tab'); await locators.button(page).nth(4).hover(); await expect(page).toHaveScreenshot(); @@ -314,9 +315,7 @@ test.describe(`${TAG.VISUAL} `, () => { if (item.loading) { await test.step(`Verify attributes for loading`, async () => { - for (let i = 0; i < count; i++) { - await expect(locators.button(page).nth(i)).toHaveAttribute('aria-busy', 'true'); - } + await expectEachToHaveAttribute(locators.button(page), 'aria-busy', 'true'); await expect(page).toHaveScreenshot(); }); } @@ -328,70 +327,78 @@ test.describe(`${TAG.VISUAL} `, () => { } }); - test(`Verify Neignbor location example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { - tag: [TAG.PRIORITY_HIGH, - '@button', - '@base-components', - '@neighbor-location', - '@flex-box'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/button/tests/examples/button-neighbor-location.tsx', 'en', normalizeThemeProps(item)); - - await page.keyboard.press('Tab'); - const count = await locators.button(page).count(); - - if (!item.loading) { - await test.step('Verify text paddings and spacing based on content', async () => { - for (let i = 0; i < count; i++) { - const button = locators.button(page).nth(i); - const text = button.locator('[data-ui-name="Button.Text"]'); - const addon = button.locator('[data-ui-name="Button.Addon"]'); + if (isNeighborVariant(item)) { + test(`Verify Neighbor location example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { + tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, + '@button', + '@base-components', + '@neighbor-location', + '@flex-box'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/button/tests/examples/button-neighbor-location.tsx', 'en', normalizeThemeProps(item)); - const hasText = await text.count(); - const hasAddon = await addon.count(); - - if (hasText && !hasAddon) { - await expect(text).toHaveCSS('margin-left', '12px'); - await expect(text).toHaveCSS('margin-right', '12px'); - await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); + await page.keyboard.press('Tab'); + const count = await locators.button(page).count(); + + if (!item.loading) { + await test.step('Verify text paddings and spacing based on content', async () => { + let checkedTextOnlyButtons = 0; + for (let i = 0; i < count; i++) { + const button = locators.button(page).nth(i); + const text = button.locator('[data-ui-name="Button.Text"]'); + const addon = button.locator('[data-ui-name="Button.Addon"]'); + + const hasText = await text.count(); + const hasAddon = await addon.count(); + + if (hasText && !hasAddon) { + checkedTextOnlyButtons++; + await expect(text).toHaveCSS('margin-left', '12px'); + await expect(text).toHaveCSS('margin-right', '12px'); + await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); + } } - } - }); - } - - if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { - await page.keyboard.press('Tab'); - await locators.button(page).nth(0).hover(); - await expect(page).toHaveScreenshot(); - }); - } - - if (item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for active button styles`, async () => { - await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(); - }); - } - - if (item.loading) { - await test.step(`Verify attributes for loading`, async () => { - for (let i = 0; i < count; i++) { - await expect(locators.button(page).nth(i)).toHaveAttribute('aria-busy', 'true'); - } - await expect(page).toHaveScreenshot(); - }); - } - - if (item.disabled) { - await test.step(`Verify disabled styles`, async () => { - await expect(page).toHaveScreenshot(); - }); - } - }); + expect(checkedTextOnlyButtons).toBeGreaterThan(0); + }); + } + + if (!item.active && !item.disabled && !item.loading) { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { + await page.keyboard.press('Tab'); + await locators.button(page).nth(0).hover(); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.active && !item.disabled && !item.loading) { + await test.step(`Verify focus styles for active button styles`, async () => { + await page.keyboard.press('Tab'); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.loading) { + await test.step(`Verify attributes for loading`, async () => { + await expectEachToHaveAttribute(locators.button(page), 'aria-busy', 'true'); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.disabled) { + await test.step(`Verify disabled styles`, async () => { + await expect(page).toHaveScreenshot(); + }); + } + }); + } test(`Verify Addon only example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading} hintPlacement=${item.hintPlacement}`, { tag: [TAG.PRIORITY_HIGH, + '@hint', + TAG.MOUSE, + TAG.KEYBOARD, '@button', '@base-components', '@flex-box', @@ -403,7 +410,7 @@ test.describe(`${TAG.VISUAL} `, () => { await page.waitForTimeout(100); if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { await page.keyboard.press('Tab'); await expect(locators.button(page).first()).toBeFocused(); await hint.waitFor({ state: 'visible' }); @@ -418,7 +425,7 @@ test.describe(`${TAG.VISUAL} `, () => { } if (item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for active button styles`, async () => { + await test.step(`Verify hover hint for active buttons`, async () => { await locators.button(page).nth(1).hover(); await page.getByText('Hint Button Addon').waitFor({ state: 'visible' }); await page.waitForFunction( @@ -440,16 +447,19 @@ test.describe(`${TAG.VISUAL} `, () => { }); const variablesTertiary = [ - // primary + // tertiary { size: 'm', theme: 'tertiary-muted', active: false, disabled: false, loading: false, hintPlacement: 'top' }, { size: 'm', theme: 'tertiary-invert', active: false, disabled: false, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, + { size: 'm', theme: 'tertiary-info', active: false, disabled: false, loading: false, hintPlacement: 'top' }, { size: 'l', theme: 'tertiary-muted', active: false, disabled: false, loading: false, hintPlacement: 'top' }, { size: 'l', theme: 'tertiary-invert', active: false, disabled: false, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, + { size: 'l', theme: 'tertiary-info', active: false, disabled: false, loading: false, hintPlacement: 'top' }, // active { size: 'm', theme: 'tertiary-muted', active: true, disabled: false, loading: false, hintPlacement: 'top' }, { size: 'm', theme: 'tertiary-invert', active: true, disabled: false, loading: false, hintPlacement: 'top', style: { backgroundColor: '#191B23' } }, + { size: 'm', theme: 'tertiary-info', active: true, disabled: false, loading: false, hintPlacement: 'top' }, // Disabled { size: 'l', theme: 'tertiary-muted', active: false, disabled: true, loading: false, hintPlacement: 'top' }, @@ -464,6 +474,8 @@ test.describe(`${TAG.VISUAL} `, () => { variablesTertiary.forEach((item) => { test(`Verify Base example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@button', '@badge', '@base-components', @@ -474,8 +486,9 @@ test.describe(`${TAG.VISUAL} `, () => { await page.keyboard.press('Tab'); const count = await locators.button(page).count(); - if (!item.loading && !item.loading) { + if (!item.loading) { await test.step('Verify text paddings and spacing based on content', async () => { + let checkedTextOnlyButtons = 0; for (let i = 0; i < count; i++) { const button = locators.button(page).nth(i); const text = button.locator('[data-ui-name="Button.Text"]'); @@ -485,16 +498,18 @@ test.describe(`${TAG.VISUAL} `, () => { const hasAddon = await addon.count(); if (hasText && !hasAddon) { + checkedTextOnlyButtons++; await expect(text).toHaveCSS('margin-left', '12px'); await expect(text).toHaveCSS('margin-right', '12px'); await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); } } + expect(checkedTextOnlyButtons).toBeGreaterThan(0); }); } if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { await page.keyboard.press('Tab'); await locators.button(page).nth(4).hover(); await expect(page).toHaveScreenshot(); @@ -510,9 +525,7 @@ test.describe(`${TAG.VISUAL} `, () => { if (item.loading) { await test.step(`Verify attributes for loading`, async () => { - for (let i = 0; i < count; i++) { - await expect(locators.button(page).nth(i)).toHaveAttribute('aria-busy', 'true'); - } + await expectEachToHaveAttribute(locators.button(page), 'aria-busy', 'true'); await expect(page).toHaveScreenshot(); }); } @@ -524,70 +537,78 @@ test.describe(`${TAG.VISUAL} `, () => { } }); - test(`Verify Neignbor location example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { - tag: [TAG.PRIORITY_HIGH, - '@button', - '@base-components', - '@neighbor-location', - '@flex-box'], - }, async ({ page }) => { - await loadPage(page, 'stories/components/button/tests/examples/button-neighbor-location.tsx', 'en', normalizeThemeProps(item)); + if (isNeighborVariant(item)) { + test(`Verify Neighbor location example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading}`, { + tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, + '@button', + '@base-components', + '@neighbor-location', + '@flex-box'], + }, async ({ page }) => { + await loadPage(page, 'stories/components/button/tests/examples/button-neighbor-location.tsx', 'en', normalizeThemeProps(item)); - await page.keyboard.press('Tab'); - const count = await locators.button(page).count(); - - if (!item.loading) { - await test.step('Verify text paddings and spacing based on content', async () => { - for (let i = 0; i < count; i++) { - const button = locators.button(page).nth(i); - const text = button.locator('[data-ui-name="Button.Text"]'); - const addon = button.locator('[data-ui-name="Button.Addon"]'); - - const hasText = await text.count(); - const hasAddon = await addon.count(); - - if (hasText && !hasAddon) { - await expect(text).toHaveCSS('margin-left', '12px'); - await expect(text).toHaveCSS('margin-right', '12px'); - await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); + await page.keyboard.press('Tab'); + const count = await locators.button(page).count(); + + if (!item.loading) { + await test.step('Verify text paddings and spacing based on content', async () => { + let checkedTextOnlyButtons = 0; + for (let i = 0; i < count; i++) { + const button = locators.button(page).nth(i); + const text = button.locator('[data-ui-name="Button.Text"]'); + const addon = button.locator('[data-ui-name="Button.Addon"]'); + + const hasText = await text.count(); + const hasAddon = await addon.count(); + + if (hasText && !hasAddon) { + checkedTextOnlyButtons++; + await expect(text).toHaveCSS('margin-left', '12px'); + await expect(text).toHaveCSS('margin-right', '12px'); + await expect(text).toHaveCSS('font-size', item.size === 'm' ? '14px' : '16px'); + } } - } - }); - } - - if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { - await page.keyboard.press('Tab'); - await locators.button(page).nth(0).hover(); - await expect(page).toHaveScreenshot(); - }); - } - - if (item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for active button styles`, async () => { - await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(); - }); - } - - if (item.loading) { - await test.step(`Verify attributes for loading`, async () => { - for (let i = 0; i < count; i++) { - await expect(locators.button(page).nth(i)).toHaveAttribute('aria-busy', 'true'); - } - await expect(page).toHaveScreenshot(); - }); - } - - if (item.disabled) { - await test.step(`Verify disabled styles`, async () => { - await expect(page).toHaveScreenshot(); - }); - } - }); + expect(checkedTextOnlyButtons).toBeGreaterThan(0); + }); + } + + if (!item.active && !item.disabled && !item.loading) { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { + await page.keyboard.press('Tab'); + await locators.button(page).nth(0).hover(); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.active && !item.disabled && !item.loading) { + await test.step(`Verify focus styles for active button styles`, async () => { + await page.keyboard.press('Tab'); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.loading) { + await test.step(`Verify attributes for loading`, async () => { + await expectEachToHaveAttribute(locators.button(page), 'aria-busy', 'true'); + await expect(page).toHaveScreenshot(); + }); + } + + if (item.disabled) { + await test.step(`Verify disabled styles`, async () => { + await expect(page).toHaveScreenshot(); + }); + } + }); + } test(`Verify Addon only example size=${item.size} theme=${item.theme} disabled=${item.disabled} active=${item.active} loading=${item.loading} hintPlacement=${item.hintPlacement}`, { tag: [TAG.PRIORITY_HIGH, + '@hint', + TAG.MOUSE, + TAG.KEYBOARD, '@button', '@base-components', '@flex-box', @@ -599,7 +620,7 @@ test.describe(`${TAG.VISUAL} `, () => { await page.waitForTimeout(100); if (!item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for not active button styles`, async () => { + await test.step(`Verify focus and hover styles for not active buttons`, async () => { await page.keyboard.press('Tab'); await expect(locators.button(page).first()).toBeFocused(); await hint.waitFor({ state: 'visible' }); @@ -614,7 +635,7 @@ test.describe(`${TAG.VISUAL} `, () => { } if (item.active && !item.disabled && !item.loading) { - await test.step(`Verify focus styles for active button styles`, async () => { + await test.step(`Verify hover hint for active buttons`, async () => { await locators.button(page).nth(1).hover(); await page.getByText('Hint Button Addon').waitFor({ state: 'visible' }); await page.waitForFunction( @@ -638,12 +659,12 @@ test.describe(`${TAG.VISUAL} `, () => { const ellipsisVariants = [ { ellipsis: { 'ellipsis:cropPosition': 'middle' }, size: 'l', description: 'cropPosition: middle size: l' }, { ellipsis: { 'ellipsis:cropPosition': 'end' }, description: 'cropPosition: end' }, - { ellipsis: { 'ellipsis:cropPosition': 'middle', 'ellipsis:lastRequiredSymbols': 2 }, description: 'cropPosition: middle, , lastRequiredSymbols: 2' }, + { ellipsis: { 'ellipsis:cropPosition': 'middle', 'ellipsis:lastRequiredSymbols': 2 }, description: 'cropPosition: middle, lastRequiredSymbols: 2' }, ]; ellipsisVariants.forEach((variant) => { test(`Verify Ellipsis Hint visual ${variant.description}`, { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@ellipsis', '@button'], + tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, TAG.KEYBOARD, '@ellipsis', '@button'], }, async ({ page }) => { await loadPage(page, 'stories/components/button/tests/examples/button-with-ellipsis.tsx', 'en', variant); await locators.button(page).nth(0).waitFor({ state: 'visible' }); @@ -723,18 +744,18 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const ellipsisVariants = [ { ellipsis: { 'ellipsis:cropPosition': 'middle' }, size: 'l', description: 'cropPosition: middle size: l' }, { ellipsis: { 'ellipsis:cropPosition': 'end' }, description: 'cropPosition: end' }, - { ellipsis: { 'ellipsis:cropPosition': 'middle', 'ellipsis:lastRequiredSymbols': 2 }, description: 'cropPosition: middle, , lastRequiredSymbols: 2' }, + { ellipsis: { 'ellipsis:cropPosition': 'middle', 'ellipsis:lastRequiredSymbols': 2 }, description: 'cropPosition: middle, lastRequiredSymbols: 2' }, ]; ellipsisVariants.forEach((variant) => { test(`Verify Hint Shown on mouse hover when ${variant.description}`, { - tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@ellipsis', '@link', + tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@ellipsis', '@button'], }, async ({ page }) => { await loadPage(page, 'stories/components/button/tests/examples/button-with-ellipsis.tsx', 'en', variant); await page.waitForTimeout(200); - await test.step('Hover link and verify hint appears', async () => { + await test.step('Hover button and verify hint appears', async () => { await locators.button(page).nth(0).hover(); await page.waitForTimeout(200); @@ -743,7 +764,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test(`Verify Ellipsis Hint on focus ${variant.description}`, { + test(`Verify Ellipsis Hint on focus ${variant.description}`, { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@ellipsis', '@button'], }, async ({ page }) => { await loadPage(page, 'stories/components/button/tests/examples/button-with-ellipsis.tsx', 'en', variant); diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-chromium-linux.png new file mode 100644 index 0000000000..e70be9ab7f Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-chromium-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-firefox-linux.png new file mode 100644 index 0000000000..7f489c618f Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-firefox-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-webkit-linux.png new file mode 100644 index 0000000000..4237e698de Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-220fa--active-false-loading-false-hintPlacement-top-1-webkit-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-chromium-linux.png deleted file mode 100644 index 8a5b7aaf2d..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-firefox-linux.png deleted file mode 100644 index e25be18747..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-webkit-linux.png deleted file mode 100644 index 9feab9aeab..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-3838f-ctive-false-loading-false-hintPlacement-right-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-chromium-linux.png deleted file mode 100644 index 600826effc..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-firefox-linux.png deleted file mode 100644 index 6ef349cf69..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-webkit-linux.png deleted file mode 100644 index 02f89928bb..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-56d1c--active-false-loading-true-hintPlacement-left-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-chromium-linux.png deleted file mode 100644 index afc6006aed..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-firefox-linux.png deleted file mode 100644 index b1ec3fe333..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-webkit-linux.png deleted file mode 100644 index e076cb6428..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-57478-ctive-false-loading-false-hintPlacement-right-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-chromium-linux.png deleted file mode 100644 index 53fd9e532b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-firefox-linux.png deleted file mode 100644 index 237d87d49d..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-webkit-linux.png deleted file mode 100644 index f53ef69b0e..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-900c8-active-false-loading-false-hintPlacement-left-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-chromium-linux.png deleted file mode 100644 index c7b4cf5d87..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-firefox-linux.png deleted file mode 100644 index ba9d0aabc9..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-webkit-linux.png deleted file mode 100644 index e8b450ba87..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-9dab7-tive-false-loading-false-hintPlacement-bottom-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-chromium-linux.png deleted file mode 100644 index 58a874b84b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-firefox-linux.png deleted file mode 100644 index f8906b6c80..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-webkit-linux.png deleted file mode 100644 index f3e22f609f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-b9302-ctive-false-loading-true-hintPlacement-bottom-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-chromium-linux.png deleted file mode 100644 index 38850872c2..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-firefox-linux.png deleted file mode 100644 index 4ae69de341..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-webkit-linux.png deleted file mode 100644 index 57fc140b61..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-cbef9-active-false-loading-false-hintPlacement-left-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-chromium-linux.png deleted file mode 100644 index 7661b0c626..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-firefox-linux.png deleted file mode 100644 index eab617ee9d..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-webkit-linux.png deleted file mode 100644 index 002725f2bf..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-l-them-f17b7-tive-false-loading-false-hintPlacement-bottom-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-chromium-linux.png new file mode 100644 index 0000000000..ed0865bf5e Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-chromium-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-firefox-linux.png new file mode 100644 index 0000000000..9150be16e9 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-firefox-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-webkit-linux.png new file mode 100644 index 0000000000..79ec046536 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-054f8--active-false-loading-false-hintPlacement-top-1-webkit-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-chromium-linux.png deleted file mode 100644 index 4ecf9e9e4b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-firefox-linux.png deleted file mode 100644 index 8f57ad8d77..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-webkit-linux.png deleted file mode 100644 index eea03b9ece..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-51d54-active-false-loading-true-hintPlacement-right-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-chromium-linux.png deleted file mode 100644 index 64455707a6..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-firefox-linux.png deleted file mode 100644 index 7d368ff1df..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-webkit-linux.png deleted file mode 100644 index 89faafa09e..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-7bbee--active-false-loading-true-hintPlacement-left-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-chromium-linux.png new file mode 100644 index 0000000000..22cb8d7912 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-chromium-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-firefox-linux.png new file mode 100644 index 0000000000..939208bd24 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-firefox-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-webkit-linux.png new file mode 100644 index 0000000000..30715e0bbb Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Addon-only-example-size-m-them-f05b9-e-active-true-loading-false-hintPlacement-top-1-webkit-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index f9d6abd7f0..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 82ac2f02c8..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index ae89b5a6ff..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-prim-1197c-ess-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index cfeecb0b2f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index c0c721850e..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 690f6e0bcc..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 32f0f45467..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 00bf6f5891..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index b008b2b780..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 9bd04d4869..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 5425fe23a7..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 8cfc446308..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-brand-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 7174746cfd..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index cd13157199..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 6b85279f21..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index aef048f45f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 358118e029..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 1d08413ca1..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-danger-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 30ca2ad2fa..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index de02240420..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 16c7018c14..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index c73d03091a..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index df1bfbed93..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index b7e7c6d66d..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-primary-success-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-chromium-linux.png new file mode 100644 index 0000000000..6125833b01 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-chromium-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-firefox-linux.png new file mode 100644 index 0000000000..2b7f923e82 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-firefox-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-webkit-linux.png new file mode 100644 index 0000000000..b8e4d0fb6d Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-l-theme-tertiary-info-disabled-false-active-false-loading-false-1-webkit-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 097004c8fc..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 58fae4e6e3..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 47c87c40ff..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-brand-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 52ab2417c4..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index cc74164620..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index df9ad0efca..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-primary-danger-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-chromium-linux.png new file mode 100644 index 0000000000..50b4d58c34 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-chromium-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-firefox-linux.png new file mode 100644 index 0000000000..f04be506b5 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-firefox-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-webkit-linux.png new file mode 100644 index 0000000000..3a184ee360 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-false-loading-false-1-webkit-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-chromium-linux.png new file mode 100644 index 0000000000..d039d44c77 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-chromium-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-firefox-linux.png new file mode 100644 index 0000000000..bc6d980760 Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-firefox-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-webkit-linux.png new file mode 100644 index 0000000000..ec24323f5f Binary files /dev/null and b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Base-example-size-m-theme-tertiary-info-disabled-false-active-true-loading-false-1-webkit-linux.png differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-cb03a-ted-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-07c5b-ted-disabled-false-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-cb03a-ted-disabled-false-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-07c5b-ted-disabled-false-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-cb03a-ted-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-07c5b-ted-disabled-false-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-cb03a-ted-disabled-false-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-07c5b-ted-disabled-false-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-cb03a-ted-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-07c5b-ted-disabled-false-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-cb03a-ted-disabled-false-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-07c5b-ted-disabled-false-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c9b87-ted-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-11b2e-ted-disabled-false-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c9b87-ted-disabled-false-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-11b2e-ted-disabled-false-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c9b87-ted-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-11b2e-ted-disabled-false-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c9b87-ted-disabled-false-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-11b2e-ted-disabled-false-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c9b87-ted-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-11b2e-ted-disabled-false-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c9b87-ted-disabled-false-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-11b2e-ted-disabled-false-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-aba4f-info-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2c790-info-disabled-false-active-true-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-aba4f-info-disabled-false-active-true-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2c790-info-disabled-false-active-true-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-aba4f-info-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2c790-info-disabled-false-active-true-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-aba4f-info-disabled-false-active-true-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2c790-info-disabled-false-active-true-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-aba4f-info-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2c790-info-disabled-false-active-true-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-aba4f-info-disabled-false-active-true-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2c790-info-disabled-false-active-true-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8163-info-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2ed90-info-disabled-true-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8163-info-disabled-true-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2ed90-info-disabled-true-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8163-info-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2ed90-info-disabled-true-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8163-info-disabled-true-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2ed90-info-disabled-true-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8163-info-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2ed90-info-disabled-true-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8163-info-disabled-true-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-2ed90-info-disabled-true-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-34697-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-5f175-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-34697-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-5f175-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-34697-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-5f175-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-34697-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-5f175-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-34697-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-5f175-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-34697-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-5f175-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-af4db-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-71569-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-af4db-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-71569-nfo-disabled-false-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-af4db-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-71569-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-af4db-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-71569-nfo-disabled-false-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-af4db-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-71569-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-af4db-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-71569-nfo-disabled-false-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-43321-ted-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-7354e-ted-disabled-false-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-43321-ted-disabled-false-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-7354e-ted-disabled-false-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-43321-ted-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-7354e-ted-disabled-false-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-43321-ted-disabled-false-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-7354e-ted-disabled-false-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-43321-ted-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-7354e-ted-disabled-false-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-43321-ted-disabled-false-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-7354e-ted-disabled-false-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f260b-ted-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-77e30-ted-disabled-false-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f260b-ted-disabled-false-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-77e30-ted-disabled-false-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f260b-ted-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-77e30-ted-disabled-false-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f260b-ted-disabled-false-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-77e30-ted-disabled-false-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f260b-ted-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-77e30-ted-disabled-false-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f260b-ted-disabled-false-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-77e30-ted-disabled-false-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b1dbf-uted-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-87530-uted-disabled-false-active-true-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b1dbf-uted-disabled-false-active-true-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-87530-uted-disabled-false-active-true-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b1dbf-uted-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-87530-uted-disabled-false-active-true-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b1dbf-uted-disabled-false-active-true-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-87530-uted-disabled-false-active-true-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b1dbf-uted-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-87530-uted-disabled-false-active-true-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b1dbf-uted-disabled-false-active-true-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-87530-uted-disabled-false-active-true-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9ab6b-uted-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-a0ced-uted-disabled-true-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9ab6b-uted-disabled-true-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-a0ced-uted-disabled-true-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9ab6b-uted-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-a0ced-uted-disabled-true-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9ab6b-uted-disabled-true-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-a0ced-uted-disabled-true-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9ab6b-uted-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-a0ced-uted-disabled-true-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9ab6b-uted-disabled-true-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-a0ced-uted-disabled-true-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d1057-uted-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-b95df-uted-disabled-false-active-true-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d1057-uted-disabled-false-active-true-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-b95df-uted-disabled-false-active-true-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d1057-uted-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-b95df-uted-disabled-false-active-true-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d1057-uted-disabled-false-active-true-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-b95df-uted-disabled-false-active-true-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d1057-uted-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-b95df-uted-disabled-false-active-true-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d1057-uted-disabled-false-active-true-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-b95df-uted-disabled-false-active-true-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-be292-uted-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-f33fc-uted-disabled-true-active-false-loading-false-1-chromium-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-be292-uted-disabled-true-active-false-loading-false-1-chromium-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-f33fc-uted-disabled-true-active-false-loading-false-1-chromium-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-be292-uted-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-f33fc-uted-disabled-true-active-false-loading-false-1-firefox-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-be292-uted-disabled-true-active-false-loading-false-1-firefox-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-f33fc-uted-disabled-true-active-false-loading-false-1-firefox-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-be292-uted-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-f33fc-uted-disabled-true-active-false-loading-false-1-webkit-linux.png similarity index 100% rename from semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-be292-uted-disabled-true-active-false-loading-false-1-webkit-linux.png rename to semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neighbor-location-example-size-f33fc-uted-disabled-true-active-false-loading-false-1-webkit-linux.png diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 70db9f5441..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 138f92130e..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index c1da82fce2..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-05dc6-cess-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index d4e59360e3..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index a643907fd7..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 0f9ed070dd..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07aa9-and-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 46751c4d65..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 8e79bc83bc..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index e069653f3a..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-07dad-vert-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 2531220863..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 18063c22b8..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index cd8b8d5ec0..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0aa81-rand-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 71e56f2616..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index d06e12ad20..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 0778e929ac..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-0dca3-info-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 4e6e0fd63f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 251307ddc2..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 349a06fcaf..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-22afc-vert-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index f0d032ae50..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 41f0f21e54..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 987bbea400..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-277fc-vert-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 8c772e7795..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index a3d15880c3..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index a97bae4b13..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-432ce-ess-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-chromium-linux.png deleted file mode 100644 index 6de68179bb..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-firefox-linux.png deleted file mode 100644 index b3e77d5aa0..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-webkit-linux.png deleted file mode 100644 index 6f1d7fc41d..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-483b9-rand-disabled-false-active-true-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index d7eb132e78..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 1e89e06df2..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 27cc7a6204..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-508f4-rand-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index c4a9829648..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index bff40ef700..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index ce78a93af7..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-5e4e1-rand-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 2a7f7006a7..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index e9415ad4f1..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index cc7427d1fe..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-78a24-vert-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index b4fc77a8d3..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index f00e34140a..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 60481ef9ab..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7d1ec-ert-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index c5ac2efcc9..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 03522bf8cf..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 36a24bc653..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7dd96-ert-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 37c13f7ce6..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index d5f3050d12..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index c0baadb947..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-7e085-ger-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-chromium-linux.png deleted file mode 100644 index 6e157993a4..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-firefox-linux.png deleted file mode 100644 index e091ee20ed..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-webkit-linux.png deleted file mode 100644 index ac74bd6d98..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9701b-vert-disabled-false-active-true-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 610e8bb685..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 6af33b5340..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 40da244154..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-98d41-ger-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index f7cffa5342..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 8bea67b0cc..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 7d45c4378f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-9e1d1-vert-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-chromium-linux.png deleted file mode 100644 index 35359c1ef8..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-firefox-linux.png deleted file mode 100644 index 6c173afd58..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-webkit-linux.png deleted file mode 100644 index 040845380b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2984-vert-disabled-false-active-true-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 540ffc8763..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index cc528d5b52..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 05db5b7016..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-a2ddd-and-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index c6832d73bc..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index a84e7612ad..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 5d3bbe2b2c..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b291c-ert-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 7836e52c6d..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 643d474f4b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 431759e70c..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b79c1-ert-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-chromium-linux.png deleted file mode 100644 index 6e157993a4..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-firefox-linux.png deleted file mode 100644 index e091ee20ed..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-webkit-linux.png deleted file mode 100644 index ac74bd6d98..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-b7a57-vert-disabled-false-active-true-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 7ba3f97b45..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index aaa76d4742..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 07e7f45286..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c0b30-ert-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index b549084a45..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 5c8e10b68a..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index fe887c2429..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c4150-cess-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-chromium-linux.png deleted file mode 100644 index d62149f896..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-firefox-linux.png deleted file mode 100644 index cc6ea5cfc4..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-webkit-linux.png deleted file mode 100644 index 53e95cb83c..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-c6200-cess-disabled-false-active-true-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 01fd89960b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index a11d8a5bba..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 80e8aa4901..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-d042a-nger-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 858d9db18b..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index 0a803523e3..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 64a3ae89ae..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e6256-uted-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 5387f7345e..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index d9531e55c0..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 59ecb6ec1f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e70ee-ess-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-chromium-linux.png deleted file mode 100644 index d025c6452e..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-firefox-linux.png deleted file mode 100644 index b4bb4003d5..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-webkit-linux.png deleted file mode 100644 index 9189d4ad38..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-e8b39-nger-disabled-false-active-true-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index b9766e6c3f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index ad177edf28..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 6c54c77814..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f2334-ert-disabled-false-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index e6e2fd5655..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index eb0e0037b8..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 9e0bf06c9f..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f30db-vert-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-chromium-linux.png deleted file mode 100644 index 761a8f40ad..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-firefox-linux.png deleted file mode 100644 index 7a25485a67..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-webkit-linux.png deleted file mode 100644 index 088eceb343..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-f692a-nger-disabled-true-active-false-loading-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-chromium-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-chromium-linux.png deleted file mode 100644 index 8c412ebc92..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-firefox-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-firefox-linux.png deleted file mode 100644 index cc4439d952..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-webkit-linux.png b/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-webkit-linux.png deleted file mode 100644 index 083defa3ea..0000000000 Binary files a/semcore/button/__tests__/button.browser-test.tsx-snapshots/-visual-Verify-Neignbor-location-example-size-fd4b3-uted-disabled-false-active-false-loading-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/card/__tests__/card.browser-test.tsx b/semcore/card/__tests__/card.browser-test.tsx index ce46d3ee1f..d679b5d015 100644 --- a/semcore/card/__tests__/card.browser-test.tsx +++ b/semcore/card/__tests__/card.browser-test.tsx @@ -1,4 +1,3 @@ -import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand'; import { expect, test } from '@semcore/testing-utils/playwright'; import type { Page } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; @@ -21,6 +20,13 @@ export const locators = { }; +const expectCardScreenshot = async (page: Page, testId: string) => { + const clip = (await page.locator(`[data-testid="${testId}"]`).first().boundingBox())!; + await expect(page).toHaveScreenshot({ + clip: { x: clip.x - 4, y: clip.y - 4, width: clip.width + 8, height: clip.height + 8 }, + }); +}; + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -28,6 +34,8 @@ Visual states, hover and focus styles, paddings, margins, and snapshots. test.describe(`${TAG.VISUAL} `, () => { test('Verify Base example margins and paddings', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@card', '@button', '@base-components', @@ -99,6 +107,7 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify complex card styles', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@card', '@button', '@base-trigger', @@ -120,7 +129,7 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - test('Verify card with different card componens styles', { + test('Verify card with different card components styles', { tag: [TAG.PRIORITY_HIGH, '@card', '@button', @@ -133,127 +142,65 @@ test.describe(`${TAG.VISUAL} `, () => { await page.setViewportSize({ width: 1200, height: 1200 }); await test.step('Verify card only component', async () => { - const card = page.locator('[data-testid="card-only"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await expectCardScreenshot(page, 'card-only'); }); await test.step('Verify card description component', async () => { - const card = page.locator('[data-testid="card-description"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await expectCardScreenshot(page, 'card-description'); }); await test.step('Verify card title hintAfter component', async () => { - const card = page.locator('[data-testid="card-title"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await expectCardScreenshot(page, 'card-title'); }); - await test.step('Verify card title description content hintAfter component', async () => { - const card = page.locator('[data-testid="card-title-description"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await test.step('Verify card title description content hintAfter component', async () => { + await expectCardScreenshot(page, 'card-title-description'); }); - await test.step('Verify card title description content innterHint component', async () => { - const card = page.locator('[data-testid="card-title-description-innterHint"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await test.step('Verify card title description content innterHint component', async () => { + await expectCardScreenshot(page, 'card-title-description-innterHint'); }); - await test.step('Verify card title description content hintAfter innterHint component', async () => { - const card = page.locator('[data-testid="card-title-content-innerHint"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await test.step('Verify card title description content hintAfter innterHint component', async () => { + await expectCardScreenshot(page, 'card-title-content-innerHint'); }); await test.step('Verify card title description content innterHint tag component', async () => { - const card = page.locator('[data-testid="card-title-description-content-innerHint-tag-text-styles"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await expectCardScreenshot(page, 'card-title-description-content-innerHint-tag-text-styles'); }); await test.step('Verify card header title description body component', async () => { - const card = page.locator('[data-testid="card-header-title-desription-body"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await expectCardScreenshot(page, 'card-header-title-desription-body'); }); - await test.step('Verify card heder pills body component', async () => { - const card = page.locator('[data-testid="card-header-pills-body"]'); - const screenshotsClip = (await card.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip }); + await test.step('Verify card header pills body component', async () => { + await expectCardScreenshot(page, 'card-header-pills-body'); }); }); +}); - test('Verify description tooltip trigger has not unnecessary margins', { +/* ===================================================== +@functional +Keyboard and mouse interactions - no snapshots here. +We verify states, visibility, and attributes. +===================================================== */ +test.describe(`${TAG.FUNCTIONAL}`, () => { + test('Verify description tooltip trigger has no extra margins', { tag: [TAG.PRIORITY_HIGH, '@card', '@button', '@tooltip', '@description-tooltip'], }, async ({ page }) => { - await loadPage(page, 'stories/components/card/tests/examples/card_with_description_tooltip_in_body', 'en'); + await loadPage(page, 'stories/components/card/tests/examples/card_with_description_tooltip_in_body.tsx', 'en'); - const descriptionTooltipTrigger = page.locator('[data-ui-name="DescriptionTooltip.Trigger"]'); - const descriptionTooltipTriggerCount = await descriptionTooltipTrigger.count(); - for (let i = 0; i < descriptionTooltipTriggerCount; i++) - await expect(descriptionTooltipTrigger.nth(i)).toHaveCSS('margin', '0px'); + const triggers = page.locator('[data-ui-name="DescriptionTooltip.Trigger"]'); + await expect(triggers).not.toHaveCount(0); + for (const trigger of await triggers.all()) { + await expect(trigger).toHaveCSS('margin', '0px'); + } }); -}); -/* ===================================================== -@functional -Keyboard and mouse interactions - no snapshots here. -We verify states, visibility, and attributes. -===================================================== */ -test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify base example keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, @@ -263,10 +210,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { '@flex-box', '@typography'], }, async ({ page }) => { - const standPath = 'stories/components/card/docs/examples/basic_example.tsx'; - const htmlContent = await e2eStandToHtml(standPath, 'en'); - - await page.setContent(htmlContent); + await loadPage(page, 'stories/components/card/docs/examples/basic_example.tsx', 'en'); await test.step('Verify tooltip not shown when trigger is focused', async () => { await page.keyboard.press('Tab'); diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-1-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-1-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-1-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-1-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-1-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-1-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-1-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-1-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-1-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-1-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-1-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-1-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-2-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-2-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-2-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-2-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-2-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-2-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-2-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-2-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-2-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-2-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-2-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-2-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-3-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-3-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-3-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-3-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-3-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-3-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-3-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-3-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-3-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-3-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-3-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-3-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-4-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-4-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-4-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-4-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-4-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-4-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-4-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-4-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-4-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-4-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-4-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-4-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-5-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-5-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-5-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-5-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-5-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-5-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-5-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-5-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-5-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-5-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-5-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-5-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-6-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-6-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-6-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-6-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-6-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-6-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-6-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-6-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-6-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-6-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-6-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-6-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-7-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-7-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-7-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-7-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-7-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-7-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-7-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-7-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-7-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-7-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-7-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-7-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-8-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-8-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-8-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-8-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-8-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-8-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-8-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-8-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-8-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-8-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-8-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-8-webkit-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-9-chromium-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-9-chromium-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-9-chromium-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-9-chromium-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-9-firefox-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-9-firefox-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-9-firefox-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-9-firefox-linux.png diff --git a/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-9-webkit-linux.png b/semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-9-webkit-linux.png similarity index 100% rename from semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-componens-styles-9-webkit-linux.png rename to semcore/card/__tests__/card.browser-test.tsx-snapshots/-visual-Verify-card-with-different-card-components-styles-9-webkit-linux.png diff --git a/semcore/carousel/__tests__/carousel.axe-test.ts b/semcore/carousel/__tests__/carousel.axe-test.ts index 14e7bcfd55..e8cdc59ab7 100644 --- a/semcore/carousel/__tests__/carousel.axe-test.ts +++ b/semcore/carousel/__tests__/carousel.axe-test.ts @@ -2,16 +2,16 @@ import { expect, test, getAccessibilityViolations } from '@semcore/testing-utils import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -test.describe(`@carousel ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@carousel ${TAG.ACCESSIBILITY}`, () => { test('Default indicators', async ({ page }) => { await loadPage(page, 'stories/components/carousel/docs/examples/carousel_with_default_indicators.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } - { + }); + await test.step('Check zoom mode opened by Enter', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); @@ -19,7 +19,7 @@ test.describe(`@carousel ${TAG.ACCESSIBILITY}`, () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Indicators only', async ({ page }) => { await loadPage(page, 'stories/components/carousel/docs/examples/carousel_with_indicators_only.tsx', 'en'); @@ -31,12 +31,12 @@ test.describe(`@carousel ${TAG.ACCESSIBILITY}`, () => { test('Preview indicators', async ({ page }) => { await loadPage(page, 'stories/components/carousel/docs/examples/carousel_with_preview_indicators.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } - { + }); + await test.step('Check zoom mode opened by Enter', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); @@ -44,7 +44,7 @@ test.describe(`@carousel ${TAG.ACCESSIBILITY}`, () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Without modal', async ({ page }) => { await loadPage(page, 'stories/components/carousel/docs/examples/carousel_without_modal_window.tsx', 'en'); diff --git a/semcore/carousel/__tests__/carousel.browser-test.tsx b/semcore/carousel/__tests__/carousel.browser-test.tsx index d6325cf2fb..522256df4d 100644 --- a/semcore/carousel/__tests__/carousel.browser-test.tsx +++ b/semcore/carousel/__tests__/carousel.browser-test.tsx @@ -20,7 +20,8 @@ export const locators = { tab: (page: Page, index?: number) => { const base = page.getByRole('tab'); return typeof index === 'number' ? base.nth(index) : base; - }, region: (page: Page, index?: number) => { + }, + region: (page: Page, index?: number) => { const base = page.getByRole('region'); return typeof index === 'number' ? base.nth(index) : base; }, @@ -28,8 +29,7 @@ export const locators = { const base = page.getByRole('tablist'); return typeof index === 'number' ? base.nth(index) : base; }, - img: (page: Page, index?: number) => - page.locator('div[role="tabpanel"] img[role="button"]'), + img: (page: Page) => page.locator('div[role="tabpanel"] img[role="button"]'), }; /* ===================================================== @@ -40,12 +40,14 @@ test.describe(`${TAG.VISUAL} `, () => { const indicators = [ { indicators: 'default', zoomWidth: 300, defaultIndex: undefined, index: undefined }, { indicators: 'hide', zoomWidth: 300, defaultIndex: undefined, index: 1 }, - { indicators: 'preview', zoomWidth: 500, defaultIndex: 2, undefined: undefined }, + { indicators: 'preview', zoomWidth: 500, defaultIndex: 2, index: undefined }, ]; indicators.forEach((item) => { test(`Verify Carousel with indicators= ${item.indicators}, zoomiWidth= ${item.zoomWidth} and defaultIndex=${item.defaultIndex} or index = =${item.index}`, { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, + TAG.KEYBOARD, '@carousel', '@base-components', '@flex-box'], @@ -71,10 +73,8 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - await test.step('Verify Carousel area focus', async () => { + await test.step('Verify Carousel area focus (Prev hint hidden, hovered Next hint stays)', async () => { await page.keyboard.press('Tab'); - // Prev button loses focus and hides its Hint, the hovered Next slide Hint stays. - // Wait for that settled state, otherwise the fading out Hint leaks into the snapshot. await expect(page.locator('[data-ui-name="Hint"]')).toHaveCount(1); await page.waitForFunction(() => { const els = document.querySelectorAll('[data-ui-name="Hint"]'); @@ -83,7 +83,7 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - if (await locators.tablist(page).isVisible()) { + if (item.indicators !== 'hide') { await test.step('Verify Tabs hover and focus styles', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); @@ -122,11 +122,7 @@ test.describe(`${TAG.VISUAL} `, () => { await page.keyboard.press('Tab'); const tab = page.getByRole('tab'); - if (await locators.tablist(page).count() === 2) { - await tab.nth(5).hover(); - } else { - await tab.nth(2).hover(); - } + await tab.nth(item.indicators === 'hide' ? 2 : 5).hover(); await expect(page).toHaveScreenshot(); }); @@ -141,6 +137,7 @@ test.describe(`${TAG.VISUAL} `, () => { bounded.forEach((item) => { test(`Verify Carousel prev and next buttons when indicators= ${item.indicators}, bounded= ${item.bounded}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@carousel', '@base-components', '@flex-box'], @@ -153,7 +150,7 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - await test.step('VerifyPrev and Next buttons when one is disabled in zoom mode', async () => { + await test.step('Verify Prev and Next buttons when one is disabled in zoom mode', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await page.keyboard.press('Space'); @@ -381,7 +378,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.tabpanel(page, 5)).toHaveAttribute('tabindex', '0'); }); - await test.step('Verify indicators in zoom mode focused by Tab and switch tabs by Arrows', async () => { + await test.step('Verify Zoom mode closed by Enter on Close button', async () => { await page.keyboard.press('Shift+Tab'); await page.keyboard.press('Shift+Tab'); await page.keyboard.press('Enter'); @@ -390,7 +387,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify mouse interactions with Carousel with indicators and zoom', { + test('Verify mouse interactions with Carousel with indicators and zoom', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@carousel', @@ -459,7 +456,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.modal(page)).not.toBeVisible(); }); - await test.step('Verify tabs switch by click on Prev button im zoom mode', async () => { + await test.step('Verify tabs switch by click on Prev button in zoom mode', async () => { await locators.tabpanel(page, 2).click(); await locators.modal(page).waitFor({ state: 'visible' }); @@ -475,7 +472,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.tabpanel(page, 5)).toHaveAttribute('tabindex', '-1'); }); - await test.step('Verify tabs switch by click on Next button im zoom mode', async () => { + await test.step('Verify tabs switch by click on Next button in zoom mode', async () => { await locators.button(page, 'Next slide').nth(1).click(); await expect(locators.tabpanel(page, 3)).toHaveAttribute('aria-current', 'false'); @@ -526,16 +523,15 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Verify Modal not opened by mouse click', async () => { - const box = await locators.tabpanel(page, 0).boundingBox(); - if (box) { - await page.mouse.click(box.x + 10, box.y + 10); - } + const box = (await locators.tabpanel(page, 0).boundingBox())!; + await page.mouse.click(box.x + 10, box.y + 10); await expect(locators.modal(page)).not.toBeVisible(); }); }); test('Verify keyboard interactions when Carousel with indicators only', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@carousel', '@base-components', @@ -610,13 +606,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const indicator = locators.tab(page, 0); - // Wait for the transition to settle instead. await expect(indicator).toHaveCSS('width', '150px'); await expect(indicator).toHaveCSS('height', '150px'); const box = await indicator.boundingBox(); - // the size overridden expect(box?.width).toBeCloseTo(150, 0); expect(box?.height).toBeCloseTo(150, 0); }); diff --git a/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-defa-20a10--defaultIndex-undefined-or-index-undefined-1-chromium-linux.png b/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-defa-20a10--defaultIndex-undefined-or-index-undefined-1-chromium-linux.png index 95b2d3025b..ca72b0d991 100644 Binary files a/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-defa-20a10--defaultIndex-undefined-or-index-undefined-1-chromium-linux.png and b/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-defa-20a10--defaultIndex-undefined-or-index-undefined-1-chromium-linux.png differ diff --git a/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-hide-6328e--300-and-defaultIndex-undefined-or-index-1-1-chromium-linux.png b/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-hide-6328e--300-and-defaultIndex-undefined-or-index-1-1-chromium-linux.png index 4aa3b001b8..02acc94f37 100644 Binary files a/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-hide-6328e--300-and-defaultIndex-undefined-or-index-1-1-chromium-linux.png and b/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-hide-6328e--300-and-defaultIndex-undefined-or-index-1-1-chromium-linux.png differ diff --git a/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-prev-8b027--500-and-defaultIndex-2-or-index-undefined-6-chromium-linux.png b/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-prev-8b027--500-and-defaultIndex-2-or-index-undefined-6-chromium-linux.png index 78edf7f62d..40b4a9fd18 100644 Binary files a/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-prev-8b027--500-and-defaultIndex-2-or-index-undefined-6-chromium-linux.png and b/semcore/carousel/__tests__/carousel.browser-test.tsx-snapshots/-visual-Verify-Carousel-with-indicators-prev-8b027--500-and-defaultIndex-2-or-index-undefined-6-chromium-linux.png differ diff --git a/semcore/carousel/__tests__/index.test.tsx b/semcore/carousel/__tests__/index.test.tsx index 890335bb61..88f73d6170 100644 --- a/semcore/carousel/__tests__/index.test.tsx +++ b/semcore/carousel/__tests__/index.test.tsx @@ -124,7 +124,7 @@ describe('Carousel.Indicators', () => { expect(spy).toHaveBeenCalledTimes(1); }); - test('Veerify right change index with Prev button', async () => { + test('Verify right change index with Prev button', async () => { const spy = vi.fn(); const { getByLabelText, getByRole } = render( diff --git a/semcore/checkbox/__tests__/checkbox.axe-test.tsx b/semcore/checkbox/__tests__/checkbox.axe-test.tsx index 4366cdd830..dbd789114c 100644 --- a/semcore/checkbox/__tests__/checkbox.axe-test.tsx +++ b/semcore/checkbox/__tests__/checkbox.axe-test.tsx @@ -2,74 +2,74 @@ import { expect, test, getAccessibilityViolations } from '@semcore/testing-utils import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -test.describe(`@checkbox ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@checkbox ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/basic_usage.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - { + await test.step('Check after interaction', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Space'); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Partial selection', async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/partial_selection.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - { + await test.step('Check after interaction', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await page.keyboard.press('Space'); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('With other components', async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/checkbox_with_other_components.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Additional props for input', async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/additional_props_for_input.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Aria label props drilling', async ({ page }) => { await loadPage(page, 'stories/components/checkbox/advanced/examples/aria_label_props_drilling.tsx', 'en'); - { + await test.step('Check initial state', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - { + await test.step('Check after interaction', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Space'); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); }); diff --git a/semcore/checkbox/__tests__/checkbox.browser-test.tsx b/semcore/checkbox/__tests__/checkbox.browser-test.tsx index 7af0730cc3..92e283b3fd 100644 --- a/semcore/checkbox/__tests__/checkbox.browser-test.tsx +++ b/semcore/checkbox/__tests__/checkbox.browser-test.tsx @@ -56,48 +56,23 @@ test.describe(`${TAG.VISUAL}`, () => { variables.forEach((item) => { test(`Verify size=${item.size} state=${item.state} theme=${item.theme} color=${item.color} disabled=${item.disabled} checked=${item.checked} indeterminate=${item.indeterminate}`, { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, '@checkbox', '@base-components', '@flex-box', '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/checkbox/tests/examples/states.tsx', 'en', item); - // verify L checkbox styles - if (item.size == 'l') { - await expect(locators.valueCheckmark(page)).toHaveCSS( - 'height', - '20px', - ); - await expect(locators.valueCheckmark(page)).toHaveCSS( - 'width', - '20px', - ); - await expect(locators.checkboxText(page)).toHaveCSS( - 'margin-left', - '8px', - ); - await expect(locators.checkboxText(page)).toHaveCSS( - 'font-size', - '16px', - ); - } else { // verify M checkbox styles - await expect(locators.valueCheckmark(page)).toHaveCSS( - 'height', - '16px', - ); - await expect(locators.valueCheckmark(page)).toHaveCSS( - 'width', - '16px', - ); - await expect(locators.checkboxText(page)).toHaveCSS( - 'margin-left', - '6px', - ); - await expect(locators.checkboxText(page)).toHaveCSS( - 'font-size', - '14px', - ); - } - await page.keyboard.press('Tab'); - await expect(page.locator('[data-test-id="checkbox"]')).toHaveScreenshot(); + await test.step(`Verify size ${item.size} checkmark and label styles`, async () => { + const isL = item.size === 'l'; + await expect(locators.valueCheckmark(page)).toHaveCSS('height', isL ? '20px' : '16px'); + await expect(locators.valueCheckmark(page)).toHaveCSS('width', isL ? '20px' : '16px'); + await expect(locators.checkboxText(page)).toHaveCSS('margin-left', isL ? '8px' : '6px'); + await expect(locators.checkboxText(page)).toHaveCSS('font-size', isL ? '16px' : '14px'); + }); + + await test.step('Verify focused state snapshot', async () => { + await page.keyboard.press('Tab'); + await expect(page.locator('[data-test-id="checkbox"]')).toHaveScreenshot(); + }); }); }); @@ -168,26 +143,13 @@ test.describe(`${TAG.VISUAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/checkbox_with_other_components.tsx', 'en'); - await test.step('Verify Focusable element focused after checkbox', async () => { + await test.step('Navigate through checkboxes and focusable elements and snapshot the focus on the element after 2nd checkbox', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); - }); - - await test.step('Verify interactions with Focusable element not check checkbox', async () => { await page.keyboard.press('Space'); - await page.keyboard.press('Escape'); - }); - - await test.step('Verify focus on 2nd checkbox by tab', async () => { await page.keyboard.press('Tab'); - }); - - await test.step('Verify focus on prev by shift+tab', async () => { await page.keyboard.press('Shift+Tab'); - }); - - await test.step('Verify focus on element after 2nd checkbox', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await expect(page).toHaveScreenshot(); @@ -200,7 +162,7 @@ test.describe(`${TAG.VISUAL}`, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Checkbox group mouse interactions', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, @@ -208,14 +170,14 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/basic_usage.tsx', 'en'); - await test.step('Verify checkbox checked when clicking on label ', async () => { + await test.step('Verify checkbox checked when clicking on label', async () => { await locators.checkboxText(page).first().click(); await expect(locators.checkbox(page).first()).toHaveClass(/checked/); - await expect(locators.checkbox(page).first()).toHaveClass(/checked/); + await expect(locators.checkboxValue(page).first()).toHaveClass(/checked/); await expect(locators.valueCheckmark(page).first()).toHaveClass(/checked/); }); - await test.step('Verify checkbox checked when clicking on checkbox ', async () => { + await test.step('Verify checkbox checked when clicking on checkbox', async () => { await locators.valueCheckmark(page).nth(1).click(); await expect(locators.checkbox(page).first()).toHaveClass(/checked/); await expect(locators.checkboxValue(page).first()).toHaveClass(/checked/); @@ -225,7 +187,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.valueCheckmark(page).nth(1)).toHaveClass(/checked/); }); - await test.step('Verify checkbox unchecked when clicking on label ', async () => { + await test.step('Verify checkbox unchecked when clicking on label', async () => { await locators.checkboxText(page).first().click(); await expect(locators.checkbox(page).first()).not.toHaveClass(/checked/); await expect(locators.checkboxValue(page).first()).not.toHaveClass(/checked/); @@ -235,7 +197,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.valueCheckmark(page).nth(1)).toHaveClass(/checked/); }); - await test.step('Verify checkbox unchecked when clicking on checkbox ', async () => { + await test.step('Verify checkbox unchecked when clicking on checkbox', async () => { await locators.valueCheckmark(page).nth(1).click(); await expect(locators.checkbox(page).first()).not.toHaveClass(/checked/); await expect(locators.checkboxValue(page).first()).not.toHaveClass(/checked/); @@ -253,7 +215,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/checkbox/docs/examples/basic_usage.tsx', 'en'); - await test.step('Verify focus on 1st checkbox by tab ', async () => { + await test.step('Verify focus on 1st checkbox by tab', async () => { await page.keyboard.press('Tab'); await expect(locators.checkboxValue(page).first()).toBeFocused(); }); @@ -273,12 +235,12 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.checkboxValue(page).first()).toBeFocused(); }); - await test.step('Verify focus on 2nd checkbox by tab ', async () => { + await test.step('Verify focus on 2nd checkbox by tab', async () => { await page.keyboard.press('Tab'); await expect(locators.checkboxValue(page).nth(1)).toBeFocused(); }); - await test.step('Verify checkbox checked when pressing Space ', async () => { + await test.step('Verify checkbox checked when pressing Space', async () => { await page.keyboard.press('Space'); await expect(locators.checkbox(page).nth(1)).toHaveClass(/checked/); await expect(locators.checkboxValue(page).nth(1)).toHaveClass(/checked/); @@ -310,6 +272,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await test.step('Verify all checkboxes checked when clicking on group label', async () => { await locators.checkboxText(page).first().click(); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).toHaveClass(/checked/); @@ -318,9 +281,10 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { } }); - await test.step('Verify all checkboxes unchecked when clicking on group label', async () => { + await test.step('Verify all checkboxes unchecked when clicking on group checkbox', async () => { await locators.valueCheckmark(page).first().click(); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).not.toHaveClass(/checked/); @@ -341,9 +305,10 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.valueCheckmark(page).nth(2)).toHaveClass(/checked/); }); - await test.step('Verify all checkboxes checked when clicking indeterminate on group label', async () => { + await test.step('Verify all checkboxes checked when clicking on indeterminate group checkbox', async () => { await locators.valueCheckmark(page).first().click(); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).toHaveClass(/checked/); @@ -376,6 +341,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.keyboard.press('Tab'); await page.keyboard.press('Space'); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).toHaveClass(/checked/); @@ -386,6 +352,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await test.step('Verify all checkboxes unchecked when pressing group', async () => { await page.keyboard.press('Space'); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).not.toHaveClass(/checked/); @@ -408,11 +375,12 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.valueCheckmark(page).nth(2)).toHaveClass(/checked/); }); - await test.step('Verify all checkboxes checked when clicking indeterminate on group label', async () => { + await test.step('Verify all checkboxes checked when pressing Space on indeterminate group checkbox', async () => { await page.keyboard.press('Shift+Tab'); await page.keyboard.press('Shift+Tab'); await page.keyboard.press('Space'); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).toHaveClass(/checked/); @@ -435,7 +403,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }); }); - test('Verify Checkbox with onther elements keyboard interactions', { + test('Verify Checkbox with other elements keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@checkbox', @@ -486,7 +454,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }); }); - test('Verify Checkbox with onther elements mouse interactions', { + test('Verify Checkbox with other elements mouse interactions', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@checkbox', @@ -502,6 +470,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await test.step('Verify clicking on Focusable element not activate checkbox', async () => { await descriptionTooltipTrigger.click(); + await expect(locators.checkboxText(page)).not.toHaveCount(0); const count1 = await locators.checkboxText(page).count(); for (let i = 0; i < count1; i++) { await expect(locators.checkbox(page).nth(i)).not.toHaveClass(/checked/); diff --git a/semcore/color-picker/__tests__/color-picker.axe-test.tsx b/semcore/color-picker/__tests__/color-picker.axe-test.tsx index fe3de73c36..e1f73c356a 100644 --- a/semcore/color-picker/__tests__/color-picker.axe-test.tsx +++ b/semcore/color-picker/__tests__/color-picker.axe-test.tsx @@ -4,47 +4,50 @@ import { TAG } from '@semcore/testing-utils/shared/tags'; test.describe(`@color-picker ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { - await loadPage(page, 'stories/components/color-picker/docs/examples/basic_example.tsx', 'en'); // check volor picker trigger - { + await loadPage(page, 'stories/components/color-picker/docs/examples/basic_example.tsx', 'en'); + + await test.step('Check color picker trigger', async () => { const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); - // check expamded popper - { + await test.step('Check expanded popper', async () => { await page.locator('[data-ui-name="ColorPicker.Trigger"]').click(); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); test('Custom trigger without input on popper', async ({ page }) => { await loadPage(page, 'stories/components/color-picker/docs/examples/custom_trigger.tsx', 'en'); - { + + await test.step('Check custom trigger', async () => { const violations = await getAccessibilityViolations({ page }); + expect(violations).toEqual([]); - } + }); - { + await test.step('Check expanded popper', async () => { await page.locator('[data-ui-name="ColorPicker.Trigger"]').click(); const violations = await getAccessibilityViolations({ page }); expect(violations).toEqual([]); - } + }); }); - test('Input validation', async ({ page }) => { - await loadPage(page, 'stories/components/color-picker/tests/examples/input_validation.tsx', 'en'); + test('Palette manager', async ({ page }) => { + await loadPage(page, 'stories/components/color-picker/docs/examples/palettemanager.tsx', 'en'); - await page.locator('[data-ui-name="ColorPicker.Trigger"]').click(); - const input = page.locator('input[data-ui-name="PaletteManager.InputColor"]'); - await input.fill('fffffff'); - const violations = await getAccessibilityViolations({ page }); + await test.step('Check expanded popper with palette manager', async () => { + await page.locator('[data-ui-name="ColorPicker.Trigger"]').click(); - expect(violations).toEqual([]); + const violations = await getAccessibilityViolations({ page }); + + expect(violations).toEqual([]); + }); }); }); diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx b/semcore/color-picker/__tests__/color-picker.browser-test.tsx index a45b64a1ac..721c799fd0 100644 --- a/semcore/color-picker/__tests__/color-picker.browser-test.tsx +++ b/semcore/color-picker/__tests__/color-picker.browser-test.tsx @@ -56,6 +56,7 @@ Visual states, hover and focus styles, paddings, margins, and snapshots. test.describe(`${TAG.VISUAL} `, () => { test('Verify Keyboard navigation when No palette', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@color-picker', '@base-components', @@ -84,6 +85,7 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify input validation in palette manager', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@color-picker', '@base-components', '@flex-box', @@ -107,6 +109,7 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify base styles', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@color-picker', '@base-components', '@flex-box', @@ -162,6 +165,7 @@ test.describe(`${TAG.VISUAL} `, () => { }); await test.step('Verify color items styles', async () => { + await expect(locators.color(page)).not.toHaveCount(0); const count = await locators.color(page).count(); for (let i = 0; i < count; i++) { const item = locators.color(page, i); @@ -185,8 +189,8 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(clearIcon).toHaveAttribute('height', '16'); }); - if (browserName === 'firefox') return; // hover doesn't work well in playwright browsers - await test.step('Verify palette manager color styles', async () => { + const hoverStep = browserName === 'firefox' ? test.step.skip : test.step; + await hoverStep('Verify Add color button hover/active and palette item sizes (Firefox drops synthetic hover)', async () => { const addButton = page.getByRole('button').first(); const hoverBackgroundColor = await getCssVarColor( '--intergalactic-control-tertiary-neutral-hover', @@ -241,6 +245,7 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify default item states for active and background colors', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@color-picker', '@base-components', '@flex-box'], @@ -253,28 +258,29 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - await test.step('Verify hover on No background color ', async () => { + await test.step('Verify hover on No background color', async () => { const items = locators.dialog(page, 0).getByRole('option'); await items.first().hover(); await page.getByText('Clear color').waitFor({ state: 'visible' }); await expect(page).toHaveScreenshot(); }); - await test.step('Verify hover on text color ', async () => { + await test.step('Verify hover on text color', async () => { const items = locators.dialog(page, 1).getByRole('option'); await items.nth(1).hover(); await page.getByText('--blue-400').waitFor({ state: 'visible' }); await expect(page).toHaveScreenshot(); }); - await test.step('Verify hover on Add color button ', async () => { + await test.step('Verify hover on Add color button', async () => { await locators.button(page, 'Add color').first().hover(); await expect(page).toHaveScreenshot(); }); }); - test('Verify predefined palette ', { + test('Verify predefined palette', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@color-picker', '@base-components', '@flex-box', @@ -291,7 +297,7 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - await test.step('Verify active state of Palette custom color ', async () => { + await test.step('Verify active state of Palette custom color', async () => { await locators.paletteItem(page).first().click(); await locators.color(page, 0).waitFor({ state: 'hidden' }); await expect(page).toHaveScreenshot(); @@ -302,8 +308,10 @@ test.describe(`${TAG.VISUAL} `, () => { }); }); - test('Verify ColorPicker.Colors', { + test('Verify colors, displayLabel and defaultValue props', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, + TAG.MOUSE, '@color-picker', '@base-components', '@flex-box', @@ -325,8 +333,9 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - test('Verify ColorPicker.Item PaletteManager.Item and ColorPicker.Input', { + test('Verify PaletteManager.Item and ColorPicker.Input', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@color-picker', '@base-components', @@ -348,8 +357,10 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); - test('Verify trigger variations keyboards interactions', { + test('Verify trigger variations keyboard interactions visual', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, + TAG.MOUSE, '@color-picker', '@input', '@tag', @@ -377,6 +388,7 @@ We verify states, visibility, and attributes. test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Roles and attributes', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@color-picker', '@base-components', '@flex-box', @@ -644,17 +656,17 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.addColor(page).click(); await expect(locators.palette(page)).not.toBeEmpty(); - await expect(locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]')).toHaveCount(1); + await expect(locators.paletteItem(page)).toHaveCount(1); await expect(locators.inputColor(page)).toBeEmpty(); await locators.inputColor(page).fill('666'); await locators.addColor(page).click(); - await expect(locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]')).toHaveCount(2); + await expect(locators.paletteItem(page)).toHaveCount(2); await page.locator('[data-name="Close"]').nth(1).click(); - await expect(locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]')).toHaveCount(1); + await expect(locators.paletteItem(page)).toHaveCount(1); - await locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]').click(); + await locators.paletteItem(page).click(); await locators.color(page, 0).waitFor({ state: 'hidden' }); await expect(locators.trigger(page, 0)).toHaveAttribute('value', '#999'); }); @@ -673,6 +685,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await locators.color(page, 0).waitFor({ state: 'visible' }); + await expect(locators.color(page)).not.toHaveCount(0); const count = await locators.color(page).count(); for (let i = 0; i < count; i++) { @@ -696,14 +709,14 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await expect(locators.inputColor(page)).toHaveAttribute('aria-invalid', 'false'); await expect(locators.palette(page)).not.toBeEmpty(); - await expect(locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]')).toHaveCount(1); + await expect(locators.paletteItem(page)).toHaveCount(1); await expect(locators.inputColor(page)).toBeEmpty(); await locators.inputColor(page).fill('111'); await page.waitForTimeout(200); await page.keyboard.press('Enter'); await locators.addColor(page).click(); - await expect(locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]')).toHaveCount(2); + await expect(locators.paletteItem(page)).toHaveCount(2); await locators.inputColor(page).fill('++'); await page.waitForTimeout(200); @@ -714,7 +727,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await expect(locators.inputColor(page)).toBeFocused(); - await expect(locators.palette(page).locator('[data-ui-name="PaletteManager.Item"]')).toHaveCount(2); + await expect(locators.paletteItem(page)).toHaveCount(2); await expect(locators.inputColor(page)).toBeFocused(); @@ -731,8 +744,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.trigger(page, 0)).toHaveAttribute('value', '#111'); }); - test('Verify Colors and Palette.Manager props', { + test('Verify Colors and PaletteManager props', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@color-picker', '@base-components', @@ -740,7 +754,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/color-picker/tests/examples/colors-and-palette-manager-colors-props.tsx', 'en'); - await test.step('Verify paletter manager when colors defaultColors and onColorsChange pre set', async () => { + await test.step('Verify palette manager when colors defaultColors and onColorsChange pre set', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); await locators.color(page, 0).waitFor({ state: 'visible' }); @@ -787,7 +801,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.paletteItem(page).nth(2).waitFor({ state: 'hidden' }); }); - await test.step('Verify paletter manager when defaultColors and onColorsChange pre set', async () => { + await test.step('Verify palette manager when defaultColors and onColorsChange pre set', async () => { await locators.trigger(page, 1).click(); await locators.color(page, 0).waitFor({ state: 'visible' }); @@ -847,11 +861,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/color-picker/tests/examples/triggers.tsx', 'en'); - await test.step('Verify mouse interaction with tag trigger', async () => { - locators.trigger(page, 0).click(); + await test.step('Verify mouse interaction with input addon trigger', async () => { + await locators.trigger(page, 0).click(); await locators.color(page, 0).waitFor({ state: 'visible' }); - locators.trigger(page, 0).click(); + await locators.trigger(page, 0).click(); await locators.color(page, 0).waitFor({ state: 'hidden' }); await page.locator('[data-ui-name="Input.Value"]').click(); @@ -859,9 +873,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Verify mouse interaction with button trigger', async () => { - locators.trigger(page, 1).click(); + await locators.trigger(page, 1).click(); await locators.color(page, 0).waitFor({ state: 'visible' }); - locators.trigger(page, 1).click(); + await locators.trigger(page, 1).click(); await locators.color(page, 0).waitFor({ state: 'hidden' }); await expect(locators.dialog(page)).not.toBeVisible(); }); @@ -869,7 +883,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify trigger variations keyboard interactions', { tag: [TAG.PRIORITY_HIGH, - TAG.FUNCTIONAL, + TAG.KEYBOARD, '@color-picker', '@input', '@tag', @@ -882,7 +896,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/color-picker/tests/examples/triggers.tsx', 'en'); - await test.step('Verify keyboard interaction with tag trigger', async () => { + await test.step('Verify keyboard interaction with input addon trigger', async () => { await page.keyboard.press('Tab'); await expect(locators.trigger(page, 0)).toBeFocused(); @@ -901,7 +915,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.dialog(page)).not.toBeVisible(); }); - await test.step('Verify mouse interaction with button trigger', async () => { + await test.step('Verify keyboard interaction with button trigger', async () => { await page.keyboard.press('Tab'); await expect(locators.trigger(page, 1)).toBeFocused(); await page.keyboard.press('Enter'); diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-1-chromium-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-1-chromium-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-1-chromium-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-1-chromium-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-1-firefox-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-1-firefox-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-1-firefox-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-1-firefox-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-1-webkit-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-1-webkit-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-1-webkit-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-1-webkit-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-2-chromium-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-2-chromium-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-2-chromium-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-2-chromium-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-2-firefox-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-2-firefox-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-2-firefox-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-2-firefox-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-2-webkit-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-2-webkit-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Item-PaletteManager-Item-and-ColorPicker-Input-2-webkit-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-PaletteManager-Item-and-ColorPicker-Input-2-webkit-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Colors-1-chromium-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-colors-displayLabel-and-defaultValue-props-1-chromium-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Colors-1-chromium-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-colors-displayLabel-and-defaultValue-props-1-chromium-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Colors-1-firefox-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-colors-displayLabel-and-defaultValue-props-1-firefox-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Colors-1-firefox-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-colors-displayLabel-and-defaultValue-props-1-firefox-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Colors-1-webkit-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-colors-displayLabel-and-defaultValue-props-1-webkit-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-ColorPicker-Colors-1-webkit-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-colors-displayLabel-and-defaultValue-props-1-webkit-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboards-interactions-1-chromium-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboard-interactions-visual-1-chromium-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboards-interactions-1-chromium-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboard-interactions-visual-1-chromium-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboards-interactions-1-firefox-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboard-interactions-visual-1-firefox-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboards-interactions-1-firefox-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboard-interactions-visual-1-firefox-linux.png diff --git a/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboards-interactions-1-webkit-linux.png b/semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboard-interactions-visual-1-webkit-linux.png similarity index 100% rename from semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboards-interactions-1-webkit-linux.png rename to semcore/color-picker/__tests__/color-picker.browser-test.tsx-snapshots/-visual-Verify-trigger-variations-keyboard-interactions-visual-1-webkit-linux.png diff --git a/semcore/counter/__tests__/counter.axe-test.ts b/semcore/counter/__tests__/counter.axe-test.ts index aa43459c4e..1b1c8d32a6 100644 --- a/semcore/counter/__tests__/counter.axe-test.ts +++ b/semcore/counter/__tests__/counter.axe-test.ts @@ -2,7 +2,7 @@ import { expect, test, getAccessibilityViolations } from '@semcore/testing-utils import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -test.describe(`@color-picker ${TAG.ACCESSIBILITY}`, () => { +test.describe(`@counter ${TAG.ACCESSIBILITY}`, () => { test('Animated number', async ({ page }) => { await loadPage(page, 'stories/components/counter/docs/examples/animated_number.tsx', 'en'); diff --git a/semcore/counter/__tests__/counter.browser-test.tsx b/semcore/counter/__tests__/counter.browser-test.tsx index d8c487e4dd..d851819326 100644 --- a/semcore/counter/__tests__/counter.browser-test.tsx +++ b/semcore/counter/__tests__/counter.browser-test.tsx @@ -30,6 +30,7 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify counter in filters', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, '@counter', '@base-components', '@flex-box', @@ -71,6 +72,8 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify counter in forms', { tag: [TAG.PRIORITY_HIGH, + TAG.KEYBOARD, + TAG.MOUSE, '@counter', '@textarea', '@base-components', '@flex-box', diff --git a/semcore/divider/__tests__/divider.browser-test.tsx b/semcore/divider/__tests__/divider.browser-test.tsx index d24520c57d..52d5477384 100644 --- a/semcore/divider/__tests__/divider.browser-test.tsx +++ b/semcore/divider/__tests__/divider.browser-test.tsx @@ -1,19 +1,7 @@ import { expect, test } from '@semcore/testing-utils/playwright'; -import type { Page } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -export const locators = { - - button: (page: Page, name?: string, index?: number) => { - const base = page.getByRole('button', { name }); - return typeof index === 'number' ? base.nth(index) : base; - }, - input: (page: Page) => page.getByRole('textbox'), - hint: (page: Page, text: string) => page.getByText(text), - - addon: (page: Page) => page.locator('[data-ui-name="Input.Addon"]'), -}; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -23,6 +11,7 @@ test.describe(`${TAG.VISUAL} `, () => { // horizontal { orientation: 'horizontal', use: 'primary', theme: 'default', w: 100, h: undefined }, { orientation: 'horizontal', use: 'primary', theme: 'invert', w: undefined, h: undefined }, + { orientation: 'horizontal', use: 'primary', theme: 'border-warning-active', w: undefined, h: undefined }, { orientation: 'horizontal', use: 'secondary', theme: 'default', w: 100, h: undefined }, { orientation: 'horizontal', use: 'secondary', theme: 'invert', w: undefined, h: undefined }, { orientation: 'horizontal', use: 'secondary', theme: 'border-warning-active', w: undefined, h: undefined }, @@ -36,28 +25,27 @@ test.describe(`${TAG.VISUAL} `, () => { ]; variablesActive.forEach((item) => { - test(`Verify divider with orientation=${item.orientation} use=${item.use} theme=${item.theme} w=${item.w} h=${item.h}}`, { + test(`Verify divider with orientation=${item.orientation} use=${item.use} theme=${item.theme}`, { tag: [TAG.PRIORITY_HIGH, '@divider', '@base-components', '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/divider/tests/examples/divider-styles.tsx', 'en', item); - const flex = page.locator('[data-testid="wrap"]'); - const screenshotsClip = (await flex.first().boundingBox())!; - screenshotsClip.x -= 4; - screenshotsClip.y -= 4; - screenshotsClip.width += 8; - screenshotsClip.height += 8; - await expect(page).toHaveScreenshot({ clip: screenshotsClip, scale: 'device' }); - const divider = page.getByRole('separator'); - if (item.orientation == 'horizontal') { - await expect(divider).toHaveAttribute('aria-orientation', 'horizontal'); - } - if (item.orientation == 'vertical') { - await expect(divider).toHaveAttribute('aria-orientation', 'vertical'); - } + await test.step('Verify divider styles', async () => { + const flex = page.getByTestId('wrap'); + const screenshotsClip = (await flex.boundingBox())!; + screenshotsClip.x -= 4; + screenshotsClip.y -= 4; + screenshotsClip.width += 8; + screenshotsClip.height += 8; + await expect(page).toHaveScreenshot({ clip: screenshotsClip, scale: 'device' }); + }); + + await test.step(`Verify aria-orientation=${item.orientation}`, async () => { + await expect(page.getByRole('separator')).toHaveAttribute('aria-orientation', item.orientation); + }); }); }); diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-chromium-linux.png new file mode 100644 index 0000000000..6fe3d334aa Binary files /dev/null and b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-chromium-linux.png differ diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-firefox-linux.png new file mode 100644 index 0000000000..163203d60b Binary files /dev/null and b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-firefox-linux.png differ diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-webkit-linux.png new file mode 100644 index 0000000000..4be3d3930b Binary files /dev/null and b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-border-warning-active-1-webkit-linux.png differ diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-w-100-h-undefined-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-w-100-h-undefined-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-w-100-h-undefined-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-w-100-h-undefined-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-w-100-h-undefined-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-w-100-h-undefined-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-default-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-de5b5-primary-theme-invert-w-undefined-h-undefined-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-invert-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-de5b5-primary-theme-invert-w-undefined-h-undefined-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-invert-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-de5b5-primary-theme-invert-w-undefined-h-undefined-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-invert-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-de5b5-primary-theme-invert-w-undefined-h-undefined-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-invert-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-de5b5-primary-theme-invert-w-undefined-h-undefined-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-invert-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-de5b5-primary-theme-invert-w-undefined-h-undefined-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-primary-theme-invert-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-4990a-order-warning-active-w-undefined-h-undefined-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-border-warning-active-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-4990a-order-warning-active-w-undefined-h-undefined-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-border-warning-active-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-4990a-order-warning-active-w-undefined-h-undefined-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-border-warning-active-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-4990a-order-warning-active-w-undefined-h-undefined-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-border-warning-active-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-4990a-order-warning-active-w-undefined-h-undefined-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-border-warning-active-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-4990a-order-warning-active-w-undefined-h-undefined-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-border-warning-active-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-w-100-h-undefined-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-w-100-h-undefined-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-w-100-h-undefined-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-w-100-h-undefined-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-w-100-h-undefined-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-w-100-h-undefined-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-default-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-162b3-condary-theme-invert-w-undefined-h-undefined-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-invert-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-162b3-condary-theme-invert-w-undefined-h-undefined-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-invert-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-162b3-condary-theme-invert-w-undefined-h-undefined-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-invert-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-162b3-condary-theme-invert-w-undefined-h-undefined-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-invert-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-162b3-condary-theme-invert-w-undefined-h-undefined-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-invert-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horiz-162b3-condary-theme-invert-w-undefined-h-undefined-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-horizontal-use-secondary-theme-invert-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-w-undefined-h-100-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-w-undefined-h-100-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-w-undefined-h-100-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-w-undefined-h-100-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-w-undefined-h-100-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-w-undefined-h-100-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-default-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-w-undefined-h-150-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-w-undefined-h-150-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-w-undefined-h-150-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-w-undefined-h-150-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-w-undefined-h-150-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-w-undefined-h-150-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-primary-theme-invert-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-verti-c409f-order-warning-active-w-undefined-h-undefined-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-border-warning-active-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-verti-c409f-order-warning-active-w-undefined-h-undefined-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-border-warning-active-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-verti-c409f-order-warning-active-w-undefined-h-undefined-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-border-warning-active-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-verti-c409f-order-warning-active-w-undefined-h-undefined-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-border-warning-active-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-verti-c409f-order-warning-active-w-undefined-h-undefined-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-border-warning-active-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-verti-c409f-order-warning-active-w-undefined-h-undefined-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-border-warning-active-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-w-undefined-h-50-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-w-undefined-h-50-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-w-undefined-h-50-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-w-undefined-h-50-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-w-undefined-h-50-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-w-undefined-h-50-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-default-1-webkit-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-w-undefined-h-200-1-chromium-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-1-chromium-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-w-undefined-h-200-1-chromium-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-1-chromium-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-w-undefined-h-200-1-firefox-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-1-firefox-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-w-undefined-h-200-1-firefox-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-1-firefox-linux.png diff --git a/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-w-undefined-h-200-1-webkit-linux.png b/semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-1-webkit-linux.png similarity index 100% rename from semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-w-undefined-h-200-1-webkit-linux.png rename to semcore/divider/__tests__/divider.browser-test.tsx-snapshots/-visual-Verify-divider-with-orientation-vertical-use-secondary-theme-invert-1-webkit-linux.png diff --git a/semcore/dot/__tests__/dot.browser-test.tsx b/semcore/dot/__tests__/dot.browser-test.tsx index 8b94736bba..115505e26b 100644 --- a/semcore/dot/__tests__/dot.browser-test.tsx +++ b/semcore/dot/__tests__/dot.browser-test.tsx @@ -6,14 +6,12 @@ import { TAG } from '@semcore/testing-utils/shared/tags'; @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { const variables = [ - { size: 'm', up: true }, { size: 'm', up: false }, { size: 'l', up: true }, { size: 'l', up: false }, - ]; variables.forEach((item) => { @@ -30,29 +28,24 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dot/tests/examples/sizes-and-positions.tsx', 'en', item); - await expect(page).toHaveScreenshot(); - const dot = page.locator('[data-ui-name="Dot"]'); - - const count = await dot.count(); - for (let i = 0; i < count; i++) { - const width = await dot.nth(i).evaluate((el) => - window.getComputedStyle(el).getPropertyValue('width'), - ); - const height = await dot.nth(i).evaluate((el) => - window.getComputedStyle(el).getPropertyValue('height'), - ); - - if (item.size == 'm') { - expect(width.trim()).toBe('6px'); - expect(height.trim()).toBe('6px'); - } else { - expect(width.trim()).toBe('12px'); - expect(height.trim()).toBe('12px'); + await test.step('Verify dots styles', async () => { + await expect(page).toHaveScreenshot(); + }); + + await test.step(`Verify each dot is ${item.size === 'm' ? '6px' : '12px'}`, async () => { + const dots = page.locator('[data-ui-name="Dot"]'); + const dotSize = item.size === 'm' ? '6px' : '12px'; + await expect(dots).not.toHaveCount(0); + for (const dot of await dots.all()) { + await expect(dot).toHaveCSS('width', dotSize); + await expect(dot).toHaveCSS('height', dotSize); } - } + }); }); + }); - test(`Verify dot with counter size=${item.size} up=${item.up} `, { + variables.filter((item) => item.size === 'm').forEach((item) => { + test(`Verify dot with counter size=${item.size} up=${item.up}`, { tag: [TAG.PRIORITY_HIGH, '@dot', '@button', @@ -64,22 +57,19 @@ test.describe(`${TAG.VISUAL} `, () => { '@pills'], }, async ({ page }) => { await loadPage(page, 'stories/components/dot/tests/examples/with-counter-sizes-and-positions.tsx', 'en', item); - if (item.size == 'l') test.skip();// the size L is not actual for dot with counter - await expect(page).toHaveScreenshot(); - const dotCounter = page.locator('span[aria-label="Value"][data-ui-name="Dot"]'); - const count = await dotCounter.count(); - for (let i = 0; i < count; i++) { - const paddingLeft = await dotCounter.nth(i).evaluate((el) => - window.getComputedStyle(el).getPropertyValue('padding-left'), - ); - const paddingRight = await dotCounter.nth(i).evaluate((el) => - window.getComputedStyle(el).getPropertyValue('padding-right'), - ); + await test.step('Verify dots with counter styles', async () => { + await expect(page).toHaveScreenshot(); + }); - expect(paddingLeft.trim()).toBe('4px'); - expect(paddingRight.trim()).toBe('4px'); - } + await test.step('Verify each dot with counter has 4px horizontal paddings', async () => { + const dotCounters = page.locator('[data-ui-name="Dot"]'); + await expect(dotCounters).not.toHaveCount(0); + for (const dotCounter of await dotCounters.all()) { + await expect(dotCounter).toHaveCSS('padding-left', '4px'); + await expect(dotCounter).toHaveCSS('padding-right', '4px'); + } + }); }); }); }); @@ -89,7 +79,7 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify dot hides by mouse', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, @@ -98,13 +88,18 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dot/docs/examples/example_of_dot_animation.tsx', 'en'); - const button = page.locator('[data-ui-name="Button"]'); + const button = page.getByRole('button'); const dot = page.locator('[data-ui-name="Dot"]'); - await button.hover(); - await expect(dot).toBeVisible(); - await button.click(); - await expect(dot).not.toBeVisible(); + await test.step('Verify dot is visible on hover', async () => { + await button.hover(); + await expect(dot).toBeVisible(); + }); + + await test.step('Verify dot hides after click', async () => { + await button.click(); + await expect(dot).toBeHidden(); + }); }); test('Verify dot hides by keyboard', { @@ -115,13 +110,18 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dot/docs/examples/example_of_dot_animation.tsx', 'en'); - const button = page.locator('[data-ui-name="Button"]'); + const button = page.getByRole('button'); const dot = page.locator('[data-ui-name="Dot"]'); - await page.keyboard.press('Tab'); - await expect(button).toBeFocused(); - await expect(dot).toBeVisible(); - await page.keyboard.press('Enter'); - await expect(dot).not.toBeVisible(); + await test.step('Verify dot is visible when button is focused', async () => { + await page.keyboard.press('Tab'); + await expect(button).toBeFocused(); + await expect(dot).toBeVisible(); + }); + + await test.step('Verify dot hides after Enter', async () => { + await page.keyboard.press('Enter'); + await expect(dot).toBeHidden(); + }); }); }); diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx index a68a1c9959..d9e67f773d 100644 --- a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx +++ b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx @@ -4,7 +4,6 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -21,7 +20,7 @@ export const locators = { @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { const variables = [ { placement: false }, { placement: 'top' }, @@ -40,19 +39,24 @@ test.describe(`${TAG.VISUAL} `, () => { '@d3-chart', '@flex-box', '@typography'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/components/drag-and-drop/tests/examples/with-cards-all-props.tsx', 'en', item); + const moveStep = item.placement === 'top' ? test.step : test.step.skip; - await page.locator('[data-ui-name="Card.Header"]').nth(1).hover(); - await page.keyboard.press('Tab'); - await page.keyboard.press('Space'); - await expect(page).toHaveScreenshot(); - - await page.keyboard.press('ArrowRight'); - await page.keyboard.press('ArrowRight'); - await expect(page).toHaveScreenshot(); - await page.keyboard.press('Space'); - await expect(page).toHaveScreenshot(); + await test.step('Verify marker of grabbed item', async () => { + await page.locator('[data-ui-name="Card.Header"]').nth(1).hover(); + await page.keyboard.press('Tab'); + await page.keyboard.press('Space'); + await expect(page).toHaveScreenshot(); + }); + + await moveStep('Verify item moved and dropped (placement does not affect it)', async () => { + await page.keyboard.press('ArrowRight'); + await page.keyboard.press('ArrowRight'); + await expect(page).toHaveScreenshot(); + await page.keyboard.press('Space'); + await expect(page).toHaveScreenshot(); + }); }); }); @@ -67,7 +71,7 @@ test.describe(`${TAG.VISUAL} `, () => { '@button-link', '@flex-box', '@typography'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/components/drag-and-drop/docs/examples/with_dropdownmenu.tsx', 'en'); await locators.button(page).click(); @@ -139,7 +143,7 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { test.describe('With cards', () => { test('Verify mouse interactions with draggable cards', { tag: [TAG.PRIORITY_HIGH, @@ -159,30 +163,24 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await test.step('Verify attributes', async () => { await expect(locators.dragAndDropContainer(page)).toHaveAttribute('role', 'group'); - const dropCount = await locators.dropZone(page).count(); - for (let i = 0; i < dropCount; i++) { - await expect(locators.dropZone(page).nth(i)).toHaveAttribute('role', 'group'); - await expect(locators.dropZone(page).nth(i)).toHaveAttribute('draggable', 'false'); + await expect(locators.dropZone(page)).not.toHaveCount(0); + for (const dropZone of await locators.dropZone(page).all()) { + await expect(dropZone).toHaveAttribute('role', 'group'); + await expect(dropZone).toHaveAttribute('draggable', 'false'); } - const dragCount = await locators.draggable(page).count(); - for (let i = 0; i < dragCount; i++) { - await expect(locators.draggable(page).nth(i)).toHaveAttribute('role', 'group'); - await expect(locators.draggable(page).nth(i)).toHaveAttribute('draggable', 'true'); - await expect(locators.draggable(page).nth(i)).toHaveAttribute('tabindex', '0'); - await expect(locators.draggable(page).nth(i)).toHaveAttribute('aria-describedby'); + await expect(locators.draggable(page)).not.toHaveCount(0); + for (const draggable of await locators.draggable(page).all()) { + await expect(draggable).toHaveAttribute('role', 'group'); + await expect(draggable).toHaveAttribute('draggable', 'true'); + await expect(draggable).toHaveAttribute('tabindex', '0'); + await expect(draggable).toHaveAttribute('aria-describedby'); } }); - await test.step('Verify graggable items can be moved to the drop zone', async () => { + await test.step('Verify draggable items can be moved to the drop zone', async () => { await draggableMarketTraffic.waitFor({ state: 'visible' }); await draggableMarketTraffic.dragTo(locators.dropZone(page).nth(0)); - // Wait for DOM to update after drag operation - await expect.poll( - async () => await allItems.first().getAttribute('data-ui-name'), - { - timeout: 3000, - }, - ).toBe('DragAndDrop.Draggable'); + await expect(allItems.first()).toHaveAttribute('data-ui-name', 'DragAndDrop.Draggable', { timeout: 3000 }); }); }); @@ -201,29 +199,33 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { const allItems = locators.dragAndDropContainer(page).locator('> *'); - await page.keyboard.press('Tab'); - await expect(locators.dropZone(page).first()).toBeFocused(); - await page.keyboard.press('Tab'); - await page.waitForTimeout(200); // added timeout because of slow animation of this component - await expect(locators.draggable(page).first()).toBeFocused(); - await test.step('Verify graggable items can be moved to the drop zone', async () => { + const notWebkitStep = browserName === 'webkit' ? test.step.skip : test.step; + + await test.step('Verify focus order: drop zone, then draggable', async () => { + await page.keyboard.press('Tab'); + await expect(locators.dropZone(page).first()).toBeFocused(); + await page.keyboard.press('Tab'); + await page.waitForTimeout(200); // added timeout because of slow animation of this component + await expect(locators.draggable(page).first()).toBeFocused(); + }); + + await test.step('Verify draggable item is grabbed by Space', async () => { await page.keyboard.press('Space'); await page.waitForTimeout(100); - await expect(locators.draggable(page).first()).toHaveClass(/keyboardDragging/, { timeout: 200 }); await expect(page.getByRole('alert')).toHaveCount(1); + }); + + await test.step('Verify item is dropped by ArrowLeft and Space and keeps focus', async () => { await page.keyboard.press('ArrowLeft'); await page.waitForTimeout(100); - await page.keyboard.press('Space'); await page.waitForTimeout(200); - await expect(locators.draggable(page).first()).toBeFocused(); + }); - // Skip this check on webkit - drag and drop doesn't work properly with keyboard navigation - if (browserName !== 'webkit') { - await expect(allItems.first()).toHaveAttribute('data-ui-name', 'DragAndDrop.Draggable'); - } + await notWebkitStep('Verify moved item becomes first in the container (keyboard DnD is unreliable in WebKit)', async () => { + await expect(allItems.first()).toHaveAttribute('data-ui-name', 'DragAndDrop.Draggable'); }); await test.step('Verify Escape cancels moving', async () => { @@ -315,15 +317,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await test.step('Verify items can be moved by keyboard', async () => { await page.keyboard.press('Space'); - - await expect.poll( - async () => { - return await locators.menuItems(page, 0).getAttribute('class'); - }, - { - timeout: 200, - }, - ).toMatch(/keyboardDragging/); + await expect(locators.menuItems(page, 0)).toHaveClass(/keyboardDragging/, { timeout: 200 }); for (let i = 0; i < 4; i++) { await page.keyboard.press('ArrowDown'); @@ -344,14 +338,14 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.menuItems(page).last()).toBeFocused(); }); - await test.step('Verify Focus order', async () => { + await test.step('Verify focus order', async () => { await page.keyboard.press('Tab'); await expect(locators.button(page, 'Reset to default')).toBeFocused(); await page.keyboard.press('Shift+Tab'); await expect(locators.menuItems(page).last()).toBeFocused(); }); - await test.step('Verify Reset to default returns checkoxes in initial state', async () => { + await test.step('Verify Reset to default returns checkboxes in initial state', async () => { await page.keyboard.press('Tab'); await expect(locators.button(page, 'Reset to default')).toBeFocused(); @@ -370,7 +364,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { } }); - await test.step('Verify Closing dd menu and opening again save order', async () => { + await test.step('Verify closing and reopening dropdown menu saves order', async () => { await page.keyboard.press('Escape'); await locators.menuItems(page, 1).waitFor({ state: 'hidden' }); await page.keyboard.press('Enter'); diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-chromium-linux.png deleted file mode 100644 index b388630ea8..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-firefox-linux.png deleted file mode 100644 index e092429295..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-webkit-linux.png deleted file mode 100644 index 16a2e78eef..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-2-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-chromium-linux.png deleted file mode 100644 index 44de2293eb..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-firefox-linux.png deleted file mode 100644 index b0be50dfe4..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-webkit-linux.png deleted file mode 100644 index d40ba861f7..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-bottom-3-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-chromium-linux.png deleted file mode 100644 index c6b98c437f..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-firefox-linux.png deleted file mode 100644 index bd566af50d..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-webkit-linux.png deleted file mode 100644 index cb9b8d6355..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-2-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-chromium-linux.png deleted file mode 100644 index 44de2293eb..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-firefox-linux.png deleted file mode 100644 index b0be50dfe4..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-webkit-linux.png deleted file mode 100644 index d40ba861f7..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-false-3-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-chromium-linux.png deleted file mode 100644 index ac3bd1c9d5..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-firefox-linux.png deleted file mode 100644 index 4bffbc4aeb..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-webkit-linux.png deleted file mode 100644 index d2f5e9c156..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-2-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-chromium-linux.png deleted file mode 100644 index 44de2293eb..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-firefox-linux.png deleted file mode 100644 index b0be50dfe4..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-webkit-linux.png deleted file mode 100644 index d40ba861f7..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-left-3-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-chromium-linux.png deleted file mode 100644 index e3a2e8d108..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-firefox-linux.png deleted file mode 100644 index 52d803a042..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-webkit-linux.png deleted file mode 100644 index 6fa632635e..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-2-webkit-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-chromium-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-chromium-linux.png deleted file mode 100644 index 44de2293eb..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-chromium-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-firefox-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-firefox-linux.png deleted file mode 100644 index b0be50dfe4..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-firefox-linux.png and /dev/null differ diff --git a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-webkit-linux.png b/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-webkit-linux.png deleted file mode 100644 index d40ba861f7..0000000000 Binary files a/semcore/drag-and-drop/__tests__/drag-and-drop.browser-test.tsx-snapshots/-visual-Verify-Dnd-when-drag-and-drop-marker-position-is-right-3-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.axe-test.tsx b/semcore/dropdown-menu/__tests__/dropdown-menu.axe-test.tsx index c42fac05ec..abe8aaa925 100644 --- a/semcore/dropdown-menu/__tests__/dropdown-menu.axe-test.tsx +++ b/semcore/dropdown-menu/__tests__/dropdown-menu.axe-test.tsx @@ -6,41 +6,33 @@ test.describe(`@dropdown-menu ${TAG.ACCESSIBILITY}`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/dropdown-menu/docs/examples/basic.tsx', 'en'); - // base check - { + await test.step('Verify closed menu', async () => { const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); - // opened dropdown check - { + await test.step('Verify opened menu', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); }); test('Dropdown menu', async ({ page }) => { await loadPage(page, 'stories/components/dropdown-menu/docs/examples/dropdown-menu.tsx', 'en'); - // base check - { + await test.step('Verify closed menu', async () => { const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); - // opened dropdown check - { + await test.step('Verify opened menu', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); }); test('Nested', async ({ page }) => { @@ -112,53 +104,27 @@ test.describe(`@dropdown-menu ${TAG.ACCESSIBILITY}`, () => { test('Sticky group', async ({ page }) => { await loadPage(page, 'stories/components/dropdown-menu/docs/examples/sticky_groups.tsx', 'en'); + const search = page.locator('input[data-ui-name="InputSearch"]'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - const violations = await getAccessibilityViolations({ page }); - - expect(violations).toEqual([]); - }); - - test('StatusItem with results', async ({ page }) => { - await loadPage(page, 'stories/components/dropdown-menu/tests/examples/dropdown-base-props.tsx', 'en', { showSearch: true }); - - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await page.getByRole('textbox', { name: 'Search' }).fill('d'); - const violations = await getAccessibilityViolations({ page }); - - expect(violations).toEqual([]); - }); - - test('StatusItem nothing found', async ({ page }) => { - await loadPage(page, 'stories/components/dropdown-menu/tests/examples/dropdown-base-props.tsx', 'en', { showSearch: true }); - - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await page.getByRole('textbox', { name: 'Search' }).fill('zzz'); - const violations = await getAccessibilityViolations({ page }); - - expect(violations).toEqual([]); - }); - - test('StatusItem loading state', async ({ page }) => { - await loadPage(page, 'stories/components/dropdown-menu/tests/examples/dropdown-base-props.tsx', 'en', { showSearch: true, state: 'loading' }); - - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - const violations = await getAccessibilityViolations({ page }); - - expect(violations).toEqual([]); - }); - - test('StatusItem error state', async ({ page }) => { - await loadPage(page, 'stories/components/dropdown-menu/tests/examples/dropdown-base-props.tsx', 'en', { showSearch: true, state: 'error' }); + await test.step('Verify opened menu', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + const violations = await getAccessibilityViolations({ page }); + expect(violations).toEqual([]); + }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - const violations = await getAccessibilityViolations({ page }); + await test.step('Verify StatusItem with results', async () => { + await search.fill('Project 1'); + await expect(page.getByRole('status')).not.toHaveCount(0); + const violations = await getAccessibilityViolations({ page }); + expect(violations).toEqual([]); + }); - expect(violations).toEqual([]); + await test.step('Verify StatusItem nothing found', async () => { + await search.fill('zzz'); + await expect(page.getByText('Nothing found').first()).toBeVisible(); + const violations = await getAccessibilityViolations({ page }); + expect(violations).toEqual([]); + }); }); }); diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx index 9c456c5ad4..fee8fdb7a3 100644 --- a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx +++ b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx @@ -1,9 +1,9 @@ import { expect, test } from '@semcore/testing-utils/playwright'; -import type { Page } from '@semcore/testing-utils/playwright'; +import type { Locator, Page } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -const checkStyles = async (element: any, styles: Record) => { +const checkStyles = async (element: Locator, styles: Record) => { for (const [property, value] of Object.entries(styles) as [string, string][]) { await expect(element).toHaveCSS(property, value); } @@ -28,7 +28,6 @@ const getCssVarColor = async (page: Page, varName: string) => { }; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -96,6 +95,25 @@ export const locators = { }, }; +const sizeStyles = { + m: { 'font-size': '14px', 'min-height': '32px' }, + l: { 'font-size': '16px', 'min-height': '40px' }, +}; + +const checkEachStyles = async (items: Locator, styles: Record) => { + await expect(items).not.toHaveCount(0); + for (const item of await items.all()) { + await checkStyles(item, styles); + } +}; + +const expectNoneFocused = async (items: Locator) => { + await expect(items).not.toHaveCount(0); + for (const item of await items.all()) { + await expect(item).not.toBeFocused(); + } +}; + const pressKeyMultipleTimes = async (page: Page, key: string, times: number) => { for (let i = 0; i < times; i++) { await page.keyboard.press(key); @@ -131,29 +149,27 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(locators.button(page)).toHaveAttribute('aria-expanded', 'false'); }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.menuitem(page, 0).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await locators.menuitem(page, 0).getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); + await test.step('Verify first item highlighted when opened by Enter', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.menuitem(page, 0).waitFor({ state: 'visible' }); + await expect(locators.menuitem(page, 0)).toHaveClass(/highlighted/, { timeout: 1000 }); + }); - await pressKeyMultipleTimes(page, 'ArrowDown', 4); - await page.keyboard.press('Tab'); - await expect.poll(async () => { - return await locators.menuitem(page, 4).getAttribute('class'); - }, { timeout: 1000 }).toMatch(/highlighted/); - await locators.menuitem(page, 4).scrollIntoViewIfNeeded(); - await expect(page).toHaveScreenshot(); + await test.step('Verify Tab keeps highlight on the 5th item', async () => { + await pressKeyMultipleTimes(page, 'ArrowDown', 4); + await page.keyboard.press('Tab'); + await expect(locators.menuitem(page, 4)).toHaveClass(/highlighted/, { timeout: 1000 }); + await locators.menuitem(page, 4).scrollIntoViewIfNeeded(); + await expect(page).toHaveScreenshot(); + }); - await page.keyboard.press('ArrowDown'); - await expect.poll(async () => { - return await locators.menuitem(page, 5).getAttribute('class'); - }, { timeout: 1000 }).toMatch(/highlighted/); - await locators.menuitem(page, 5).scrollIntoViewIfNeeded(); - await expect(page).toHaveScreenshot(); + await test.step('Verify ArrowDown highlights the 6th item', async () => { + await page.keyboard.press('ArrowDown'); + await expect(locators.menuitem(page, 5)).toHaveClass(/highlighted/, { timeout: 1000 }); + await locators.menuitem(page, 5).scrollIntoViewIfNeeded(); + await expect(page).toHaveScreenshot(); + }); }); test('Verify focus when notice and interactive item in menu', { @@ -187,9 +203,11 @@ test.describe(`${TAG.VISUAL} `, () => { { size: 'l', disabledAll: false, visible: true, stretch: 'fixed' }, { size: 'l', disabledAll: false, visible: true, stretch: false }, { size: 'l', disabledAll: true, visible: true, stretch: undefined }, - ]; variables.forEach((item) => { + const size = item.size as keyof typeof sizeStyles; + const itemKindVariant = item.disabledAll || item.stretch === 'min'; + test(`Verify base dropdown with size=${item.size} disabledAll=${item.disabledAll} stretch=${item.stretch} visible=${item.visible}`, { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, @@ -203,59 +221,35 @@ test.describe(`${TAG.VISUAL} `, () => { await loadPage(page, 'stories/components/dropdown-menu/tests/examples/dropdown-base-props.tsx', 'en', item); const itemHoverBg = await getCssVarColor(page, '--intergalactic-dropdown-menu-item-hover'); - await expect(page).toHaveScreenshot(); - await expect(locators.list(page).first()).toHaveCSS( - 'max-height', - item.size === 'l' ? '306px' : '246px', - ); + const disabledStep = item.disabledAll ? test.step : test.step.skip; + const hoverStep = item.disabledAll || browserName === 'firefox' ? test.step.skip : test.step; - if (item.size == 'm') { - await test.step('Verify styles of M size', async () => { - const count1 = await locators.menuitem(page).count(); + await test.step('Verify menu styles', async () => { + await expect(page).toHaveScreenshot(); + await expect(locators.list(page).first()).toHaveCSS( + 'max-height', + item.size === 'l' ? '306px' : '246px', + ); + }); - for (let i = 0; i < count1; i++) { - await checkStyles(locators.menuitem(page, i), { - 'font-size': '14px', - 'min-height': '32px', - }); - } - }); - } - if (item.size == 'l') { - await test.step('Verify styles of L size', async () => { - const count1 = await locators.menuitem(page).count(); - - for (let i = 0; i < count1; i++) { - await checkStyles(locators.menuitem(page, i), { - 'font-size': '16px', - 'min-height': '40px', - }); - } - }); - } - if (item.disabledAll) { - await test.step('Verify disabled styles', async () => { - const count1 = await locators.menuitem(page).count(); - - for (let i = 0; i < count1; i++) { - await checkStyles(locators.menuitem(page, i), { - opacity: '0.4', - }); - } - }); - } + await test.step(`Verify styles of ${item.size.toUpperCase()} size`, async () => { + await checkEachStyles(locators.menuitem(page), sizeStyles[size]); + }); + + await disabledStep('Verify disabled styles', async () => { + await checkEachStyles(locators.menuitem(page), { opacity: '0.4' }); + }); - if (browserName === 'firefox') return; - if (!item.disabledAll) { - await test.step('Verify hover styles', async () => { - await locators.menuitem(page, 1).hover(); - await checkStyles(locators.menuitem(page, 1), { - 'background-color': itemHoverBg, - }); + await hoverStep('Verify hover styles (hover background is not checked in Firefox)', async () => { + await locators.menuitem(page, 1).hover(); + await checkStyles(locators.menuitem(page, 1), { + 'background-color': itemHoverBg, }); - } + }); }); + if (!itemKindVariant) return; + test(`Verify multiselect dropdown with size=${item.size} disabledAll=${item.disabledAll} stretch=${item.stretch} visible=${item.visible}`, { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, @@ -267,33 +261,14 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown-menu/tests/examples/multiselect-props.tsx', 'en', item); - await locators.menuitemcheckbox(page, 0).waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); - - if (item.size == 'm') { - await test.step('Verify styles of M size', async () => { - const count1 = await locators.menuitemcheckbox(page).count(); + await test.step('Verify menu styles', async () => { + await locators.menuitemcheckbox(page, 0).waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); - for (let i = 0; i < count1; i++) { - await checkStyles(locators.menuitemcheckbox(page, i), { - 'font-size': '14px', - 'min-height': '32px', - }); - } - }); - } - if (item.size == 'l') { - await test.step('Verify styles of L size', async () => { - const count1 = await locators.menuitemcheckbox(page).count(); - - for (let i = 0; i < count1; i++) { - await checkStyles(locators.menuitemcheckbox(page, i), { - 'font-size': '16px', - 'min-height': '40px', - }); - } - }); - } + await test.step(`Verify styles of ${item.size.toUpperCase()} size`, async () => { + await checkEachStyles(locators.menuitemcheckbox(page), sizeStyles[size]); + }); }); test(`Verify selectable radio dropdown with size=${item.size} disabledAll=${item.disabledAll} stretch=${item.stretch} visible=${item.visible}`, { @@ -310,86 +285,46 @@ test.describe(`${TAG.VISUAL} `, () => { const itemSelectedBg = await getCssVarColor(page, '--intergalactic-dropdown-menu-item-selected'); const itemSelectedHoverBg = await getCssVarColor(page, '--intergalactic-dropdown-menu-item-selected-hover'); - await expect(page).toHaveScreenshot(); + const hoverStep = item.disabledAll || browserName === 'firefox' ? test.step.skip : test.step; + + await test.step('Verify menu styles', async () => { + await expect(page).toHaveScreenshot(); + }); const titleSubtitleGroup = locators.menu(page).locator( '[data-ui-name="Dropdown.Item"]:not(:has(:scope > [data-ui-name="DropdownMenu.Group"]))', ); const elements = titleSubtitleGroup.locator('[data-ui-name="Flex"]'); - if (item.size == 'm') { - await test.step('Verify styles of m group title and subtitle', async () => { - await checkStyles(elements.first(), { - 'font-size': '14px', - 'font-weight': '700', - }); - - await checkStyles(elements.nth(1), { - 'font-size': '14px', - 'font-weight': '400', - }); - }); + const fontSize = sizeStyles[size]['font-size']; - await test.step('Verify styles of M size', async () => { - await checkStyles(locators.itemInGroup(page).first(), { - 'font-size': '14px', - 'min-height': '32px', - 'background-color': itemSelectedBg, - }); - - const count1 = await locators.menuitemradio(page).count(); - - for (let i = 1; i < count1; i++) { - await checkStyles(locators.itemInGroup(page).nth(i), { - 'font-size': '14px', - 'min-height': '32px', - }); - } - }); - } + await test.step(`Verify styles of ${item.size.toUpperCase()} group title and subtitle`, async () => { + await checkStyles(elements.first(), { 'font-size': fontSize, 'font-weight': '700' }); + await checkStyles(elements.nth(1), { 'font-size': fontSize, 'font-weight': '400' }); + }); - if (item.size == 'l') { - await test.step('Verify styles of L group title and subtitle', async () => { - await checkStyles(elements.first(), { - 'font-size': '16px', - 'font-weight': '700', - }); - - await checkStyles(elements.nth(1), { - 'font-size': '16px', - 'font-weight': '400', - }); - }); - await test.step('Verify styles of L size', async () => { - await checkStyles(locators.itemInGroup(page).first(), { - 'font-size': '16px', - 'min-height': '40px', - 'background-color': itemSelectedBg, - }); - - const count1 = await locators.menuitemradio(page).count(); - - for (let i = 1; i < count1; i++) { - await checkStyles(locators.itemInGroup(page).nth(i), { - 'font-size': '16px', - 'min-height': '40px', - }); - } + await test.step(`Verify styles of ${item.size.toUpperCase()} size`, async () => { + await checkStyles(locators.itemInGroup(page).first(), { + ...sizeStyles[size], + 'background-color': itemSelectedBg, }); - } - if (browserName === 'firefox') return; - if (!item.disabledAll) { - await test.step('Verify hover styles', async () => { - await locators.menuitemradio(page, 0).hover(); - await checkStyles(locators.itemInGroup(page).first(), { - 'background-color': itemSelectedHoverBg, - }); - await locators.menuitemradio(page, 1).hover(); - await checkStyles(locators.itemInGroup(page).nth(1), { - 'background-color': itemHoverBg, - }); + const count = await locators.menuitemradio(page).count(); + expect(count).toBeGreaterThan(1); + for (let i = 1; i < count; i++) { + await checkStyles(locators.itemInGroup(page).nth(i), sizeStyles[size]); + } + }); + + await hoverStep('Verify hover styles (hover background is not checked in Firefox)', async () => { + await locators.menuitemradio(page, 0).hover(); + await checkStyles(locators.itemInGroup(page).first(), { + 'background-color': itemSelectedHoverBg, }); - } + await locators.menuitemradio(page, 1).hover(); + await checkStyles(locators.itemInGroup(page).nth(1), { + 'background-color': itemHoverBg, + }); + }); }); }); @@ -586,11 +521,7 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(locators.button(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.menuitemcheckbox(page, 0).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await locators.menuitemcheckbox(page, 0).getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); + await expect(locators.menuitemcheckbox(page, 0)).toHaveClass(/highlighted/, { timeout: 1000 }); }); await test.step('Verify enter checks item and menu is not closed', async () => { @@ -658,7 +589,7 @@ test.describe(`${TAG.VISUAL} `, () => { '@select', '@typography'], }, async ({ page, browserName }) => { - if (browserName != 'chromium') test.skip(); + test.skip(browserName !== 'chromium', 'Keyboard focus in virtualized list is verified in Chromium only (UIK-2417)'); await loadPage(page, 'stories/components/dropdown-menu/advanced/examples/project-selector.tsx', 'en'); await page.keyboard.press('Tab'); @@ -729,8 +660,11 @@ test.describe(`${TAG.VISUAL} `, () => { await locators.menuitemradio(page, 'project 42').scrollIntoViewIfNeeded(); await expect(locators.menuitemradio(page, 'project 42')).toBeInViewport(); await expect(locators.menuitemradio(page, 'project 44')).toBeVisible(); - if (browserName === 'firefox') return; // every scroll on ff differs on some pixels(not stable) so visual regression skipped for it - await expect(page).toHaveScreenshot(); + + const visualStep = browserName === 'firefox' ? test.step.skip : test.step; + await visualStep('Verify scrolled list (Firefox scroll differs by a few pixels)', async () => { + await expect(page).toHaveScreenshot(); + }); }); test.describe('Sticky groups', () => { @@ -767,11 +701,7 @@ test.describe(`${TAG.VISUAL} `, () => { await page.keyboard.press('Enter'); await locators.item(page).nth(10).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await locators.item(page).nth(30).getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); + await expect(locators.item(page).nth(30)).toHaveClass(/highlighted/, { timeout: 1000 }); await expect(page).toHaveScreenshot({ maxDiffPixelRatio: 0.01 }); await page.keyboard.press('Tab'); @@ -787,6 +717,7 @@ test.describe(`${TAG.VISUAL} `, () => { test('Verify mouse interactions with menu with sticky groups', { tag: [TAG.PRIORITY_HIGH, + TAG.MOUSE, TAG.KEYBOARD, '@dropdown-menu', '@base-components', @@ -828,7 +759,7 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot({ maxDiffPixelRatio: 0.01 }); await locators.button(page).first().click(); - await expect(locators.item(page).nth(0)).not.toBeVisible(); + await expect(locators.item(page).nth(0)).toBeHidden(); }); }); @@ -887,7 +818,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.menu(page)).toBeVisible(); }); - await test.step('Verify non closed by click on the menu item', async () => { + await test.step('Verify not closed by click on the menu item', async () => { await locators.menuitem(page, 0).click(); await expect(locators.menu(page)).toBeVisible(); }); @@ -895,31 +826,31 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await test.step('Verify closes by trigger click', async () => { await locators.button(page, 'Actions').click(); await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); - await expect(locators.menu(page)).not.toBeVisible(); + await expect(locators.menu(page)).toBeHidden(); }); - await test.step('Verify closes by esc when opened by mouse ', async () => { + await test.step('Verify closes by Escape when opened by mouse', async () => { await locators.button(page, 'Actions').click(); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); await page.keyboard.press('Escape'); await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); - await expect(locators.menu(page)).not.toBeVisible(); + await expect(locators.menu(page)).toBeHidden(); await expect(locators.button(page, 'Actions')).toBeFocused(); }); - await test.step('Verify closes by click outside ', async () => { + await test.step('Verify closes by click outside', async () => { await locators.button(page, 'Actions').click(); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); await page.mouse.click(0, 0); await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); - await expect(locators.menu(page)).not.toBeVisible(); + await expect(locators.menu(page)).toBeHidden(); }); }); test('Verify keyboard interactions with Base dropdown menu', { tag: [TAG.PRIORITY_HIGH, - TAG.MOUSE, + TAG.KEYBOARD, '@dropdown-menu', '@button'], }, async ({ page }) => { @@ -935,7 +866,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await test.step('Verify closed by Escape', async () => { await page.keyboard.press('Escape'); await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); - await expect(locators.menu(page)).not.toBeVisible(); + await expect(locators.menu(page)).toBeHidden(); }); await test.step('Verify opens by Space', async () => { @@ -994,7 +925,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.menuitem(page, 0)).toBeFocused(); }); - await test.step('Verify cant switch to interactive element by arrows', async () => { + await test.step('Verify arrows do not move focus to interactive element', async () => { await page.keyboard.press('ArrowUp'); await expect(locators.menuitem(page, 2)).toBeFocused(); }); @@ -1014,7 +945,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page)).toBeFocused(); }); - await test.step('Verify closed by entered on the item and trigger is focused', async () => { + await test.step('Verify closed by Enter on the item and trigger is focused', async () => { await page.keyboard.press('Space'); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); await page.keyboard.press('ArrowDown'); @@ -1024,7 +955,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify Keyboard interaction when items with action buttons', { + test('Verify keyboard interaction when items with action buttons', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1047,12 +978,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await locators.menuitem(page, 0).getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); - + await expect(locators.menuitem(page, 0)).toHaveClass(/highlighted/, { timeout: 1000 }); await expect(locators.menuitem(page, 0)).toBeFocused(); }); @@ -1063,11 +989,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('ArrowDown'); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await locators.menuitem(page, 0).getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); + await expect(locators.menuitem(page, 0)).toHaveClass(/highlighted/, { timeout: 1000 }); await expect(locators.menuitem(page, 0)).toBeFocused(); }); @@ -1085,19 +1007,6 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(Trash).not.toBeFocused(); }); - // this shouldn't work (and don't work in real browsers - // await test.step('Verify focus switches by tab', async () => { - // await page.keyboard.press('Tab'); - // await expect(MathPlus).toBeFocused(); - // await page.getByText('Add new').waitFor({ state: 'visible' }); - // await page.keyboard.press('Escape'); - // await page.getByText('Add new').waitFor({ state: 'hidden' }); - // await page.keyboard.press('Escape'); - // await expect(locators.menuitem(page, 2)).toBeFocused(); - // await expect(MathPlus).not.toBeFocused(); - // await expect(Trash).not.toBeFocused(); - // }); - await test.step('Verify focus switches by ArrowRight', async () => { await page.keyboard.press('ArrowRight'); await expect(MathPlus).toBeFocused(); @@ -1120,12 +1029,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Verify submenu not expands automatically', async () => { - // Ensure focus is stable before moving to next item await expect(locators.menuitem(page, 2)).toBeFocused(); await page.keyboard.press('ArrowDown'); await expect(page.getByRole('menuitem', { name: 'Menu item 4' })).toBeFocused(); - await expect(page.getByText('Add')).not.toBeVisible(); + await expect(page.getByText('Add')).toBeHidden(); }); await test.step('Verify submenu expands by enter', async () => { @@ -1156,7 +1064,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify Keyboard interaction in nested menus with focusable elements', { + test('Verify keyboard interaction in nested menus with focusable elements', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1179,7 +1087,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page)).not.toBeFocused(); await expect(locators.menuitem(page, 0)).toBeFocused(); - await expect(SubItem1).not.toBeVisible(); + await expect(SubItem1).toBeHidden(); }); await test.step('Verify arrow navigation and submenu not expands by itself', async () => { @@ -1203,7 +1111,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(SubItem1).toBeFocused(); }); - await test.step('Verify submenu expanded by ArrowRight', async () => { + await test.step('Verify submenu expanded by ArrowRight', async () => { await page.keyboard.press('Escape'); await page.keyboard.press('ArrowRight'); await SubItem1.waitFor({ state: 'visible' }); @@ -1221,12 +1129,12 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(SubItem1).not.toBeFocused(); }); - await test.step('Verify closed by ESC', async () => { + await test.step('Verify closed by Escape', async () => { await page.keyboard.press('Escape'); await SubItem1.waitFor({ state: 'hidden' }); await expect(locators.menuitem(page, 2)).toBeFocused(); await page.keyboard.press('Escape'); - await locators.menuitem(page, 0).waitFor({ state: 'visible' }); + await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); await expect(locators.button(page)).toBeFocused(); }); }); @@ -1274,7 +1182,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify Keyboard interaction when On Visible controlled', { + test('Verify keyboard interaction when onVisibleChange controlled', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1282,22 +1190,26 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown-menu/tests/examples/on-visible-2nd.tsx', 'en'); - // 1st item focused when Menu expands - await page.keyboard.press('Tab'); - await expect(locators.button(page)).toBeFocused(); - await page.keyboard.press('Enter'); - await locators.menuitem(page, 0).waitFor({ state: 'visible' }); - await expect(locators.menuitem(page, 0)).toBeFocused(); + await test.step('Verify 1st item focused when menu expands', async () => { + await page.keyboard.press('Tab'); + await expect(locators.button(page)).toBeFocused(); + await page.keyboard.press('Enter'); + await locators.menuitem(page, 0).waitFor({ state: 'visible' }); + await expect(locators.menuitem(page, 0)).toBeFocused(); + }); - // 2nd item focused by 1st click on down - await page.keyboard.press('ArrowDown'); - await expect(locators.menuitem(page, 1)).toBeFocused(); + await test.step('Verify 2nd item focused by first ArrowDown', async () => { + await page.keyboard.press('ArrowDown'); + await expect(locators.menuitem(page, 1)).toBeFocused(); + }); - await page.keyboard.press('Escape'); - await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); + await test.step('Verify closed by Escape', async () => { + await page.keyboard.press('Escape'); + await locators.menuitem(page, 0).waitFor({ state: 'hidden' }); + }); }); - test('Verify mouse interaction when On Visible controlled', { + test('Verify mouse interaction when onVisibleChange controlled', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@dropdown-menu', @@ -1313,7 +1225,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.menu(page)).toHaveCount(0); }); - test('Verify Selectable radio keyboard interaction', { + test('Verify selectable radio keyboard interaction', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1330,13 +1242,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.menuitemradio(page, 0).waitFor({ state: 'visible' }); - - await expect.poll(async () => { - return await page.locator('[data-ui-name="DropdownMenu.Item"]').first().getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); - + await expect(locators.item(page).first()).toHaveClass(/highlighted/, { timeout: 1000 }); await expect(locators.menuitemradio(page, 0)).toBeFocused(); }); @@ -1346,9 +1252,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.menuitemradio(page, 0)).toHaveAttribute('tabindex', '0'); await expect(locators.menuitemradio(page, 0)).toHaveAttribute('aria-describedby'); - const count1 = await locators.menuitemradio(page).count(); - - for (let i = 1; i < count1; i++) { + const count = await locators.menuitemradio(page).count(); + expect(count).toBeGreaterThan(1); + for (let i = 1; i < count; i++) { await expect(locators.menuitemradio(page, i)).toHaveAttribute('aria-haspopup', 'true'); await expect(locators.menuitemradio(page, i)).toHaveAttribute('tabindex', '-1'); await expect(locators.menuitemradio(page, i)).toHaveAttribute('aria-describedby'); @@ -1361,11 +1267,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.menuitemradio(page, 0).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await page.locator('[data-ui-name="DropdownMenu.Item"]').first().getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); + await expect(locators.item(page).first()).toHaveClass(/highlighted/, { timeout: 1000 }); }); await test.step('Verify interactive item focused by right arrow', async () => { @@ -1376,7 +1278,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(deleteButton1).toHaveAttribute('role', 'menuitem'); }); - await test.step('Verify Left Arrow switches focus from interactive item to menu item', async () => { + await test.step('Verify ArrowLeft switches focus from interactive item to menu item', async () => { await page.keyboard.press('ArrowLeft'); await page.getByText('Delete item').waitFor({ state: 'hidden' }); await expect(deleteButton1).not.toBeFocused(); @@ -1398,7 +1300,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify Multiselect items keyboard interaction', { + test('Verify multiselect items keyboard interaction', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1431,7 +1333,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Space'); await expect(locators.menuitemcheckbox(page, 9)).toBeChecked(); await page.keyboard.press('Escape'); - await expect(locators.menuitemcheckbox(page, 9)).not.toBeVisible(); + await expect(locators.menuitemcheckbox(page, 9)).toBeHidden(); await expect(locators.button(page)).toBeFocused(); }); @@ -1444,7 +1346,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify Multiselect items mouse interaction', { + test('Verify multiselect items mouse interaction', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@dropdown-menu', @@ -1484,7 +1386,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); }); - test('Verify Items render in DD with Virtual scroll ', { + test('Verify items render in dropdown menu with virtual scroll', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1513,7 +1415,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(page.getByText('project 9').first()).toBeVisible(); }); - test('Verify Focus on input search when menu opened by keyboard ', { + test('Verify focus on input search when menu opened by keyboard', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown-menu', @@ -1531,7 +1433,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(page.getByRole('textbox')).toBeFocused(); }); - test('Verify Focus on input search when menu opened by mouse ', { + test('Verify focus on input search when menu opened by mouse', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@dropdown-menu', @@ -1611,10 +1513,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); - const count = await locators.menuitem(page).count(); - for (let i = 0; i < count; i++) { - await expect(locators.menuitem(page, i)).not.toBeFocused(); - } + await expectNoneFocused(locators.menuitem(page)); }); await test.step('Verify trigger is still focused', async () => { @@ -1697,10 +1596,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Verify no item is focused when all disabled', async () => { - const count = await locators.menuitemcheckbox(page).count(); - for (let i = 0; i < count; i++) { - await expect(locators.menuitemcheckbox(page, i)).not.toBeFocused(); - } + await expectNoneFocused(locators.menuitemcheckbox(page)); }); await test.step('Verify trigger is still focused', async () => { @@ -1730,10 +1626,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }); await test.step('Verify no item is focused when all disabled', async () => { - const count = await locators.menuitemradio(page).count(); - for (let i = 0; i < count; i++) { - await expect(locators.menuitemradio(page, i)).not.toBeFocused(); - } + await expectNoneFocused(locators.menuitemradio(page)); }); await test.step('Verify trigger is still focused', async () => { @@ -1743,10 +1636,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await test.step('Verify arrows do not focus disabled items', async () => { await page.keyboard.press('ArrowUp'); await page.keyboard.press('ArrowDown'); - const count = await locators.menuitemradio(page).count(); - for (let i = 0; i < count; i++) { - await expect(locators.menuitemradio(page, i)).not.toBeFocused(); - } + await expectNoneFocused(locators.menuitemradio(page)); await expect(locators.button(page)).toBeFocused(); }); }); @@ -1872,11 +1762,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page)).toBeFocused(); await page.keyboard.press('Enter'); await locators.menuitem(page, 0).waitFor({ state: 'visible' }); - await expect.poll(async () => { - return await locators.menuitem(page, 0).getAttribute('class'); - }, { - timeout: 1000, - }).toMatch(/highlighted/); + await expect(locators.menuitem(page, 0)).toHaveClass(/highlighted/, { timeout: 1000 }); }); await test.step('Verify navigate to nested menu item', async () => { diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png deleted file mode 100644 index e0cbaa9b74..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png deleted file mode 100644 index f127890686..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png deleted file mode 100644 index c6d6ac7aad..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png deleted file mode 100644 index 9d1edcb7e2..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png deleted file mode 100644 index 21eff0efae..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png deleted file mode 100644 index 7fee92e57f..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png deleted file mode 100644 index 855b320a5e..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png deleted file mode 100644 index 4409e69bf7..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png deleted file mode 100644 index bf05fbdc6e..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png deleted file mode 100644 index 999f61e95b..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png deleted file mode 100644 index d7491e9673..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png deleted file mode 100644 index 78677205b2..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-multiselect-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png deleted file mode 100644 index bf6d44c901..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png deleted file mode 100644 index 6e9b88a066..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png deleted file mode 100644 index e7f10a947d..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png deleted file mode 100644 index 4a9c357947..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png deleted file mode 100644 index 29517a50eb..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png deleted file mode 100644 index aabbd56128..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-l-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png deleted file mode 100644 index 7f9b304c57..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png deleted file mode 100644 index e292e2a112..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png deleted file mode 100644 index 8a38a8ede8..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-false-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png deleted file mode 100644 index a935bee96e..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png deleted file mode 100644 index 4043709357..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png b/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png deleted file mode 100644 index aa222a7728..0000000000 Binary files a/semcore/dropdown-menu/__tests__/dropdown-menu.browser-test.tsx-snapshots/-visual-Verify-selectable-radio-dropdown-with-size-m-disabledAll-false-stretch-fixed-visible-true-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.axe-test.tsx b/semcore/dropdown/__tests__/dropdown.axe-test.tsx index d0c2e8905d..7ae9025fd0 100644 --- a/semcore/dropdown/__tests__/dropdown.axe-test.tsx +++ b/semcore/dropdown/__tests__/dropdown.axe-test.tsx @@ -6,41 +6,33 @@ test.describe(`${TAG.ACCESSIBILITY} @dropdown`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/dropdown/docs/examples/basic_usage.tsx', 'en'); - // base check - { + await test.step('Verify closed dropdown', async () => { const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); - // opened dropdown check - { + await test.step('Verify opened dropdown', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); }); test('Focus interaction', async ({ page }) => { await loadPage(page, 'stories/components/dropdown/docs/examples/focus_interaction.tsx', 'en'); - // base check - { + await test.step('Verify closed dropdown', async () => { const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); - // opened dropdown check - { + await test.step('Verify dropdown opened on focus', async () => { await page.keyboard.press('Tab'); const violations = await getAccessibilityViolations({ page }); - expect(violations).toEqual([]); - } + }); }); }); diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx b/semcore/dropdown/__tests__/dropdown.browser-test.tsx index dd55f8b388..30b13dc6d0 100644 --- a/semcore/dropdown/__tests__/dropdown.browser-test.tsx +++ b/semcore/dropdown/__tests__/dropdown.browser-test.tsx @@ -4,7 +4,6 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -13,32 +12,19 @@ export const locators = { const base = page.getByRole('dialog'); return typeof index === 'number' ? base.nth(index) : base; }, - }; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { const variables = [ - { placement: 'auto', stretch: 'min' }, - { placement: 'top', stretch: 'min' }, { placement: 'bottom', stretch: 'min' }, - { placement: 'left', stretch: 'min' }, - { placement: 'right', stretch: 'min' }, - { placement: 'auto-start', stretch: 'fixed' }, - { placement: 'top-start', stretch: 'fixed' }, { placement: 'bottom-start', stretch: 'fixed' }, - { placement: 'left-start', stretch: 'fixed' }, - { placement: 'right-start', stretch: 'fixed' }, - { placement: 'auto-end', stretch: false }, - { placement: 'top-end', stretch: false }, { placement: 'bottom-end', stretch: false }, - { placement: 'left-end', stretch: false }, - { placement: 'right-end', stretch: false }, ]; variables.forEach((item) => { test(`Verify Dropdown when placement=${item.placement} and stretch=${item.stretch}`, { @@ -82,8 +68,8 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { - test('Verify keyboard interactios when interaction undefined', { +test.describe(`${TAG.FUNCTIONAL}`, () => { + test('Verify keyboard interactions when interaction undefined', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -92,39 +78,48 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown/docs/examples/basic_usage.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('ArrowUp'); - await page.keyboard.press('ArrowDown'); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); - - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); + await test.step('Verify arrows do not open popper', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('ArrowUp'); + await page.keyboard.press('ArrowDown'); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await page.keyboard.press('ArrowUp'); - await page.keyboard.press('ArrowDown'); - await expect(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toBeFocused(); + await test.step('Verify Enter opens popper and focus stays in it on arrows', async () => { + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await page.keyboard.press('ArrowUp'); + await page.keyboard.press('ArrowDown'); + await expect(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); + }); - await page.keyboard.press('Escape'); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify Escape closes popper and returns focus to trigger', async () => { + await page.keyboard.press('Escape'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + }); - await page.keyboard.press('Space'); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toBeFocused(); + await test.step('Verify Space opens popper and Tab keeps focus in it', async () => { + await page.keyboard.press('Space'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); - await page.keyboard.press('Tab'); - await expect(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toBeFocused(); + await page.keyboard.press('Tab'); + await expect(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); + }); - await locators.button(page).click(); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify trigger click closes popper', async () => { + await locators.button(page).click(); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.popper(page)).toHaveCount(0); + }); }); - test('Verify mouse interactios when interaction undefined', { + test('Verify mouse interactions when interaction undefined', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@dropdown', @@ -133,23 +128,28 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown/docs/examples/basic_usage.tsx', 'en'); - await locators.button(page).click(); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.button(page)).not.toBeFocused(); - - await locators.button(page).click(); - await locators.popper(page).waitFor({ state: 'hidden' }); + await test.step('Verify trigger click toggles popper', async () => { + await locators.button(page).click(); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.button(page)).not.toBeFocused(); - await locators.button(page).click(); - await locators.popper(page).waitFor({ state: 'visible' }); + await locators.button(page).click(); + await locators.popper(page).waitFor({ state: 'hidden' }); + }); - await locators.popper(page).click(); - await expect(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toBeVisible(); + await test.step('Verify click inside popper keeps it open', async () => { + await locators.button(page).click(); + await locators.popper(page).waitFor({ state: 'visible' }); + await locators.popper(page).click(); + await expect(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toBeVisible(); + }); - await page.keyboard.press('Escape'); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify Escape closes popper and returns focus to trigger', async () => { + await page.keyboard.press('Escape'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + }); }); test('Verify keyboard interaction when interaction = focus', { @@ -161,31 +161,39 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown/docs/examples/focus_interaction.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('ArrowUp'); - await page.keyboard.press('ArrowDown'); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toBeFocused(); + await test.step('Verify popper opens on trigger focus', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('ArrowUp'); + await page.keyboard.press('ArrowDown'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); + }); - await page.keyboard.press('Escape'); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify Escape closes popper and returns focus to trigger', async () => { + await page.keyboard.press('Escape'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await page.keyboard.press('Space'); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toBeFocused(); + await test.step('Verify Space reopens popper', async () => { + await page.keyboard.press('Space'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); + }); - await page.keyboard.press('Tab'); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).not.toBeFocused(); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify Tab returns focus to trigger and closes popper', async () => { + await page.keyboard.press('Tab'); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).not.toBeFocused(); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.popper(page)).toHaveCount(0); + }); }); - test('Verify mouse interaction when interaction = focus', { + test('Verify mouse interaction when interaction = focus', { tag: [TAG.PRIORITY_HIGH, TAG.MOUSE, '@dropdown', @@ -221,28 +229,35 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown/tests/examples/example-with-props.tsx', 'en', { interaction: 'hover' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('ArrowUp'); - await page.keyboard.press('ArrowDown'); - await locators.button(page, 'Export to PDF').waitFor({ state: 'visible' }); - await expect(locators.button(page).first()).not.toBeFocused(); - await expect(locators.button(page).nth(1)).not.toBeFocused(); - - await expect(locators.popper(page)).toBeFocused(); + await test.step('Verify popper opens on trigger focus', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('ArrowUp'); + await page.keyboard.press('ArrowDown'); + await locators.button(page, 'Export to PDF').waitFor({ state: 'visible' }); + await expect(locators.button(page).first()).not.toBeFocused(); + await expect(locators.button(page).nth(1)).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); + }); - await page.mouse.click(0, 0); - await locators.button(page, 'Export to PDF').waitFor({ state: 'hidden' }); - await expect.soft(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify click outside closes popper', async () => { + await page.mouse.click(0, 0); + await locators.button(page, 'Export to PDF').waitFor({ state: 'hidden' }); + await expect.soft(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await locators.button(page).hover(); - await locators.button(page, 'Export to PDF').waitFor({ state: 'visible' }); - await expect(locators.button(page).first()).not.toBeFocused(); - await expect(locators.popper(page)).toHaveCount(1); + await test.step('Verify popper opens on trigger hover', async () => { + await locators.button(page).hover(); + await locators.button(page, 'Export to PDF').waitFor({ state: 'visible' }); + await expect(locators.button(page).first()).not.toBeFocused(); + await expect(locators.popper(page)).toHaveCount(1); + }); - await page.keyboard.press('Escape'); - await locators.button(page, 'Export to PDF').waitFor({ state: 'hidden' }); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify Escape closes popper', async () => { + await page.keyboard.press('Escape'); + await locators.button(page, 'Export to PDF').waitFor({ state: 'hidden' }); + await expect(locators.popper(page)).toHaveCount(0); + }); }); test('Verify keyboard and mouse interaction when interaction = click', { @@ -258,43 +273,53 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown/tests/examples/example-with-props.tsx', 'en', { interaction: 'click' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('ArrowUp'); - await page.keyboard.press('ArrowDown'); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify arrows do not open popper', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('ArrowUp'); + await page.keyboard.press('ArrowDown'); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await page.keyboard.press('Space'); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.button(page).first()).not.toBeFocused(); - await expect(locators.popper(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(1); + await test.step('Verify Space opens popper and Escape closes it', async () => { + await page.keyboard.press('Space'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.button(page).first()).not.toBeFocused(); + await expect(locators.popper(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(1); - await page.keyboard.press('Escape'); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await page.keyboard.press('Escape'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); - await page.waitForTimeout(100); + await test.step('Verify Enter opens popper and click outside closes it', async () => { + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await page.waitForTimeout(100); - await page.mouse.click(0, 0); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect.soft(locators.button(page)).not.toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await page.mouse.click(0, 0); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect.soft(locators.button(page)).not.toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await locators.button(page).hover(); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify hover does not open popper', async () => { + await locators.button(page).hover(); + await expect(locators.popper(page)).toHaveCount(0); + }); - await locators.button(page).click(); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.popper(page)).toHaveCount(1); + await test.step('Verify click opens popper and Escape closes it', async () => { + await locators.button(page).click(); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.popper(page)).toHaveCount(1); - await page.keyboard.press('Escape'); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await page.keyboard.press('Escape'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); + }); }); test('Verify keyboard and mouse interaction when interaction = none', { @@ -422,37 +447,45 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/dropdown/tests/examples/example-with-props.tsx', 'en', { disableEnforceFocus: true }); - await page.keyboard.press('Tab'); - await page.keyboard.press('ArrowDown'); - await expect(locators.button(page)).toBeFocused(); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify Enter opens popper without moving focus into it', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('ArrowDown'); + await expect(locators.button(page)).toBeFocused(); + await expect(locators.popper(page)).toHaveCount(0); - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.popper(page)).toHaveCount(1); - await expect(locators.popper(page)).not.toBeFocused(); + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.popper(page)).toHaveCount(1); + await expect(locators.popper(page)).not.toBeFocused(); + }); - await page.keyboard.press('Escape'); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.popper(page)).toHaveCount(0); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify Escape closes popper and returns focus to trigger', async () => { + await page.keyboard.press('Escape'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.popper(page)).toHaveCount(0); + await expect(locators.button(page)).toBeFocused(); + }); - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await expect(locators.popper(page)).toHaveCount(1); - await expect(locators.popper(page)).not.toBeFocused(); - await expect(locators.button(page).first()).not.toBeFocused(); + await test.step('Verify Tab moves focus out of popper and popper stays open', async () => { + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await expect(locators.popper(page)).toHaveCount(1); + await expect(locators.popper(page)).not.toBeFocused(); + await expect(locators.button(page).first()).not.toBeFocused(); + }); - await locators.button(page).first().click(); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.popper(page)).toHaveCount(0); + await test.step('Verify trigger click toggles popper', async () => { + await locators.button(page).first().click(); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(locators.popper(page)).toHaveCount(0); - await locators.button(page).first().click(); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(locators.popper(page)).toHaveCount(1); + await locators.button(page).first().click(); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(locators.popper(page)).toHaveCount(1); + }); }); test('Verify dropdown when focusLoop = true', { @@ -483,7 +516,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.popper(page)).toBeFocused(); }); - test('Verify dropdown when disableEnforceFocus=false and autoFocus =true', { + test('Verify dropdown when disableEnforceFocus=false and autoFocus=true', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -510,7 +543,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.popper(page)).toBeFocused(); }); - test('Verify dropdown when disableEnforceFocus=true and autoFocus =true', { + test('Verify dropdown when disableEnforceFocus=true and autoFocus=true', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -537,7 +570,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.popper(page)).not.toBeFocused(); }); - test('Verify dropdown when disableEnforceFocus=false and autoFocus =false', { + test('Verify dropdown when disableEnforceFocus=false and autoFocus=false', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -585,12 +618,12 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.popper(page)).toBeFocused(); }); - await test.step('Verify Navigation bettwenn items', async () => { + await test.step('Verify Tab moves focus to the link inside popper', async () => { await page.keyboard.press('Tab'); await expect(page.getByRole('link', { name: 'set up first' })).toBeFocused(); }); - await test.step('Verify Closes by ESC', async () => { + await test.step('Verify closes by Escape', async () => { await page.keyboard.press('Escape'); await locators.popper(page).waitFor({ state: 'hidden' }); diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-chromium-linux.png deleted file mode 100644 index 733426d122..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-firefox-linux.png deleted file mode 100644 index 3183f3cfa8..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-webkit-linux.png deleted file mode 100644 index 8aef8e4140..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-and-stretch-min-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-chromium-linux.png deleted file mode 100644 index cfbe316e09..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-firefox-linux.png deleted file mode 100644 index aed2dea93e..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-webkit-linux.png deleted file mode 100644 index 279140d090..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-end-and-stretch-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-chromium-linux.png deleted file mode 100644 index 651ece75b7..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-firefox-linux.png deleted file mode 100644 index 51d7e872cf..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-webkit-linux.png deleted file mode 100644 index 1801500298..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-left-start-and-stretch-fixed-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-chromium-linux.png deleted file mode 100644 index 1da96ed6ed..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-firefox-linux.png deleted file mode 100644 index 0f3f1331e6..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-webkit-linux.png deleted file mode 100644 index 808312768e..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-and-stretch-min-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-chromium-linux.png deleted file mode 100644 index 8c40f31233..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-firefox-linux.png deleted file mode 100644 index 778b6218e2..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-webkit-linux.png deleted file mode 100644 index fe437dd708..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-end-and-stretch-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-chromium-linux.png deleted file mode 100644 index d8d3b8cdc2..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-firefox-linux.png deleted file mode 100644 index ef4d597255..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-webkit-linux.png deleted file mode 100644 index aec8af89c0..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-right-start-and-stretch-fixed-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-chromium-linux.png deleted file mode 100644 index 87f7592b60..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-firefox-linux.png deleted file mode 100644 index d1ad0db6b6..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-webkit-linux.png deleted file mode 100644 index c656e8a97a..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-and-stretch-min-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-chromium-linux.png deleted file mode 100644 index 8e4b2427c0..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-firefox-linux.png deleted file mode 100644 index cb7d993f9f..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-webkit-linux.png deleted file mode 100644 index c99986aabe..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-end-and-stretch-false-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-chromium-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-chromium-linux.png deleted file mode 100644 index 486421ec74..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-chromium-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-firefox-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-firefox-linux.png deleted file mode 100644 index 19594f25db..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-firefox-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-webkit-linux.png b/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-webkit-linux.png deleted file mode 100644 index 4bb188c934..0000000000 Binary files a/semcore/dropdown/__tests__/dropdown.browser-test.tsx-snapshots/-visual-Verify-Dropdown-when-placement-top-start-and-stretch-fixed-1-webkit-linux.png and /dev/null differ diff --git a/semcore/dropdown/__tests__/filters-with-dropdown/advanced-filters.browser-test.tsx b/semcore/dropdown/__tests__/filters-with-dropdown/advanced-filters.browser-test.tsx index 6050150771..944b92aee5 100644 --- a/semcore/dropdown/__tests__/filters-with-dropdown/advanced-filters.browser-test.tsx +++ b/semcore/dropdown/__tests__/filters-with-dropdown/advanced-filters.browser-test.tsx @@ -4,7 +4,6 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -13,7 +12,6 @@ export const locators = { const base = page.getByRole('dialog'); return typeof index === 'number' ? base.nth(index) : base; }, - trigger: (page: Page, index?: number) => { const base = page.getByRole('combobox'); return typeof index === 'number' ? base.nth(index) : base; @@ -23,13 +21,12 @@ export const locators = { input: (page: Page) => page.locator('[data-ui-name="Input.Value"]'), conditionLegend: (page: Page) => page.locator('legend'), conditionRow: (page: Page, index = 1) => page.getByRole('group', { name: `Condition #${index}` }).locator('..'), - }; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { test('Verify advanced filters visual', { tag: [TAG.PRIORITY_HIGH, '@dropdown', @@ -45,27 +42,35 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/patterns/filters/advanced-filters/docs/examples/filters-with-filter-conditions.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); - - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('a'); - await locators.button(page, 'Remove condition').waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.getByText('Remove condition').waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); - - await locators.button(page, 'Add condition').click(); - await locators.button(page, 'Add condition').click(); - await locators.button(page, 'Add condition').click(); - - await expect(page).toHaveScreenshot(); - await locators.button(page, 'Apply').click(); - await expect(page).toHaveScreenshot(); + await test.step('Verify opened dropdown with one condition', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); + + await test.step('Verify Remove condition button with hint after typing value', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('a'); + await locators.button(page, 'Remove condition').waitFor({ state: 'visible' }); + await page.keyboard.press('Tab'); + await page.getByText('Remove condition').waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); + + await test.step('Verify several conditions', async () => { + await locators.button(page, 'Add condition').click(); + await locators.button(page, 'Add condition').click(); + await locators.button(page, 'Add condition').click(); + await expect(page).toHaveScreenshot(); + }); + + await test.step('Verify trigger with counter after Apply', async () => { + await locators.button(page, 'Apply').click(); + await expect(page).toHaveScreenshot(); + }); }); }); @@ -74,8 +79,8 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { - test('Verify keyboard interactios', { +test.describe(`${TAG.FUNCTIONAL}`, () => { + test('Verify keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -150,7 +155,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }); await test.step('Verify hint on close button and trigger keyboard navigation', async () => { await page.keyboard.press('Tab'); - await expect(locators.button(page, 'Clear advanced filters ')).toBeFocused(); + await expect(locators.button(page, 'Clear advanced filters')).toBeFocused(); await page.getByText('Clear advanced filters').waitFor({ state: 'visible' }); await page.keyboard.press('Escape'); await page.getByText('Clear advanced filters').waitFor({ state: 'hidden' }); @@ -187,7 +192,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.button(page, 'Apply').waitFor({ state: 'visible' }); await expect(page.getByLabel('Rule')).toBeFocused(); - await expect(locators.button(page, 'Clear all')).not.toBeHidden(); + await expect(locators.button(page, 'Clear all')).toBeVisible(); await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); @@ -223,7 +228,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.keyboard.press('Space'); await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(locators.counter(page)).not.toBeVisible(); + await expect(locators.counter(page)).toBeHidden(); }); await test.step('Verify counter removed when Clear All pressed', async () => { await page.keyboard.press('Space'); @@ -270,7 +275,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/patterns/filters/advanced-filters/docs/examples/filters-with-filter-conditions.tsx', 'en'); - await test.step('Verify no remove and clear all bths when dropdown just opened', async () => { + await test.step('Verify no Remove condition and Clear all buttons when dropdown just opened', async () => { await locators.trigger(page, 0).click(); await locators.button(page, 'Apply').waitFor({ state: 'visible' }); await expect(locators.conditionLegend(page)).toHaveCount(1); @@ -285,7 +290,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.getByRole('option').nth(1).waitFor({ state: 'hidden' }); await locators.input(page).fill('a'); await locators.button(page, 'Remove condition').waitFor({ state: 'visible' }); - await locators.button(page, 'Remove condition').hover(); ; + await locators.button(page, 'Remove condition').hover(); await page.getByText('Remove condition').waitFor({ state: 'visible' }); await expect(locators.button(page, 'Remove condition')).toHaveCount(1); }); @@ -296,15 +301,13 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.counter(page)).toHaveText('1 applied'); }); - await test.step('Verify hint on hover close button ', async () => { + await test.step('Verify hint on hover close button', async () => { await page.getByLabel('Clear advanced filters').hover(); await page.getByText('Clear advanced filters').waitFor({ state: 'visible' }); - // await page.keyboard.press('Escape'); - // await expect(page.getByText('Clear')).not.toBeVisible(); await expect(page.getByText('Clear advanced filters')).toHaveCount(1); }); - await test.step('Verify Adding multiple items', async () => { + await test.step('Verify adding multiple items', async () => { await locators.trigger(page, 0).click(); await locators.popper(page).waitFor({ state: 'visible' }); @@ -319,7 +322,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.counter(page)).toHaveText('4 applied'); }); - await test.step('Verify items doesnt add when add new and click on trigger', async () => { + await test.step('Verify new item is not applied when dropdown closed by trigger click', async () => { await locators.trigger(page, 0).click(); await locators.button(page, 'Apply').waitFor({ state: 'visible' }); await locators.button(page, 'Add condition').click(); @@ -329,7 +332,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.counter(page)).toHaveText('4 applied'); }); - await test.step('Verify Removing one item', async () => { + await test.step('Verify removing one item', async () => { await locators.trigger(page, 0).click(); await locators.button(page, 'Apply').waitFor({ state: 'visible' }); await page.getByLabel('Remove condition').nth(2).click(); @@ -345,7 +348,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.counter(page)).toHaveText('3 applied'); await locators.button(page, 'Apply').click(); await locators.button(page, 'Apply').waitFor({ state: 'hidden' }); - await expect(locators.counter(page)).not.toBeVisible(); + await expect(locators.counter(page)).toBeHidden(); }); }); }); diff --git a/semcore/dropdown/__tests__/filters-with-dropdown/competitive-density.browser-test.tsx b/semcore/dropdown/__tests__/filters-with-dropdown/competitive-density.browser-test.tsx index 3028563318..9577a98f20 100644 --- a/semcore/dropdown/__tests__/filters-with-dropdown/competitive-density.browser-test.tsx +++ b/semcore/dropdown/__tests__/filters-with-dropdown/competitive-density.browser-test.tsx @@ -1,11 +1,9 @@ -import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand'; import type { Page } from '@semcore/testing-utils/playwright'; import { expect, test } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -14,31 +12,22 @@ export const locators = { const base = page.getByRole('dialog'); return typeof index === 'number' ? base.nth(index) : base; }, - trigger: (page: Page, index?: number) => { const base = page.getByRole('combobox'); return typeof index === 'number' ? base.nth(index) : base; }, - - checkbox: (page: Page, index?: number) => { - const base = page.getByRole('radio'); - return typeof index === 'number' ? base.nth(index) : base; - }, textbox: (page: Page, index?: number) => { const base = page.getByRole('textbox'); return typeof index === 'number' ? base.nth(index) : base; }, triggerText: (page: Page) => page.locator('[data-ui-name="FilterTrigger.TriggerButton"]'), - input: (page: Page) => page.locator('[data-ui-name="Input.Value"]'), - conditionLegend: (page: Page) => page.locator('legend'), - }; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { test('Verify Competitive density pattern', { tag: [TAG.PRIORITY_HIGH, '@dropdown', @@ -49,25 +38,29 @@ test.describe(`${TAG.VISUAL} `, () => { '@filter-trigger', '@flex-box', '@typography'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/patterns/filters/filter-custom-range/docs/examples/basic-example.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); - - await expect(page).toHaveScreenshot(); - - await page.keyboard.press('1'); - await page.keyboard.press('Tab'); - await page.keyboard.press('5'); - await page.keyboard.press('Tab'); - await expect(page).toHaveScreenshot(); + await test.step('Verify opened dropdown', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); - await page.keyboard.press('Enter'); + await test.step('Verify filled range with focused Apply', async () => { + await page.keyboard.press('1'); + await page.keyboard.press('Tab'); + await page.keyboard.press('5'); + await page.keyboard.press('Tab'); + await expect(page).toHaveScreenshot(); + }); - await locators.popper(page).waitFor({ state: 'hidden' }); - await expect(page).toHaveScreenshot(); + await test.step('Verify trigger with applied range', async () => { + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'hidden' }); + await expect(page).toHaveScreenshot(); + }); }); }); @@ -76,8 +69,8 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { - test('Verify keyboard interactios', { +test.describe(`${TAG.FUNCTIONAL}`, () => { + test('Verify keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -88,7 +81,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@filter-trigger', '@flex-box', '@typography'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/patterns/filters/filter-custom-range/docs/examples/basic-example.tsx', 'en'); await test.step('Verify 1st textbox focused when dropdown opened', async () => { @@ -114,7 +107,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.button(page, 'Apply')).toBeFocused(); }); - await test.step('Verify counter in trigger not added when textbox filled and ESC pressed', async () => { + await test.step('Verify trigger text not changed when Escape pressed', async () => { await page.keyboard.press('Escape'); await locators.popper(page).waitFor({ state: 'hidden' }); @@ -123,7 +116,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.triggerText(page)).toContainText('Competitive Density'); }); - await test.step('Verify counter in trigger added when textbox filled and Apply pressed', async () => { + await test.step('Verify trigger text updated when Apply pressed', async () => { await page.keyboard.press('Enter'); await locators.button(page, 'Apply').waitFor({ state: 'visible' }); await page.keyboard.press('Tab'); @@ -144,7 +137,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.getByText('Clear').waitFor({ state: 'hidden' }); }); - await test.step('Verify Clear all clears textbox', async () => { + await test.step('Verify Clear button resets trigger text', async () => { await page.keyboard.press('Space'); await expect(locators.triggerText(page)).toContainText('Competitive Density'); @@ -162,7 +155,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@filter-trigger', '@flex-box', '@typography'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/patterns/filters/filter-custom-range/docs/examples/basic-example.tsx', 'en'); await test.step('Verify 1st textbox focused when dropdown opened', async () => { @@ -175,7 +168,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.trigger(page).click(); await locators.button(page, 'Apply').waitFor({ state: 'hidden' }); await expect(locators.triggerText(page)).toContainText('Competitive Density'); - await expect(locators.button(page, 'Clear')).not.toBeVisible(); + await expect(locators.button(page, 'Clear')).toBeHidden(); }); await test.step('Verify trigger text updated when pressing apply', async () => { @@ -188,7 +181,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.button(page, 'Clear')).toBeVisible(); }); - await test.step('Verify Hint on hover Clear', async () => { + await test.step('Verify hint on hover Clear', async () => { await locators.button(page, 'Clear').hover(); await page.getByText('Clear').waitFor({ state: 'visible' }); await expect(page.getByText('Clear')).toHaveCount(1); diff --git a/semcore/dropdown/__tests__/filters-with-dropdown/filter-include-exclude.browser-test.tsx b/semcore/dropdown/__tests__/filters-with-dropdown/filter-include-exclude.browser-test.tsx index 0ff8a05ff6..65aec9a9f1 100644 --- a/semcore/dropdown/__tests__/filters-with-dropdown/filter-include-exclude.browser-test.tsx +++ b/semcore/dropdown/__tests__/filters-with-dropdown/filter-include-exclude.browser-test.tsx @@ -1,11 +1,9 @@ -import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand'; import type { Page } from '@semcore/testing-utils/playwright'; import { expect, test } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -14,13 +12,11 @@ export const locators = { const base = page.getByRole('dialog'); return typeof index === 'number' ? base.nth(index) : base; }, - trigger: (page: Page, index?: number) => { const base = page.getByRole('combobox'); return typeof index === 'number' ? base.nth(index) : base; }, - - checkbox: (page: Page, index?: number) => { + radio: (page: Page, index?: number) => { const base = page.getByRole('radio'); return typeof index === 'number' ? base.nth(index) : base; }, @@ -29,16 +25,13 @@ export const locators = { return typeof index === 'number' ? base.nth(index) : base; }, triggerText: (page: Page) => page.locator('[data-ui-name="FilterTrigger.TriggerButton"]'), - input: (page: Page) => page.locator('[data-ui-name="Input.Value"]'), - conditionLegend: (page: Page) => page.locator('legend'), - }; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { test('Verify Filters include exclude', { tag: [TAG.PRIORITY_HIGH, '@dropdown', @@ -51,25 +44,26 @@ test.describe(`${TAG.VISUAL} `, () => { '@textarea', '@typography'], }, async ({ page, browserName }) => { + test.skip(browserName !== 'chromium', 'Focus on radio is unstable in Firefox and WebKit'); await loadPage(page, 'stories/patterns/filters/filter-include-exclude/docs/examples/basic-example.tsx', 'en'); - if (browserName !== 'chromium') return; // the focus on radio works unstable so skipped for firefox and webkit - - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.popper(page).waitFor({ state: 'visible' }); - - await expect(page).toHaveScreenshot(); - - await locators.textbox(page).fill('test'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); + await test.step('Verify opened dropdown', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); - await locators.popper(page).waitFor({ state: 'hidden' }); + await test.step('Verify applied trigger with Clear hint', async () => { + await locators.textbox(page).fill('test'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.popper(page).waitFor({ state: 'hidden' }); - await page.keyboard.press('Tab'); - await page.getByText('Clear').waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); + await page.keyboard.press('Tab'); + await page.getByText('Clear').waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); }); }); @@ -78,8 +72,8 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { - test('Verify keyboard interactios', { +test.describe(`${TAG.FUNCTIONAL}`, () => { + test('Verify keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@dropdown', @@ -92,10 +86,9 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@textarea', '@typography'], }, async ({ page, browserName }) => { + test.skip(browserName !== 'chromium', 'Incorrect initial focus in Firefox and WebKit (known issue)'); await loadPage(page, 'stories/patterns/filters/filter-include-exclude/docs/examples/basic-example.tsx', 'en'); - if (browserName !== 'chromium') return; // because incorrect initial focus on webkit and ff(known issue) - await test.step('Verify textbox focused when dropdown opened', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); @@ -110,20 +103,20 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.button(page, 'Clear all')).toBeFocused(); await page.keyboard.press('Tab'); - await expect(locators.checkbox(page, 0)).toBeFocused(); + await expect(locators.radio(page, 0)).toBeFocused(); await page.keyboard.press('Tab'); await expect(locators.textbox(page)).toBeFocused(); await page.keyboard.press('Shift+Tab'); - await expect(locators.checkbox(page, 0)).toBeFocused(); + await expect(locators.radio(page, 0)).toBeFocused(); await page.keyboard.press('ArrowRight'); - await expect(locators.checkbox(page, 1)).toBeFocused(); + await expect(locators.radio(page, 1)).toBeFocused(); await page.keyboard.press('Shift+Tab'); await expect(locators.button(page, 'Clear all')).toBeFocused(); await page.keyboard.press('Shift+Tab'); await expect(locators.button(page, 'Apply')).toBeFocused(); }); - await test.step('Verify counter in trigger not added when textbox filled and ESC pressed', async () => { + await test.step('Verify trigger text not changed when Escape pressed', async () => { await page.keyboard.press('Shift+Tab'); await expect(locators.textbox(page)).toBeFocused(); await page.keyboard.type('test'); @@ -133,7 +126,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.triggerText(page)).toContainText('Include keywords'); }); - await test.step('Verify counter in trigger added when textbox filled and Apply pressed', async () => { + await test.step('Verify trigger text updated when Apply pressed', async () => { await page.keyboard.press('Enter'); await locators.button(page, 'Apply').waitFor({ state: 'visible' }); await expect(locators.textbox(page)).toBeFocused(); @@ -155,7 +148,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.keyboard.press('Shift+Tab'); }); - await test.step('Verify Clear all clears textbox', async () => { + await test.step('Verify Clear all does not change trigger before Apply', async () => { await page.keyboard.press('Space'); await locators.popper(page).waitFor({ state: 'visible' }); await expect(locators.textbox(page)).toBeFocused(); @@ -194,7 +187,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@radio', '@textarea', '@typography'], - }, async ({ page, browserName }) => { + }, async ({ page }) => { await loadPage(page, 'stories/patterns/filters/filter-include-exclude/docs/examples/basic-example.tsx', 'en'); await test.step('Verify trigger text not updated when entering text in textbox', async () => { @@ -208,7 +201,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.trigger(page).click(); await locators.button(page, 'Apply').waitFor({ state: 'hidden' }); await expect(locators.triggerText(page)).toHaveText('Include keywords'); - await expect(locators.button(page, 'Clear')).not.toBeVisible(); + await expect(locators.button(page, 'Clear')).toBeHidden(); }); await test.step('Verify trigger text updated when pressing apply', async () => { @@ -221,7 +214,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.button(page, 'Clear')).toBeVisible(); }); - await test.step('Verify Hint on hover Clear', async () => { + await test.step('Verify hint on hover Clear', async () => { await locators.button(page, 'Clear').hover(); await page.getByText('Clear').waitFor({ state: 'visible' }); await expect(page.getByText('Clear')).toHaveCount(1); @@ -239,7 +232,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.button(page, 'Apply').click(); await locators.button(page, 'Apply').waitFor({ state: 'hidden' }); await expect(locators.triggerText(page)).toHaveText('Include keywords'); - await expect(locators.button(page, 'Clear')).not.toBeVisible(); + await expect(locators.button(page, 'Clear')).toBeHidden(); }); }); }); diff --git a/semcore/dropdown/__tests__/index.test.tsx b/semcore/dropdown/__tests__/index.test.tsx index 2d1d41d772..5751bc1682 100644 --- a/semcore/dropdown/__tests__/index.test.tsx +++ b/semcore/dropdown/__tests__/index.test.tsx @@ -29,21 +29,21 @@ describe('Dropdown.StatusItem', () => { expect(status).toHaveAttribute('id', 'search-result'); }); - test('Verify renders screen reader result count', () => { + test('Verify renders screen reader result count', async () => { render(); - waitFor(() => { - const status = screen.getByRole('status', { name: '2 results found' }); - expect(status).toBeInTheDocument(); - expect(status).toHaveAttribute('aria-live', 'polite'); + const status = screen.getByRole('status'); + expect(status).toHaveAttribute('aria-live', 'polite'); + await waitFor(() => { + expect(status.textContent).toContain('2 results found'); }); }); - test('Verify renders singular result count', () => { + test('Verify renders singular result count', async () => { render(); - waitFor(() => { - expect(screen.getByRole('status', { name: '1 result found' })).toBeInTheDocument(); + await waitFor(() => { + expect(screen.getByRole('status').textContent).toContain('1 result found'); }); }); diff --git a/semcore/ellipsis/__tests__/ellipsis.browser-test.tsx b/semcore/ellipsis/__tests__/ellipsis.browser-test.tsx index 77b52a036e..25004ae94e 100644 --- a/semcore/ellipsis/__tests__/ellipsis.browser-test.tsx +++ b/semcore/ellipsis/__tests__/ellipsis.browser-test.tsx @@ -131,7 +131,8 @@ test.describe(`${TAG.VISUAL} `, () => { TAG.MOUSE, '@ellipsis', '@data-table', - '@link'], + '@link', + '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/ellipsis/test/examples/in_table_with_link.tsx', 'en', item); diff --git a/semcore/errors/__tests__/errors.axe-test.ts b/semcore/errors/__tests__/errors.axe-test.ts index d7c21b65ac..15faa98049 100644 --- a/semcore/errors/__tests__/errors.axe-test.ts +++ b/semcore/errors/__tests__/errors.axe-test.ts @@ -1,9 +1,8 @@ -import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand'; import { expect, test, getAccessibilityViolations } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -test.describe(`@errors ${TAG.ACCESSIBILITY} `, () => { +test.describe(`@errors ${TAG.ACCESSIBILITY}`, () => { test('Custom error', async ({ page }) => { await loadPage(page, 'stories/components/errors/docs/examples/custom-error.tsx', 'en'); @@ -11,6 +10,7 @@ test.describe(`@errors ${TAG.ACCESSIBILITY} `, () => { expect(violations).toEqual([]); }); + test('Templates', async ({ page }) => { await loadPage(page, 'stories/components/errors/docs/examples/templates.tsx', 'en'); diff --git a/semcore/errors/__tests__/errors.browser-test.tsx b/semcore/errors/__tests__/errors.browser-test.tsx index d5125fa0fb..a72638f5b8 100644 --- a/semcore/errors/__tests__/errors.browser-test.tsx +++ b/semcore/errors/__tests__/errors.browser-test.tsx @@ -7,13 +7,15 @@ import { TAG } from '@semcore/testing-utils/shared/tags'; Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ test.describe(`${TAG.VISUAL} `, () => { - async function expectScreenshotOf(page: Page, locator: Locator, name?: string) { + async function expectScreenshotOf(page: Page, locator: Locator, name: string) { const box = await locator.boundingBox(); if (!box) throw new Error('Element not found or not visible'); await expect(page).toHaveScreenshot(`${name}.png`, { clip: box }); } - test('Veriry error templates', { + const templates = ['AccessDenied', 'Maintenance', 'PageNotFound', 'ProjectNotFound', 'PageError']; + + test('Verify error templates', { tag: [TAG.PRIORITY_HIGH, '@errors', '@button'], @@ -21,14 +23,14 @@ test.describe(`${TAG.VISUAL} `, () => { await loadPage(page, 'stories/components/errors/docs/examples/templates.tsx', 'en'); await page.setViewportSize({ width: 1280, height: 2500 }); - await expectScreenshotOf(page, page.locator('[data-ui-name="AccessDenied"]'), 'AccessDenied'); - await expectScreenshotOf(page, page.locator('[data-ui-name="Maintenance"]'), 'Maintenance'); - await expectScreenshotOf(page, page.locator('[data-ui-name="PageNotFound"]'), 'PageNotFound'); - await expectScreenshotOf(page, page.locator('[data-ui-name="ProjectNotFound"]'), 'ProjectNotFound'); - await expectScreenshotOf(page, page.locator('[data-ui-name="PageError"]'), 'PageError'); + for (const template of templates) { + await test.step(`Verify ${template}`, async () => { + await expectScreenshotOf(page, page.locator(`[data-ui-name="${template}"]`), template); + }); + } }); - test('Veriry error templates when screen width is 648px', { + test('Verify error templates when screen width is 648px', { tag: [TAG.PRIORITY_HIGH, '@errors', '@button'], @@ -36,14 +38,14 @@ test.describe(`${TAG.VISUAL} `, () => { await loadPage(page, 'stories/components/errors/docs/examples/templates.tsx', 'en'); await page.setViewportSize({ width: 648, height: 2700 }); - await expectScreenshotOf(page, page.locator('[data-ui-name="AccessDenied"]'), 'AccessDenied648px'); - await expectScreenshotOf(page, page.locator('[data-ui-name="Maintenance"]'), 'Maintenance648px'); - await expectScreenshotOf(page, page.locator('[data-ui-name="PageNotFound"]'), 'PageNotFound648px'); - await expectScreenshotOf(page, page.locator('[data-ui-name="ProjectNotFound"]'), 'ProjectNotFound648px'); - await expectScreenshotOf(page, page.locator('[data-ui-name="PageError"]'), 'PageError648px'); + for (const template of templates) { + await test.step(`Verify ${template}`, async () => { + await expectScreenshotOf(page, page.locator(`[data-ui-name="${template}"]`), `${template}648px`); + }); + } }); - test('Veriry custom error states', { + test('Verify custom error states', { tag: [TAG.PRIORITY_HIGH, '@errors', '@button', @@ -51,15 +53,21 @@ test.describe(`${TAG.VISUAL} `, () => { '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/errors/tests/examples/custom-error-cases.tsx', 'en'); - await page.setViewportSize({ width: 1280, height: 2500 }); - await expectScreenshotOf(page, page.locator('[data-testid="title-description"]'), 'Custom-title-description'); - await expectScreenshotOf(page, page.locator('[data-testid="icon-title-controls"]'), 'Custom-icon-title-controls'); - await expectScreenshotOf(page, page.locator('[data-testid="description-controls"]'), 'Custom-description-controls'); - await expectScreenshotOf(page, page.locator('[data-testid="icon-title-description"]'), 'Custom-icon-title-description'); - await expectScreenshotOf(page, page.locator('[data-testid="title-description-controls"]'), 'Custom-title-description-controls'); - await expectScreenshotOf(page, page.locator('[data-testid="icon-title-description-controls"]'), 'Custom-icon-title-description-controls'); + const cases = [ + 'title-description', + 'icon-title-controls', + 'description-controls', + 'icon-title-description', + 'title-description-controls', + 'icon-title-description-controls', + ]; + for (const testId of cases) { + await test.step(`Verify ${testId}`, async () => { + await expectScreenshotOf(page, page.getByTestId(testId), `Custom-${testId}`); + }); + } }); }); @@ -68,7 +76,10 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { + const templatesWithHomeLink = ['AccessDenied', 'Maintenance', 'PageNotFound']; + const templates = [...templatesWithHomeLink, 'ProjectNotFound', 'PageError']; + const variables = [ { titleTag: 'h1', homeLink: 'test1' }, { titleTag: 'h2', homeLink: 'test1' }, @@ -78,47 +89,33 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { { titleTag: 'p', homeLink: undefined }, ]; variables.forEach((item) => { - test(`Verify Errors with titleTag=${item.titleTag} homeLink= ${item.homeLink}`, { + test(`Verify Errors with titleTag=${item.titleTag} homeLink=${item.homeLink}`, { tag: [TAG.PRIORITY_HIGH, '@errors', '@button'], }, async ({ page }) => { await loadPage(page, 'stories/components/errors/docs/examples/templates.tsx', 'en', item); - const errorBlocks = [ - page.locator('[data-ui-name="AccessDenied"]'), - page.locator('[data-ui-name="Maintenance"]'), - page.locator('[data-ui-name="PageNotFound"]'), - page.locator('[data-ui-name="ProjectNotFound"]'), - page.locator('[data-ui-name="PageError"]'), - ]; - - for (let i = 0; i < errorBlocks.length; i++) { - const block = errorBlocks[i]; + for (const template of templates) { + const block = page.locator(`[data-ui-name="${template}"]`); const title = block.locator('[data-ui-name="Error.Title"]'); - await expect(title).toBeVisible(); - - const tagName = await title.evaluate((el) => el.tagName.toLowerCase()); - expect(tagName).toBe(item.titleTag); + await test.step(`Verify ${template} title is <${item.titleTag}>`, async () => { + await expect(title).toBeVisible(); + await expect(title).toHaveJSProperty('tagName', item.titleTag.toUpperCase()); - if (/^h[1-6]$/.test(item.titleTag)) { - const level = Number(item.titleTag[1]); - const text = (await title.textContent()) ?? ''; - await expect(block.getByRole('heading', { level })).toHaveText(text); - } else if (item.titleTag === 'p') { - expect(tagName).toBe('p'); - const role = await title.getAttribute('role'); - expect(role).not.toBe('heading'); - } - - if (i <= 2) { - const homepageLink = block.getByRole('link', { name: 'Go to homepage' }); - if (item.homeLink) { - await expect(homepageLink).toHaveAttribute('href', item.homeLink); + if (item.titleTag === 'p') { + await expect(title).not.toHaveAttribute('role', 'heading'); } else { - await expect(homepageLink).toHaveAttribute('href', '/'); + const level = Number(item.titleTag[1]); + await expect(block.getByRole('heading', { level })).toHaveText((await title.textContent()) ?? ''); } + }); + + if (templatesWithHomeLink.includes(template)) { + await test.step(`Verify ${template} homepage link`, async () => { + await expect(block.getByRole('link', { name: 'Go to homepage' })).toHaveAttribute('href', item.homeLink ?? '/'); + }); } } }); @@ -137,18 +134,8 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/errors/docs/examples/templates.tsx', 'en', item); - const maintenance = page.locator('[data-ui-name="Maintenance"]').nth(0); - const title = maintenance.locator('[data-ui-name="Error.Title"]'); - - await expect(title).toBeVisible(); - - const text = await title.textContent(); - - if (item.toolName) { - expect(text).toContain(item.toolName); - } else { - expect(text).toContain('Intergalactic'); - } + const title = page.locator('[data-ui-name="Maintenance"]').locator('[data-ui-name="Error.Title"]'); + await expect(title).toContainText(item.toolName ?? 'Intergalactic'); }); }); @@ -157,7 +144,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { { projectsLink: 'projectsLink', contactsLink: 'contactLink', supportTeamLink: 'supportTeamLink' }, ]; projectNotFound.forEach((item) => { - test(`Verify projectNotFound with projectsLink=${item.projectsLink} contactLink=${item.contactsLink} supportTeamLink=${item.supportTeamLink}`, { + test(`Verify projectNotFound with projectsLink=${item.projectsLink} contactLink=${item.contactsLink} supportTeamLink=${item.supportTeamLink}`, { tag: [TAG.PRIORITY_HIGH, '@errors', '@button'], @@ -168,27 +155,9 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { const controls = projectNotFoundBlock.locator('[data-ui-name="Error.Controls"]'); const description = projectNotFoundBlock.locator('[data-ui-name="Error.Description"]'); - const projects = controls.getByRole('link').nth(0); - const contact = controls.getByRole('link').nth(1); - const supportTeam = description.locator('a'); - - if (item.projectsLink) { - await expect(projects).toHaveAttribute('href', item.projectsLink); - } else { - await expect(projects).toHaveAttribute('href', '/projects'); - } - - if (item.contactsLink) { - await expect(contact).toHaveAttribute('href', item.contactsLink); - } else { - await expect(contact).toHaveAttribute('href', '/company/contacts'); - } - - if (item.supportTeamLink) { - await expect(supportTeam).toHaveAttribute('href', item.supportTeamLink); - } else { - await expect(supportTeam).toHaveAttribute('href', '/company/contacts'); - } + await expect(controls.getByRole('link').nth(0)).toHaveAttribute('href', item.projectsLink ?? '/projects'); + await expect(controls.getByRole('link').nth(1)).toHaveAttribute('href', item.contactsLink ?? '/company/contacts'); + await expect(description.locator('a')).toHaveAttribute('href', item.supportTeamLink ?? '/company/contacts'); }); }); }); diff --git a/semcore/feature-highlight/__tests__/feature-highlight.axe-test.ts b/semcore/feature-highlight/__tests__/feature-highlight.axe-test.ts index b3a635db1e..5450079604 100644 --- a/semcore/feature-highlight/__tests__/feature-highlight.axe-test.ts +++ b/semcore/feature-highlight/__tests__/feature-highlight.axe-test.ts @@ -66,7 +66,7 @@ test.describe(`@feature-highlight ${TAG.ACCESSIBILITY}`, () => { expect(violations).toEqual([]); }); - test('Verify Select has no Axe issues in closed state', async ({ page }) => { + test('Verify Select has no Axe issues', async ({ page }) => { await loadPage(page, 'stories/components/feature-highlight/docs/examples/select.tsx', 'en'); await test.step('Verify closed state', async () => { diff --git a/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx b/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx index f990a3e6b7..8741e99ca2 100644 --- a/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx +++ b/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx @@ -62,21 +62,16 @@ const expectNoFeatureHighlightFocusOutline = async ( export const locators = { buttons: (page: Page) => page.locator('[data-ui-name="ButtonFH"]'), pills: (page: Page) => page.getByRole('radio'), - pillHighlightedItem: (page: Page) => page.locator('[data-ui-name="HighlightedItem.Addon"]'), select: (page: Page) => page.getByRole('combobox'), selectOptions: (page: Page) => page.getByRole('option'), input: (page: Page) => page.getByRole('textbox'), inputOutline: (page: Page) => page.locator('[class*="SOutline"]'), - switch: (page: Page) => page.locator('[data-ui-name="SwitchFH"]'), // The focus outline is painted on the toggle that wraps the switch input. switchToggle: (page: Page) => page.locator('[class*="SToggle"]').first(), - radioGroup: (page: Page) => page.locator('[data-ui-name="RadioGroup"]'), radioMark: (page: Page) => page.locator('[data-ui-name="Value.RadioMark"]'), - checkbox: (page: Page) => page.locator('[data-ui-name="CheckboxFH"]'), checkboxMark: (page: Page) => page.locator('[data-ui-name="Value.CheckMark"]'), notice: (page: Page) => page.locator('[data-ui-name="NoticeFH"]'), dataTable: (page: Page) => page.locator('[role="grid"]'), - tablist: (page: Page) => page.getByRole('tablist'), tabs: (page: Page) => page.getByRole('tab'), }; @@ -86,8 +81,8 @@ Visual states, hover and focus styles. ===================================================== */ test.describe(`${TAG.VISUAL} `, () => { test.describe(`BadgeFH`, () => { - test(`Verify BasgeFH Visual`, { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@feature-highlight', '@pills'], + test(`Verify BadgeFH Visual`, { + tag: [TAG.PRIORITY_HIGH, '@feature-highlight', '@badge'], }, async ({ page }) => { await loadPage(page, 'stories/components/feature-highlight/docs/examples/badge.tsx', 'en'); await expect(page).toHaveScreenshot(); @@ -119,25 +114,25 @@ test.describe(`${TAG.VISUAL} `, () => { await loadPage(page, 'stories/components/feature-highlight/tests/examples/button.tsx', 'en', item); const button = locators.buttons(page); - await expect(page).toHaveScreenshot(); + const interactive = !item.disabled && !item.loading; + const focusStep = interactive ? test.step : test.step.skip; + const hoverStep = interactive && !item.active && browserName !== 'firefox' ? test.step : test.step.skip; - if (!item.disabled && !item.loading) { - await test.step('Verify focus style for buttons', async () => { - await page.keyboard.press('Tab'); + await test.step('Verify default styles', async () => { + await expect(page).toHaveScreenshot(); + }); - await expect(button).toBeFocused(); - await expectFeatureHighlightFocusOutline(page, button); - await expect(page).toHaveScreenshot(); - }); + await focusStep('Verify focus style for buttons', async () => { + await page.keyboard.press('Tab'); + await expect(button).toBeFocused(); + await expectFeatureHighlightFocusOutline(page, button); + await expect(page).toHaveScreenshot(); + }); - if (browserName === 'firefox') return; - await test.step('Verify hover style for non-active buttons', async () => { - if (!item.active && !item.loading) { - await button.hover(); - await expect(page).toHaveScreenshot(); - } - }); - } + await hoverStep('Verify hover style for non-active buttons (not checked in Firefox)', async () => { + await button.hover(); + await expect(page).toHaveScreenshot(); + }); }); }); }); @@ -197,7 +192,7 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feature-highlight/tests/examples/input.tsx', 'en', item); - const outline = page.locator('[class*="SOutline"]'); + const outline = locators.inputOutline(page); if (item.disabled || item.state !== 'normal') { await test.step('Verify disabled or invalid state', async () => { @@ -237,19 +232,22 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); } else { - await test.step('Verify focus and toggle', async () => { - await page.keyboard.press('Tab'); - // Webkit doesn't move focus to checkbox based controls with Tab, - // so the focus outline can only be verified in the other browsers. - if (browserName !== 'webkit') { - await expectFeatureHighlightFocusOutline(page, toggle); - } + const outlineStep = browserName === 'webkit' ? test.step.skip : test.step; + const outlineStepTitle = 'Verify feature highlight focus outline (WebKit does not focus checkbox-based controls by Tab)'; + + await page.keyboard.press('Tab'); + await outlineStep(outlineStepTitle, async () => { + await expectFeatureHighlightFocusOutline(page, toggle); + }); + await test.step('Verify focused switch', async () => { await expect(page).toHaveScreenshot(); + }); - await page.keyboard.press('Space'); - if (browserName !== 'webkit') { - await expectFeatureHighlightFocusOutline(page, toggle); - } + await page.keyboard.press('Space'); + await outlineStep(outlineStepTitle, async () => { + await expectFeatureHighlightFocusOutline(page, toggle); + }); + await test.step('Verify toggled switch', async () => { await expect(page).toHaveScreenshot(); }); } @@ -263,27 +261,18 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feature-highlight/docs/examples/data-table.tsx', 'en'); - const flex = locators.dataTable(page); - - await test.step('Verify primary table', async () => { - const screenshotsClip1 = (await flex.first().boundingBox())!; - screenshotsClip1.x -= 4; - screenshotsClip1.y -= 4; - screenshotsClip1.width += 8; - screenshotsClip1.height += 8; - - await expect(page).toHaveScreenshot({ clip: screenshotsClip1 }); - }); - - await test.step('Verify secondary table', async () => { - const screenshotsClip2 = (await flex.nth(1).boundingBox())!; - screenshotsClip2.x -= 4; - screenshotsClip2.y -= 4; - screenshotsClip2.width += 8; - screenshotsClip2.height += 8; + const tables = locators.dataTable(page); - await expect(page).toHaveScreenshot({ clip: screenshotsClip2 }); - }); + for (const [index, use] of ['primary', 'secondary'].entries()) { + await test.step(`Verify ${use} table`, async () => { + const clip = (await tables.nth(index).boundingBox())!; + clip.x -= 4; + clip.y -= 4; + clip.width += 8; + clip.height += 8; + await expect(page).toHaveScreenshot({ clip }); + }); + } }); }); @@ -297,7 +286,7 @@ test.describe(`${TAG.VISUAL} `, () => { variables.forEach((item) => { test(`Verify Tabline disabled = ${item.disabled} size = ${item.size} showBadge = ${item.showBadge}`, { - tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, '@feature-highlight', '@tabline', '@base-components', '@flex-box'], + tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, TAG.MOUSE, '@feature-highlight', '@tab-line', '@base-components', '@flex-box'], }, async ({ page }) => { await loadPage(page, 'stories/components/feature-highlight/tests/examples/tabline.tsx', 'en', item); @@ -345,21 +334,22 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); } else { - if (browserName !== 'webkit') { - await test.step('Verify focus and selection', async () => { - await page.keyboard.press('Tab'); - await expectFeatureHighlightFocusOutline(page, radioMark.first(), '::before'); - await expect(page).toHaveScreenshot(); - - await page.keyboard.press('Space'); - await expectFeatureHighlightFocusOutline(page, radioMark.first(), '::before'); - await expect(page).toHaveScreenshot(); - - // The second radio is a regular one, it keeps the default focus outline. - await page.keyboard.press('ArrowDown'); - await expectNoFeatureHighlightFocusOutline(page, radioMark.nth(1), '::before'); - }); - } + const notWebkitStep = browserName === 'webkit' ? test.step.skip : test.step; + + await notWebkitStep('Verify focus and selection (WebKit does not focus radio by Tab)', async () => { + await page.keyboard.press('Tab'); + await expectFeatureHighlightFocusOutline(page, radioMark.first(), '::before'); + await expect(page).toHaveScreenshot(); + + await page.keyboard.press('Space'); + await expectFeatureHighlightFocusOutline(page, radioMark.first(), '::before'); + await expect(page).toHaveScreenshot(); + }); + + await notWebkitStep('Verify regular radio keeps default focus outline', async () => { + await page.keyboard.press('ArrowDown'); + await expectNoFeatureHighlightFocusOutline(page, radioMark.nth(1), '::before'); + }); } }); }); @@ -387,22 +377,26 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(page).toHaveScreenshot(); }); } else { - await test.step('Verify focus and toggle', async () => { - await page.keyboard.press('Tab'); - // Webkit doesn't move focus to checkbox based controls with Tab, - // so the focus outline can only be verified in the other browsers. - if (browserName !== 'webkit') { - await expectFeatureHighlightFocusOutline(page, value.first(), '::before'); - } + const outlineStep = browserName === 'webkit' ? test.step.skip : test.step; + const outlineStepTitle = 'Verify feature highlight focus outline (WebKit does not focus checkbox-based controls by Tab)'; + + await page.keyboard.press('Tab'); + await outlineStep(outlineStepTitle, async () => { + await expectFeatureHighlightFocusOutline(page, value.first(), '::before'); + }); + await test.step('Verify focused checkbox', async () => { await expect(page).toHaveScreenshot(); + }); - await page.keyboard.press('Enter'); - if (browserName !== 'webkit') { - await expectFeatureHighlightFocusOutline(page, value.first(), '::before'); - } + await page.keyboard.press('Enter'); + await outlineStep(outlineStepTitle, async () => { + await expectFeatureHighlightFocusOutline(page, value.first(), '::before'); + }); + await test.step('Verify checked checkbox', async () => { await expect(page).toHaveScreenshot(); + }); - // The second checkbox is a regular one, it keeps the default focus outline. + await test.step('Verify regular checkbox keeps default focus outline', async () => { await page.keyboard.press('Tab'); await expectNoFeatureHighlightFocusOutline(page, value.nth(1), '::before'); }); @@ -494,74 +488,34 @@ We verify states, visibility, and attributes. ===================================================== */ test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Pills addon logic', { - tag: [TAG.PRIORITY_HIGH, '@feature-highlight', '@pills'], + tag: [TAG.PRIORITY_HIGH, '@feature-highlight', '@pills', '@badge', '@base-components', '@flex-box', '@typography'], }, async ({ page }) => { await loadPage(page, 'stories/components/feature-highlight/tests/examples/pills/pills-addon-logic.tsx', 'en'); const pill = locators.pills(page); + const cases = [ + { title: 'Verify stars in addons', index: 0, sparkles: 1 }, + { title: 'Verify number in addons', index: 1, sparkles: 0, text: '0' }, + { title: 'Verify icon in addons', index: 2, sparkles: 0 }, + { title: 'Verify badge in addons', index: 3, sparkles: 0, badges: 1 }, + { title: 'Verify text in addons', index: 4, sparkles: 0, text: 'Test' }, + ]; - await test.step('Verify stars in addon', async () => { - const addons = pill.first().locator('[data-ui-name="HighlightedItem.Addon"]'); - await expect(addons).toHaveCount(2); - - const addonCount = await addons.count(); - for (let j = 0; j < addonCount; j++) { - const addon = addons.nth(j); - const icons = addon.locator('[data-ui-name="SummaryAI"]'); - await expect(icons).toHaveCount(1); - } - }); - - await test.step('Verify number in addons', async () => { - const addons = pill.nth(1).locator('[data-ui-name="HighlightedItem.Addon"]'); - await expect(addons).toHaveCount(2); - - const addonCount = await addons.count(); - for (let j = 0; j < addonCount; j++) { - const addon = addons.nth(j); - const icons = addon.locator('[data-ui-name="SummaryAI"]'); - await expect(icons).toHaveCount(0); - expect(await addon.textContent()).toBe('0'); - } - }); - - await test.step('Verify icon in addons', async () => { - const addons = pill.nth(2).locator('[data-ui-name="HighlightedItem.Addon"]'); - await expect(addons).toHaveCount(2); - - const addonCount = await addons.count(); - for (let j = 0; j < addonCount; j++) { - const addon = addons.nth(j); - const icons = addon.locator('[data-ui-name="SummaryAI"]'); - await expect(icons).toHaveCount(0); - } - }); - - await test.step('Verify badge in addons', async () => { - const addons = pill.nth(3).locator('[data-ui-name="HighlightedItem.Addon"]'); - await expect(addons).toHaveCount(2); - - const addonCount = await addons.count(); - for (let j = 0; j < addonCount; j++) { - const addon = addons.nth(j); - const icons = addon.locator('[data-ui-name="SummaryAI"]'); - const badge = addon.locator('[data-ui-name="BadgeFH"]'); - await expect(icons).toHaveCount(0); - await expect(badge).toHaveCount(1); - } - }); - - await test.step('Verify text in addons', async () => { - const addons = pill.nth(4).locator('[data-ui-name="HighlightedItem.Addon"]'); - await expect(addons).toHaveCount(2); + for (const item of cases) { + await test.step(item.title, async () => { + const addons = pill.nth(item.index).locator('[data-ui-name="HighlightedItem.Addon"]'); + await expect(addons).toHaveCount(2); - const addonCount = await addons.count(); - for (let j = 0; j < addonCount; j++) { - const addon = addons.nth(j); - const icons = addon.locator('[data-ui-name="SummaryAI"]'); - await expect(icons).toHaveCount(0); - expect(await addon.textContent()).toBe('Test'); - } - }); + for (const addon of await addons.all()) { + await expect(addon.locator('[data-ui-name="SummaryAI"]')).toHaveCount(item.sparkles); + if (item.text !== undefined) { + await expect(addon).toHaveText(item.text); + } + if (item.badges !== undefined) { + await expect(addon.locator('[data-ui-name="BadgeFH"]')).toHaveCount(item.badges); + } + } + }); + } }); }); diff --git a/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BasgeFH-Visual-1-chromium-linux.png b/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BadgeFH-Visual-1-chromium-linux.png similarity index 100% rename from semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BasgeFH-Visual-1-chromium-linux.png rename to semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BadgeFH-Visual-1-chromium-linux.png diff --git a/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BasgeFH-Visual-1-firefox-linux.png b/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BadgeFH-Visual-1-firefox-linux.png similarity index 100% rename from semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BasgeFH-Visual-1-firefox-linux.png rename to semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BadgeFH-Visual-1-firefox-linux.png diff --git a/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BasgeFH-Visual-1-webkit-linux.png b/semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BadgeFH-Visual-1-webkit-linux.png similarity index 100% rename from semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BasgeFH-Visual-1-webkit-linux.png rename to semcore/feature-highlight/__tests__/feature-highlight.browser-test.tsx-snapshots/-visual-BadgeFH-Verify-BadgeFH-Visual-1-webkit-linux.png diff --git a/semcore/feature-popover/__tests__/feature-popover.axe-test.ts b/semcore/feature-popover/__tests__/feature-popover.axe-test.ts index 05d306ff65..44c5fd3624 100644 --- a/semcore/feature-popover/__tests__/feature-popover.axe-test.ts +++ b/semcore/feature-popover/__tests__/feature-popover.axe-test.ts @@ -2,8 +2,8 @@ import { expect, test, getAccessibilityViolations } from '@semcore/testing-utils import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -test.describe(`${TAG.FUNCTIONAL} @feature-popover`, () => { - test('Addons', async ({ page }) => { +test.describe(`${TAG.ACCESSIBILITY} @feature-popover`, () => { + test('Basic', async ({ page }) => { await loadPage(page, 'stories/components/feature-popover/docs/examples/Basic.tsx', 'en'); const violations = await getAccessibilityViolations({ page }); diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx index 275c2c09eb..3d846ffad3 100644 --- a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx +++ b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx @@ -4,7 +4,6 @@ import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; export const locators = { - button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; @@ -12,29 +11,18 @@ export const locators = { featurePopoverPopper: (page: Page) => page.getByRole('dialog'), hint: (page: Page) => page.getByText('Close'), featurePopover: (page: Page) => page.locator('[data-ui-name="FeaturePopover.Popper"]'), + spot: (page: Page) => page.locator('[data-ui-name="FeaturePopover.Spot"]'), }; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { const placement = [ - { placement: 'auto-start' }, - { placement: 'auto' }, - { placement: 'auto-end' }, - { placement: 'top-start' }, + { placement: 'bottom-start' }, { placement: 'top' }, - { placement: 'top-end' }, - { placement: 'right-start' }, { placement: 'right' }, - { placement: 'right-end' }, - { placement: 'bottom-end' }, - { placement: 'bottom' }, - { placement: 'bottom-start' }, - { placement: 'left-end' }, { placement: 'left' }, - { placement: 'left-start' }, - ]; placement.forEach((item) => { test(`Verify Feature popover when placement = ${item.placement}`, { @@ -48,10 +36,14 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feature-popover/tests/examples/base-usage-with-all-props.tsx', 'en', item); - await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); + const focusStep = item.placement === 'bottom-start' ? test.step : test.step.skip; - await test.step('Verify visual regression when focus inside feature popover', async () => { + await test.step('Verify opened feature popover', async () => { + await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); + + await focusStep('Verify visual regression when focus inside feature popover (default placement only)', async () => { await page.keyboard.press('Tab'); await expect(locators.button(page, 'Close')).toBeFocused(); await locators.hint(page).waitFor({ state: 'visible' }); @@ -65,7 +57,6 @@ test.describe(`${TAG.VISUAL} `, () => { { closeIcon: false, theme: 'accent' }, { closeIcon: true, theme: 'neutral' }, { closeIcon: false, theme: 'neutral' }, - ]; closeIcon.forEach((item) => { test(`Verify Feature popover styles with closeIcon = ${item.closeIcon} and theme = ${item.theme}`, { @@ -79,7 +70,7 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feature-popover/docs/examples/Basic.tsx', 'en', item); - const spot = page.locator('[data-ui-name="FeaturePopover.Spot"]'); + const spot = locators.spot(page); await locators.featurePopover(page).waitFor({ state: 'visible' }); @@ -112,10 +103,12 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feature-popover/tests/examples/base-usage-with-medium-illustration.tsx', 'en', { disablePortal: false }); - await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); - await locators.button(page, 'Close').hover(); - await locators.hint(page).waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); + await test.step('Verify popover with medium illustration and Close hint on hover', async () => { + await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); + await locators.button(page, 'Close').hover(); + await locators.hint(page).waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); }); }); @@ -124,7 +117,7 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify Base example with Close keyboard interactions', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, @@ -153,7 +146,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.hint(page).waitFor({ state: 'visible' }); }); - await test.step('Verify Feature Popper closed by Close button activating ', async () => { + await test.step('Verify Feature Popper closed by activating Close button', async () => { await page.keyboard.press('Enter'); await locators.featurePopoverPopper(page).waitFor({ state: 'hidden' }); await expect(locators.button(page, 'Export')).toBeFocused(); @@ -173,7 +166,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.featurePopoverPopper(page)).toBeFocused(); }); - await test.step('Verify Feature Popper closed by ESC when focus is on the other focusable element inside ', async () => { + await test.step('Verify Feature Popper closed by Escape when focus is on another focusable element inside', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); await page.keyboard.press('Escape'); @@ -181,7 +174,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.button(page, 'Export')).toBeFocused(); }); - await test.step('Verify focus in not looped inside Feature Popover and focused goes to next button when disablePortal = true', async () => { + await test.step('Verify focus is not trapped inside Feature Popover and moves to the next button when disablePortal = true', async () => { await loadPage(page, 'stories/components/feature-popover/docs/examples/Basic.tsx', 'en'); await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); await page.keyboard.press('Tab'); @@ -211,7 +204,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.featurePopoverPopper(page)).toBeFocused(); }); - await test.step('Verify next focusable element focused by Tab pressing ', async () => { + await test.step('Verify next focusable element focused by Tab', async () => { await page.keyboard.press('Tab'); await expect(page.getByRole('button', { name: 'Next' })).toBeFocused(); }); @@ -242,7 +235,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feature-popover/docs/examples/Basic.tsx', 'en'); - const gotIt = page.getByText('Next'); + const nextButton = page.getByText('Next'); await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); await test.step('Verify Hint on hover Close', async () => { @@ -262,10 +255,10 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.featurePopoverPopper(page)).toHaveCount(0); }); - await test.step('Verify Feature Popper closed by pressing Other button', async () => { + await test.step('Verify Feature Popper closed by clicking Next button', async () => { await loadPage(page, 'stories/components/feature-popover/docs/examples/Basic.tsx', 'en'); await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); - await gotIt.click(); + await nextButton.click(); await locators.featurePopoverPopper(page).waitFor({ state: 'hidden' }); await expect(locators.featurePopoverPopper(page)).toHaveCount(0); }); @@ -286,7 +279,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }); }); - test('Verify Focus order when disablePortal = false', { + test('Verify focus order when disablePortal = false', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@feature-popover', @@ -300,19 +293,20 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.featurePopover(page).waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await expect(locators.featurePopoverPopper(page)).toBeVisible(); - await expect(page.getByRole('button', { name: 'Reload page' })).not.toBeFocused(); + await test.step('Verify focus does not reach the next page button while popover is open', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await expect(locators.featurePopoverPopper(page)).toBeVisible(); + await expect(locators.button(page, 'Reload page')).not.toBeFocused(); + }); }); const autoFocus = [ { autoFocus: true }, { autoFocus: false }, { autoFocus: 'enforced' }, - ]; autoFocus.forEach((item) => { test(`Verify Feature popover when autoFocus = ${item.autoFocus}`, { @@ -328,11 +322,8 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await locators.featurePopoverPopper(page).waitFor({ state: 'visible' }); - if (!item.autoFocus) { - await expect(locators.featurePopoverPopper(page)).not.toBeFocused(); - } else { - await expect(locators.featurePopoverPopper(page)).toBeFocused(); - } + const popper = expect(locators.featurePopoverPopper(page)); + await (item.autoFocus ? popper.toBeFocused() : popper.not.toBeFocused()); }); }); }); diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-chromium-linux.png deleted file mode 100644 index 6c4fb6e5bd..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-firefox-linux.png deleted file mode 100644 index 379e157365..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-webkit-linux.png deleted file mode 100644 index 378a47df08..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-chromium-linux.png deleted file mode 100644 index 74a9271654..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-firefox-linux.png deleted file mode 100644 index fd0f7ab527..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-webkit-linux.png deleted file mode 100644 index 92651a8bcd..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-chromium-linux.png deleted file mode 100644 index 8e7836c610..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-firefox-linux.png deleted file mode 100644 index 62c1532534..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-webkit-linux.png deleted file mode 100644 index 25d2de12d0..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-chromium-linux.png deleted file mode 100644 index be7e64ebd3..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-firefox-linux.png deleted file mode 100644 index 1cd5f2060a..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-webkit-linux.png deleted file mode 100644 index 0a7af763e3..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-end-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-chromium-linux.png deleted file mode 100644 index 0ca423ad6d..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-firefox-linux.png deleted file mode 100644 index 6da3196877..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-webkit-linux.png deleted file mode 100644 index aa51b35bda..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-chromium-linux.png deleted file mode 100644 index c17447d47a..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-firefox-linux.png deleted file mode 100644 index 8cfdf43cc0..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-webkit-linux.png deleted file mode 100644 index 141dc5adf6..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-auto-start-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-chromium-linux.png deleted file mode 100644 index 043dbece67..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-firefox-linux.png deleted file mode 100644 index c85da5ebad..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-webkit-linux.png deleted file mode 100644 index 14794ed1d5..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-chromium-linux.png deleted file mode 100644 index 3f00f6f0fd..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-firefox-linux.png deleted file mode 100644 index 33e38b7a5b..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-webkit-linux.png deleted file mode 100644 index 92fe614174..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-chromium-linux.png deleted file mode 100644 index 64b0a42aa3..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-firefox-linux.png deleted file mode 100644 index f64e5e0ccd..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-webkit-linux.png deleted file mode 100644 index 70c574d177..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-chromium-linux.png deleted file mode 100644 index e7a119e8e1..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-firefox-linux.png deleted file mode 100644 index 9e11ab20ce..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-webkit-linux.png deleted file mode 100644 index 6428b9b267..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-bottom-end-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-chromium-linux.png deleted file mode 100644 index 5262129aa5..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-firefox-linux.png deleted file mode 100644 index 0622b154ad..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-webkit-linux.png deleted file mode 100644 index 4b8f2e265d..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-chromium-linux.png deleted file mode 100644 index cf05f1c891..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-firefox-linux.png deleted file mode 100644 index 2a85b083ff..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-webkit-linux.png deleted file mode 100644 index 3ada3ffc7c..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-chromium-linux.png deleted file mode 100644 index aa7939819b..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-firefox-linux.png deleted file mode 100644 index 85086a5b9c..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-webkit-linux.png deleted file mode 100644 index daffb08304..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-end-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-chromium-linux.png deleted file mode 100644 index 48f9d863c0..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-firefox-linux.png deleted file mode 100644 index 0b63d5841b..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-webkit-linux.png deleted file mode 100644 index 68d7dd3c60..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-chromium-linux.png deleted file mode 100644 index ab140d6fab..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-firefox-linux.png deleted file mode 100644 index ac65707ce1..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-webkit-linux.png deleted file mode 100644 index d68a4563fa..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-left-start-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-chromium-linux.png deleted file mode 100644 index 8800277931..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-firefox-linux.png deleted file mode 100644 index 0af04decd8..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-webkit-linux.png deleted file mode 100644 index ecef21d5d5..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-chromium-linux.png deleted file mode 100644 index 70e089c008..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-firefox-linux.png deleted file mode 100644 index b2de318731..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-webkit-linux.png deleted file mode 100644 index 1bfe41b1dc..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-chromium-linux.png deleted file mode 100644 index 0db4ec9977..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-firefox-linux.png deleted file mode 100644 index a945cc7392..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-webkit-linux.png deleted file mode 100644 index 228e66a71b..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-end-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-chromium-linux.png deleted file mode 100644 index edae582eb3..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-firefox-linux.png deleted file mode 100644 index 1a7969542e..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-webkit-linux.png deleted file mode 100644 index 81bac6c4d7..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-chromium-linux.png deleted file mode 100644 index b94156174d..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-firefox-linux.png deleted file mode 100644 index 682bde1d06..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-webkit-linux.png deleted file mode 100644 index ff9f6f4f1d..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-right-start-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-chromium-linux.png deleted file mode 100644 index 65aa239a82..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-firefox-linux.png deleted file mode 100644 index 3fb0e7f569..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-webkit-linux.png deleted file mode 100644 index 060110f228..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-chromium-linux.png deleted file mode 100644 index 94b7dc1850..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-firefox-linux.png deleted file mode 100644 index 6afdd3ed1d..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-webkit-linux.png deleted file mode 100644 index 65e1290910..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-chromium-linux.png deleted file mode 100644 index 39bb7da9ac..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-firefox-linux.png deleted file mode 100644 index 15482ce1fb..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-webkit-linux.png deleted file mode 100644 index 955fb3e9a5..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-end-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-chromium-linux.png deleted file mode 100644 index 8e719a8be3..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-firefox-linux.png deleted file mode 100644 index f2e6116baa..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-webkit-linux.png deleted file mode 100644 index 03fa888d35..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-1-webkit-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-chromium-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-chromium-linux.png deleted file mode 100644 index b33dc5955f..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-chromium-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-firefox-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-firefox-linux.png deleted file mode 100644 index 133390878f..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-firefox-linux.png and /dev/null differ diff --git a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-webkit-linux.png b/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-webkit-linux.png deleted file mode 100644 index 9270d07c72..0000000000 Binary files a/semcore/feature-popover/__tests__/feature-popover.browser-test.tsx-snapshots/-visual-Verify-Feature-popover-when-placement-top-start-2-webkit-linux.png and /dev/null differ diff --git a/semcore/feedback-form/__tests__/feedback-form.browser-test.tsx b/semcore/feedback-form/__tests__/feedback-form.browser-test.tsx index 526fda44f7..f3f417ee76 100644 --- a/semcore/feedback-form/__tests__/feedback-form.browser-test.tsx +++ b/semcore/feedback-form/__tests__/feedback-form.browser-test.tsx @@ -26,6 +26,14 @@ export const locators = { }, }; +const expectInputsInvalid = async (page: Page) => { + await expect(locators.inputs(page)).not.toHaveCount(0); + for (const input of await locators.inputs(page).all()) { + await expect(input).toHaveAttribute('aria-invalid', 'true'); + await expect(input).toHaveAttribute('aria-describedby'); + } +}; + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -113,29 +121,34 @@ test.describe(`${TAG.VISUAL}`, () => { '@typography', '@button'], }, async ({ page, browserName }) => { + test.skip(browserName === 'webkit', 'Loading state screenshot is unstable in WebKit'); await loadPage(page, 'stories/components/feedback/tests/examples/feedback_form_theme_loading.tsx', 'en'); - if (browserName == 'webkit') test.skip(); // unstable - await locators.button(page).click(); - await locators.feedbackForm(page).waitFor({ state: 'visible' }); - await expect(locators.inputs(page).nth(0)).toBeFocused(); - await locators.inputs(page, 0).fill('Your feedback must contain at least 10 characters.'); + await test.step('Fill the form', async () => { + await locators.button(page).click(); + await locators.feedbackForm(page).waitFor({ state: 'visible' }); + await expect(locators.inputs(page).nth(0)).toBeFocused(); + + await locators.inputs(page, 0).fill('Your feedback must contain at least 10 characters.'); - await page.keyboard.press('Tab'); - await expect(locators.inputs(page).nth(1)).toBeFocused(); + await page.keyboard.press('Tab'); + await expect(locators.inputs(page).nth(1)).toBeFocused(); - await locators.inputs(page, 1).fill('test@test.test'); - await page.keyboard.press('Tab'); - await expect(page.getByRole('link', { name: 'Privacy Policy' })).toBeFocused(); + await locators.inputs(page, 1).fill('test@test.test'); + await page.keyboard.press('Tab'); + await expect(page.getByRole('link', { name: 'Privacy Policy' })).toBeFocused(); + }); - await page.keyboard.press('Tab'); - await expect(locators.button(page, 1)).toBeFocused(); + await test.step('Verify loading styles after submit', async () => { + await page.keyboard.press('Tab'); + await expect(locators.button(page, 1)).toBeFocused(); - await page.keyboard.press('Enter'); - await expect(locators.button(page, 1)).not.toBeFocused(); + await page.keyboard.press('Enter'); + await expect(locators.button(page, 1)).not.toBeFocused(); - await page.locator('[aria-label="Loading…"]').waitFor({ state: 'visible' }); - await expect(page).toHaveScreenshot(); + await page.locator('[aria-label="Loading…"]').waitFor({ state: 'visible' }); + await expect(page).toHaveScreenshot(); + }); }); }); @@ -174,9 +187,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.feedbackForm(page)).toHaveAttribute('novalidate'); await expect(locators.feedbackForm(page)).toHaveAttribute('method', 'POST'); - const count = await locators.inputs(page).count(); - for (let i = 0; i < count; i++) { - await expect(locators.inputs(page, i)).toHaveAttribute('aria-invalid', 'false'); + await expect(locators.inputs(page)).not.toHaveCount(0); + for (const input of await locators.inputs(page).all()) { + await expect(input).toHaveAttribute('aria-invalid', 'false'); } await expect(locators.inputs(page, 0)).toHaveAttribute('name', 'description'); await expect(locators.inputs(page, 1)).toHaveAttribute('name', 'email'); @@ -194,7 +207,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await locators.feedbackForm(page).waitFor({ state: 'hidden' }); - await expect(locators.feedbackForm(page)).not.toBeVisible(); + await expect(locators.feedbackForm(page)).toBeHidden(); await expect(locators.button(page)).toBeFocused(); }); @@ -203,7 +216,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.feedbackForm(page).waitFor({ state: 'visible' }); await page.keyboard.press('Escape'); await locators.feedbackForm(page).waitFor({ state: 'hidden' }); - await expect(locators.feedbackForm(page)).not.toBeVisible(); + await expect(locators.feedbackForm(page)).toBeHidden(); await expect(locators.button(page)).toBeFocused(); }); @@ -228,12 +241,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.getByRole('tooltip', { name: 'Your feedback must contain at least 10 characters.' }).waitFor({ state: 'visible' }); await expect(locators.inputs(page, 0)).toBeFocused(); - const count = await locators.inputs(page).count(); - - for (let i = 0; i < count; i++) { - await expect(locators.inputs(page, i)).toHaveAttribute('aria-invalid', 'true'); - await expect(locators.inputs(page, i)).toHaveAttribute('aria-describedby'); - } + await expectInputsInvalid(page); await page.keyboard.press('Tab'); await expect(locators.inputs(page, 1)).toBeFocused(); @@ -267,10 +275,10 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.success(page)).toBeFocused(); }); - await test.step('Verify success closed by ESC', async () => { + await test.step('Verify success closed by Escape', async () => { await page.keyboard.press('Escape'); await locators.success(page).waitFor({ state: 'hidden' }); - await expect(locators.success(page)).not.toBeVisible(); + await expect(locators.success(page)).toBeHidden(); await expect(locators.button(page)).toBeFocused(); }); }); @@ -292,30 +300,34 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/feedback/docs/examples/default_feedback_form.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.feedbackForm(page).waitFor({ state: 'visible' }); - await expect(locators.inputs(page, 0)).toBeFocused(); + await test.step('Verify validation tooltip shown after submitting empty form', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.feedbackForm(page).waitFor({ state: 'visible' }); + await expect(locators.inputs(page, 0)).toBeFocused(); - await page.keyboard.press('Tab'); - await expect(locators.inputs(page, 1)).toBeFocused(); + await page.keyboard.press('Tab'); + await expect(locators.inputs(page, 1)).toBeFocused(); - await page.keyboard.press('Tab'); - await expect(page.getByRole('link', { name: 'Privacy Policy' })).toBeFocused(); + await page.keyboard.press('Tab'); + await expect(page.getByRole('link', { name: 'Privacy Policy' })).toBeFocused(); - await page.keyboard.press('Tab'); - await expect(locators.button(page, 1)).toBeFocused(); + await page.keyboard.press('Tab'); + await expect(locators.button(page, 1)).toBeFocused(); - await page.keyboard.press('Enter'); - await page.getByRole('tooltip', { name: 'Your feedback must contain at least 10 characters.' }).waitFor({ state: 'visible' }); - await expect(locators.inputs(page, 0)).toBeFocused(); - await expect(locators.inputs(page, 0)).toHaveAttribute('aria-invalid', 'true'); - await expect(locators.inputs(page, 0)).toHaveAttribute('aria-describedby'); + await page.keyboard.press('Enter'); + await page.getByRole('tooltip', { name: 'Your feedback must contain at least 10 characters.' }).waitFor({ state: 'visible' }); + await expect(locators.inputs(page, 0)).toBeFocused(); + await expect(locators.inputs(page, 0)).toHaveAttribute('aria-invalid', 'true'); + await expect(locators.inputs(page, 0)).toHaveAttribute('aria-describedby'); + }); - await page.keyboard.press('Escape'); - await locators.feedbackForm(page).waitFor({ state: 'hidden' }); - await expect(locators.feedbackForm(page)).not.toBeVisible(); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify Escape closes the form and returns focus to trigger', async () => { + await page.keyboard.press('Escape'); + await locators.feedbackForm(page).waitFor({ state: 'hidden' }); + await expect(locators.feedbackForm(page)).toBeHidden(); + await expect(locators.button(page)).toBeFocused(); + }); }); test('Verify base feedback form mouse interaction', { @@ -344,11 +356,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.inputs(page, 0)).toBeFocused(); }); - await test.step('Verify feedback form closed by Cancel click ', async () => { + await test.step('Verify feedback form closed by Cancel click', async () => { await expect(cancel).toHaveAttribute('type', 'reset'); await cancel.click(); await locators.feedbackForm(page).waitFor({ state: 'hidden' }); - await expect(locators.feedbackForm(page)).not.toBeVisible(); + await expect(locators.feedbackForm(page)).toBeHidden(); }); await test.step('Verify feedback form closed by click outside the form', async () => { @@ -356,22 +368,17 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.feedbackForm(page).waitFor({ state: 'visible' }); await page.mouse.click(0, 0); await locators.feedbackForm(page).waitFor({ state: 'hidden' }); - await expect(locators.feedbackForm(page)).not.toBeVisible(); + await expect(locators.feedbackForm(page)).toBeHidden(); }); - await test.step('Verify feedback form validation starts and form not closed by click Send Feedback', async () => { + await test.step('Verify feedback form validation starts and form not closed by click on Send feedback', async () => { await locators.button(page).click(); await locators.feedbackForm(page).waitFor({ state: 'visible' }); await expect(submit).toHaveAttribute('type', 'submit'); await submit.click(); await page.getByRole('tooltip', { name: 'Your feedback must contain at least 10 characters.' }).waitFor({ state: 'visible' }); await expect(locators.inputs(page, 0)).toBeFocused(); - const count = await locators.inputs(page).count(); - - for (let i = 0; i < count; i++) { - await expect(locators.inputs(page, i)).toHaveAttribute('aria-invalid', 'true'); - await expect(locators.inputs(page, i)).toHaveAttribute('aria-describedby'); - } + await expectInputsInvalid(page); }); await test.step('Verify feedback form changes to success by click on Send feedback when inputs filled', async () => { @@ -386,7 +393,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await test.step('Verify success closed by click outside the form', async () => { await page.mouse.click(0, 0); await locators.success(page).waitFor({ state: 'hidden' }); - await expect(locators.success(page)).not.toBeVisible(); + await expect(locators.success(page)).toBeHidden(); }); await test.step('Verify success closed by click on trigger', async () => { @@ -395,7 +402,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.button(page).click(); await locators.success(page).waitFor({ state: 'hidden' }); - await expect(locators.success(page)).not.toBeVisible(); + await expect(locators.success(page)).toBeHidden(); }); }); }); diff --git a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx index 5a3a17db58..3a1e2ddc2b 100644 --- a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx +++ b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx @@ -26,6 +26,14 @@ export const locators = { }, }; +const ensureFirstCheckboxFocused = async (page: Page, browserName: string) => { + const firstCheckbox = page.getByRole('checkbox').first(); + if (browserName === 'firefox' && !(await firstCheckbox.evaluate((node) => node === document.activeElement))) { + await page.keyboard.press('Tab'); + } + await expect(firstCheckbox).toBeFocused(); +}; + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -40,19 +48,13 @@ test.describe(`${TAG.VISUAL}`, () => { }, async ({ page, browserName }) => { await loadPage(page, 'stories/patterns/ux-patterns/feedback-rating/docs/examples/feedback_rating_form.tsx', 'en'); const checkboxInput = page.getByRole('checkbox'); - const ensureFirstCheckboxFocused = async () => { - if ( - browserName === 'firefox' && - !(await checkboxInput.first().evaluate((node) => node === document.activeElement)) - ) { - await page.keyboard.press('Tab'); - } - await expect(checkboxInput.first()).toBeFocused(); - }; + const buttons = locators.dialog(page).getByRole('button'); + const notWebkitStep = browserName === 'webkit' ? test.step.skip : test.step; + + await test.step('Verify default styles', async () => { + await expect(page).toHaveScreenshot(); + }); - await expect(page).toHaveScreenshot(); - const dialog = locators.dialog(page); - const buttons = dialog.getByRole('button'); await test.step('Verify stars hover state', async () => { await locators.stars(page, 1).hover(); await expect(page).toHaveScreenshot(); @@ -65,17 +67,16 @@ test.describe(`${TAG.VISUAL}`, () => { await expect(page).toHaveScreenshot(); }); - if (browserName == 'webkit') test.skip(); - await test.step('Verify form styles', async () => { + await notWebkitStep('Verify form styles (WebKit does not focus checkboxes by Tab)', async () => { await page.keyboard.press('Enter'); await buttons.first().waitFor({ state: 'visible' }); - await ensureFirstCheckboxFocused(); + await ensureFirstCheckboxFocused(page, browserName); await page.waitForTimeout(200); await expect(page).toHaveScreenshot(); }); - await test.step('Verify email validation', async () => { + await notWebkitStep('Verify email validation', async () => { await page.keyboard.press('Tab'); await expect(checkboxInput.nth(1)).toBeFocused(); @@ -102,7 +103,7 @@ test.describe(`${TAG.VISUAL}`, () => { }); }); - await test.step('Verify loading styles', async () => { + await notWebkitStep('Verify loading styles', async () => { await page.keyboard.type('test@test.test'); await page.keyboard.press('Tab'); await expect(page.getByRole('link', { name: 'Privacy Policy' })).toBeFocused(); @@ -127,11 +128,13 @@ test.describe(`${TAG.VISUAL}`, () => { const buttons = locators.dialog(page).getByRole('button'); - await locators.stars(page, 1).click(); - await buttons.first().waitFor({ state: 'visible' }); - await buttons.nth(1).click(); - await page.waitForSelector('text="Something went wrong. Please try again or contact us at"'); - await expect(page).toHaveScreenshot(); + await test.step('Verify error notice after submit', async () => { + await locators.stars(page, 1).click(); + await buttons.first().waitFor({ state: 'visible' }); + await buttons.nth(1).click(); + await page.waitForSelector('text="Something went wrong. Please try again or contact us at"'); + await expect(page).toHaveScreenshot(); + }); }); test('Verify feedback rating notice with title and subtitle', { @@ -213,17 +216,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const checkboxInput = page.getByRole('checkbox'); const buttons = locators.dialog(page).getByRole('button'); - const ensureFirstCheckboxFocused = async () => { - if ( - browserName === 'firefox' && - !(await checkboxInput.first().evaluate((node) => node === document.activeElement)) - ) { - await page.keyboard.press('Tab'); - } - await expect(checkboxInput.first()).toBeFocused(); - }; + const notWebkitStep = browserName === 'webkit' ? test.step.skip : test.step; - await test.step('Verify stars can be focused and their attributes ', async () => { + await test.step('Verify stars can be focused and their attributes', async () => { await page.keyboard.press('Tab'); await expect(locators.sliderRating(page)).toBeFocused(); await expect(locators.sliderRating(page)).toHaveAttribute('aria-valuemin', '1'); @@ -234,11 +229,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.sliderRating(page)).toHaveAttribute('value', '0'); await expect(locators.sliderRating(page)).toHaveAttribute('aria-orientation', 'horizontal'); - const count = await locators.stars(page).count(); - for (let i = 0; i < count; i++) { - await expect(locators.stars(page, i)).toHaveAttribute('fill', 'none'); - await expect(locators.stars(page, i)).toHaveAttribute('width', '24'); - await expect(locators.stars(page, i)).toHaveAttribute('height', '24'); + await expect(locators.stars(page)).not.toHaveCount(0); + for (const star of await locators.stars(page).all()) { + await expect(star).toHaveAttribute('fill', 'none'); + await expect(star).toHaveAttribute('width', '24'); + await expect(star).toHaveAttribute('height', '24'); } await page.keyboard.press('ArrowRight'); @@ -250,39 +245,49 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.sliderRating(page)).toHaveAttribute('aria-valuetext', '2 out of 5. Press Enter to select the rating.'); }); - await test.step('Verify form opened and first checkbox focused by deault', async () => { + await test.step('Verify form opened by Enter', async () => { await page.keyboard.press('Enter'); await buttons.first().waitFor({ state: 'visible' }); await expect(locators.sliderRating(page)).toHaveAttribute('value', '2'); - if (browserName !== 'webkit') await ensureFirstCheckboxFocused(); + }); + + await notWebkitStep('Verify first checkbox focused by default (WebKit does not focus checkboxes)', async () => { + await ensureFirstCheckboxFocused(page, browserName); + }); + + await test.step('Verify first checkbox attributes', async () => { await expect(checkboxInput.first()).toHaveAttribute('aria-invalid', 'false'); await expect(checkboxInput.first()).toHaveAttribute('aria-labelledby', 'option1'); }); - await test.step('Verify form closed by ESC and selected stars skipped', async () => { + await test.step('Verify form closed by Escape', async () => { await page.keyboard.press('Escape'); await buttons.first().waitFor({ state: 'hidden' }); - if (browserName !== 'webkit') await expect(locators.sliderRating(page)).toBeFocused(); + }); + + await notWebkitStep('Verify focus returns to stars after Escape', async () => { + await expect(locators.sliderRating(page)).toBeFocused(); + }); + + await test.step('Verify selected stars reset after Escape', async () => { await expect(locators.sliderRating(page)).toHaveAttribute('aria-valuenow', '0'); await expect(locators.sliderRating(page)).toHaveAttribute('aria-valuetext', 'Not set'); await expect(locators.sliderRating(page)).toHaveAttribute('value', '0'); }); - await test.step('Verify Form not opened by Enter when no starts selected', async () => { + await test.step('Verify form not opened by Enter when no stars selected', async () => { await page.keyboard.press('Enter'); - await expect(buttons.first()).not.toBeVisible(); + await expect(buttons.first()).toBeHidden(); }); - if (browserName === 'webkit') return; - - await test.step('Verify Form focus order', async () => { + await notWebkitStep('Verify form focus order', async () => { await page.keyboard.press('ArrowRight'); await page.keyboard.press('ArrowRight'); await page.keyboard.press('Enter'); await buttons.first().waitFor({ state: 'visible' }); - await ensureFirstCheckboxFocused(); + await ensureFirstCheckboxFocused(page, browserName); for (let i = 0; i < 3; i++) { await page.keyboard.press('Tab'); @@ -303,19 +308,19 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(buttons.nth(0)).toBeFocused(); }); - await test.step('Verify form closed by activate Close button', async () => { + await notWebkitStep('Verify form closed by activating Close button', async () => { await page.keyboard.press('Enter'); await buttons.first().waitFor({ state: 'hidden' }); await expect(locators.sliderRating(page)).toBeFocused(); }); - await test.step('Verify form closed by activate Send request', async () => { + await notWebkitStep('Verify form closed by activating Send request', async () => { await page.keyboard.press('ArrowRight'); await page.keyboard.press('ArrowRight'); await page.keyboard.press('Enter'); await page.waitForTimeout(200); await buttons.first().waitFor({ state: 'visible' }); - await ensureFirstCheckboxFocused(); + await ensureFirstCheckboxFocused(page, browserName); await page.keyboard.press('Shift+Tab'); await page.keyboard.press('Shift+Tab'); await page.keyboard.press('Enter'); @@ -336,6 +341,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const checkboxInput = page.getByRole('checkbox'); const buttons = locators.dialog(page).getByRole('button'); + const notWebkitStep = browserName === 'webkit' ? test.step.skip : test.step; await test.step('Verify stars hover interaction', async () => { await locators.stars(page, 3).hover(); @@ -351,7 +357,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.sliderRating(page)).toHaveAttribute('value', '4'); }); - await test.step('Verify form closed by click outside the form and selected starts skipped', async () => { + await test.step('Verify form closed by click outside the form and selected stars reset', async () => { await page.mouse.click(0, 0); await buttons.first().waitFor({ state: 'hidden' }); await expect(locators.sliderRating(page)).toHaveAttribute('aria-valuenow', '0'); @@ -364,13 +370,19 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await locators.stars(page, 3).click(); await buttons.first().waitFor({ state: 'visible' }); await buttons.first().click(); - await locators.dialog(page).waitFor({ state: 'visible' }); + await buttons.first().waitFor({ state: 'hidden' }); }); - await test.step('Verify form closed by click Send request', async () => { + await test.step('Verify form opened by click on stars again', async () => { await locators.stars(page, 3).click(); await buttons.first().waitFor({ state: 'visible' }); - if (browserName !== 'webkit') await expect(checkboxInput.first()).toBeFocused(); + }); + + await notWebkitStep('Verify first checkbox focused when form opened by click (WebKit does not focus checkboxes)', async () => { + await expect(checkboxInput.first()).toBeFocused(); + }); + + await test.step('Verify form closed by click Send request', async () => { await buttons.nth(1).click(); await page.locator('[aria-label="Loading…"]').nth(1).waitFor({ state: 'hidden' }); diff --git a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-feedback-rating-with-custom-modal-width-1-chromium-linux.png b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-feedback-rating-with-custom-modal-width-1-chromium-linux.png index 5edc9e0d66..445b12e4c6 100644 Binary files a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-feedback-rating-with-custom-modal-width-1-chromium-linux.png and b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-feedback-rating-with-custom-modal-width-1-chromium-linux.png differ diff --git a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-3-chromium-linux.png b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-3-chromium-linux.png index 637be93b8b..72c91d42a2 100644 Binary files a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-3-chromium-linux.png and b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-3-chromium-linux.png differ diff --git a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-4-chromium-linux.png b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-4-chromium-linux.png index 77e06232df..0b1eb22498 100644 Binary files a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-4-chromium-linux.png and b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-4-chromium-linux.png differ diff --git a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-5-chromium-linux.png b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-5-chromium-linux.png index 8160b810d8..dedd5187ac 100644 Binary files a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-5-chromium-linux.png and b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-5-chromium-linux.png differ diff --git a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-6-chromium-linux.png b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-6-chromium-linux.png index 0285aa6f4c..789c1be37d 100644 Binary files a/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-6-chromium-linux.png and b/semcore/feedback-form/__tests__/five-star-form.browser-test.tsx-snapshots/-visual-Verify-five-stars-form-base-example-styles-6-chromium-linux.png differ diff --git a/semcore/feedback-form/__tests__/yes-no-form.browser-test.tsx b/semcore/feedback-form/__tests__/yes-no-form.browser-test.tsx index 8030018d29..6e76741fd6 100644 --- a/semcore/feedback-form/__tests__/yes-no-form.browser-test.tsx +++ b/semcore/feedback-form/__tests__/yes-no-form.browser-test.tsx @@ -1,31 +1,14 @@ -import type { Page } from '@playwright/test'; import { expect, test } from '@semcore/testing-utils/playwright'; +import type { Locator, Page } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; const locators = { button: (page: Page, text: string) => page.getByRole('button', { name: text }), - - feedbackForm: (page: Page, index?: number) => { - const base = page.locator(`[data-ui-name="FeedbackForm"]`); - return typeof index === 'number' ? base.nth(index) : base; - }, - notice: (page: Page, index?: number) => { - const base = page.locator(`[data-ui-name="FeedbackForm.Notice"]`); - return typeof index === 'number' ? base.nth(index) : base; - }, dialog: (page: Page, index?: number) => { const base = page.getByRole('dialog'); return typeof index === 'number' ? base.nth(index) : base; }, - stars: (page: Page, index?: number) => { - const base = page.getByRole('none'); - return typeof index === 'number' ? base.nth(index) : base; - }, - sliderRating: (page: Page, index?: number) => { - const base = page.getByRole('slider'); - return typeof index === 'number' ? base.nth(index) : base; - }, inputs: (page: Page, index?: number) => { const base = page.getByRole('textbox'); return typeof index === 'number' ? base.nth(index) : base; @@ -36,6 +19,26 @@ const locators = { }, }; +const expectFeedbackFieldAttributes = async (field: Locator, invalid: boolean) => { + await expect(field).toHaveAttribute('aria-invalid', String(invalid)); + await expect(field).toHaveAttribute('name', 'feedback'); + await expect(field).toHaveAttribute('id', 'feedback'); + await expect(field).toHaveAttribute('rows', '2'); + if (invalid) { + await expect(field).toHaveAttribute('aria-describedby'); + } else { + await expect(field).not.toHaveAttribute('aria-describedby'); + } +}; + +const expectEmailFieldAttributes = async (field: Locator, invalid: boolean) => { + await expect(field).toHaveAttribute('aria-invalid', String(invalid)); + await expect(field).toHaveAttribute('name', 'email'); + await expect(field).toHaveAttribute('id', 'email'); + await expect(field).toHaveAttribute('autocomplete', 'email'); + await expect(field).toHaveAttribute('aria-describedby'); +}; + /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. @@ -121,7 +124,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { const feedbackFormItem = page.locator('[data-ui-name="FeedbackForm.Item"]'); - await test.step('Verify stars can be focused and their attributes ', async () => { + await test.step('Verify focus order of answer buttons and Notice close hint', async () => { await page.keyboard.press('Tab'); await expect(locators.button(page, 'Yes')).toBeFocused(); await page.keyboard.press('Tab'); @@ -145,28 +148,20 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page, 'No').first()).toBeFocused(); }); - await test.step('Verify form opened and attributed', async () => { + await test.step('Verify form opened and field attributes', async () => { await page.keyboard.press('Enter'); await locators.dialog(page).waitFor({ state: 'visible' }); await expect(feedbackFormItem.first()).toBeFocused(); - await expect(feedbackFormItem.first()).toHaveAttribute('aria-invalid', 'false'); - await expect(feedbackFormItem.first()).toHaveAttribute('name', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('id', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('rows', '2'); - await expect(feedbackFormItem.first()).not.toHaveAttribute('aria-describedby'); + await expectFeedbackFieldAttributes(feedbackFormItem.first(), false); await page.keyboard.press('Tab'); await expect(feedbackFormItem.nth(1)).toBeFocused(); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-invalid', 'false'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('name', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('id', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('autocomplete', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-describedby'); + await expectEmailFieldAttributes(feedbackFormItem.nth(1), false); await expect(feedbackFormItem.nth(1)).toHaveAttribute('value'); }); - await test.step('Verify form with error and attributed', async () => { + await test.step('Verify form with errors and field attributes', async () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); @@ -174,19 +169,11 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Enter'); await expect(feedbackFormItem.first()).toBeFocused(); - await expect(feedbackFormItem.first()).toHaveAttribute('aria-invalid', 'true'); - await expect(feedbackFormItem.first()).toHaveAttribute('name', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('id', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('rows', '2'); - await expect(feedbackFormItem.first()).toHaveAttribute('aria-describedby'); + await expectFeedbackFieldAttributes(feedbackFormItem.first(), true); await page.keyboard.press('Tab'); await expect(feedbackFormItem.nth(1)).toBeFocused(); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-invalid', 'true'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('name', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('id', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('autocomplete', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-describedby'); + await expectEmailFieldAttributes(feedbackFormItem.nth(1), true); await expect(feedbackFormItem.nth(1)).toHaveAttribute('value'); }); @@ -200,7 +187,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page, 'No').first()).toBeFocused(); }); - await test.step('Verify form closed Escape', async () => { + await test.step('Verify form closed by Escape', async () => { await page.keyboard.press('Shift+Tab'); await expect(locators.button(page, 'Yes')).toBeFocused(); await page.keyboard.press('Enter'); @@ -211,7 +198,7 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(locators.button(page, 'Yes')).toBeFocused(); }); - await test.step('Verify Success form appeard and closed by Escape', async () => { + await test.step('Verify Success form appeared and closed by Escape', async () => { await page.keyboard.press('Enter'); await locators.dialog(page).waitFor({ state: 'visible' }); await expect(locators.inputs(page).first()).toBeFocused(); @@ -227,17 +214,8 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await page.keyboard.press('Tab'); await expect(locators.button(page, 'Send feedback')).toBeFocused(); - await expect(feedbackFormItem.first()).toHaveAttribute('aria-invalid', 'false'); - await expect(feedbackFormItem.first()).toHaveAttribute('name', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('id', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('rows', '2'); - await expect(feedbackFormItem.first()).not.toHaveAttribute('aria-describedby'); - - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-invalid', 'false'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('name', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('id', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('autocomplete', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-describedby'); + await expectFeedbackFieldAttributes(feedbackFormItem.first(), false); + await expectEmailFieldAttributes(feedbackFormItem.nth(1), false); await page.keyboard.press('Enter'); await locators.success(page).waitFor({ state: 'visible' }); @@ -275,25 +253,17 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { await expect(feedbackFormItem.nth(1)).toBeFocused(); }); - await test.step('Verify error tooltip ', async () => { + await test.step('Verify error tooltip and field attributes', async () => { await locators.button(page, 'Send feedback').click(); await expect(page.getByRole('tooltip')).toHaveCount(1); await expect(feedbackFormItem.first()).toBeFocused(); - await expect(feedbackFormItem.first()).toHaveAttribute('aria-invalid', 'true'); - await expect(feedbackFormItem.first()).toHaveAttribute('name', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('id', 'feedback'); - await expect(feedbackFormItem.first()).toHaveAttribute('rows', '2'); - await expect(feedbackFormItem.first()).toHaveAttribute('aria-describedby'); + await expectFeedbackFieldAttributes(feedbackFormItem.first(), true); await page.locator('label').nth(1).click(); await expect(page.getByRole('tooltip')).toHaveCount(1); await expect(feedbackFormItem.nth(1)).toBeFocused(); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-invalid', 'true'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('name', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('id', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('autocomplete', 'email'); - await expect(feedbackFormItem.nth(1)).toHaveAttribute('aria-describedby'); + await expectEmailFieldAttributes(feedbackFormItem.nth(1), true); await expect(feedbackFormItem.nth(1)).toHaveAttribute('value'); }); diff --git a/semcore/fullscreen-modal/__tests__/fullscreen-modal.axe-test.tsx b/semcore/fullscreen-modal/__tests__/fullscreen-modal.axe-test.tsx index 6c0939d0d4..9969133ac9 100644 --- a/semcore/fullscreen-modal/__tests__/fullscreen-modal.axe-test.tsx +++ b/semcore/fullscreen-modal/__tests__/fullscreen-modal.axe-test.tsx @@ -2,7 +2,7 @@ import { expect, getAccessibilityViolations, test } from '@semcore/testing-utils import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -test.describe(`${TAG.ACCESSIBILITY} @fullscreen-modal `, () => { +test.describe(`${TAG.ACCESSIBILITY} @fullscreen-modal`, () => { test('Basic usage', async ({ page }) => { await loadPage(page, 'stories/components/fullscreen-modal/docs/examples/basic_fullscreen.headers_use.tsx', 'en'); diff --git a/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx b/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx index 0c15617a8c..1ac489c006 100644 --- a/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx +++ b/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx @@ -1,25 +1,47 @@ -import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand'; import { expect, test } from '@semcore/testing-utils/playwright'; import type { Page } from '@semcore/testing-utils/playwright'; import { loadPage } from '@semcore/testing-utils/shared/helpers'; import { TAG } from '@semcore/testing-utils/shared/tags'; -export const locators = { +export const locators = { button: (page: Page, name?: string, index?: number) => { const base = page.getByRole('button', { name }); return typeof index === 'number' ? base.nth(index) : base; }, modal: (page: Page) => page.getByRole('dialog'), - hint: (page: Page, text: string) => page.getByText(text), sections: (page: Page) => page.locator('[data-ui-name="FullscreenModal.Section"]'), + closeElements: (page: Page) => ({ + modalClose: page.locator('[data-ui-name="Modal.Close"]'), + fullscreenModalClose: page.locator('[data-ui-name="FullscreenModal.Close"]'), + }), +}; - addon: (page: Page) => page.locator('[data-ui-name="Input.Addon"]'), +type HeaderConfig = { + closable?: boolean; + showClose?: boolean; + showBack: boolean; + backText: string; + backWMax?: number; + titleText: string; + titleWidth?: number; + descriptionText: string; + showDescriptionTooltip: boolean; + hasBody: boolean; + hasFooter: boolean; + testName?: string; + skipSnapshot?: boolean; +}; + +const openModalByKeyboard = async (page: Page) => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await locators.modal(page).waitFor({ state: 'visible' }); }; /* ===================================================== @visual Visual states, hover and focus styles, paddings, margins, and snapshots. ===================================================== */ -test.describe(`${TAG.VISUAL} `, () => { +test.describe(`${TAG.VISUAL}`, () => { test('Verify body paddings', { tag: [TAG.PRIORITY_HIGH, '@fullscreen-modal', @@ -31,53 +53,15 @@ test.describe(`${TAG.VISUAL} `, () => { await locators.button(page).click(); await locators.modal(page).waitFor({ state: 'visible' }); - await test.step('Verify paddings for first section', async () => { - const { - paddingTop, - paddingBottom, - paddingLeft, - paddingRight, - } = await locators.sections(page) - .first() - .evaluate((el) => { - const styles = getComputedStyle(el); - return { - paddingTop: styles.paddingTop, - paddingBottom: styles.paddingBottom, - paddingLeft: styles.paddingLeft, - paddingRight: styles.paddingRight, - }; - }); - - expect(paddingTop).toBe('24px'); - expect(paddingRight).toBe('40px'); - expect(paddingBottom).toBe('24px'); - expect(paddingLeft).toBe('40px'); - }); - - await test.step('Verify paddings for second section', async () => { - const { - paddingTop, - paddingBottom, - paddingLeft, - paddingRight, - } = await locators.sections(page) - .nth(1) - .evaluate((el) => { - const styles = getComputedStyle(el); - return { - paddingTop: styles.paddingTop, - paddingBottom: styles.paddingBottom, - paddingLeft: styles.paddingLeft, - paddingRight: styles.paddingRight, - }; - }); - - expect(paddingTop).toBe('24px'); - expect(paddingRight).toBe('40px'); - expect(paddingBottom).toBe('24px'); - expect(paddingLeft).toBe('40px'); - }); + for (const [index, name] of ['first', 'second'].entries()) { + await test.step(`Verify paddings for ${name} section`, async () => { + const section = locators.sections(page).nth(index); + await expect(section).toHaveCSS('padding-top', '24px'); + await expect(section).toHaveCSS('padding-right', '40px'); + await expect(section).toHaveCSS('padding-bottom', '24px'); + await expect(section).toHaveCSS('padding-left', '40px'); + }); + } }); test('Verify navigation when no footer and 1 zone in body', { @@ -87,17 +71,18 @@ test.describe(`${TAG.VISUAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/fullscreen-modal/docs/examples/basic_fullscreen.headers_use.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.modal(page).waitFor({ state: 'visible' }); - - await expect(locators.button(page, 'Close')).toBeFocused(); - await locators.button(page, 'Close').hover(); - await expect(page).toHaveScreenshot(); + await test.step('Verify Close focused and hovered after opening', async () => { + await openModalByKeyboard(page); + await expect(locators.button(page, 'Close')).toBeFocused(); + await locators.button(page, 'Close').hover(); + await expect(page).toHaveScreenshot(); + }); - await page.keyboard.press('Tab'); - await locators.button(page, 'Go to Tool Name').hover(); - await expect(page).toHaveScreenshot(); + await test.step('Verify Back button focused by Tab and hovered', async () => { + await page.keyboard.press('Tab'); + await locators.button(page, 'Go to Tool Name').hover(); + await expect(page).toHaveScreenshot(); + }); }); test('Verify dual zone render and styles', { @@ -112,12 +97,12 @@ test.describe(`${TAG.VISUAL} `, () => { await locators.button(page).click(); await locators.modal(page).waitFor({ state: 'visible' }); - await test.step('Verify backButton on Hover ', async () => { + await test.step('Verify Back button on hover', async () => { await locators.button(page, 'Go to Tool Name').hover(); await expect(page).toHaveScreenshot(); }); - await test.step('Verify closeButton on Hover ', async () => { + await test.step('Verify Close button on hover', async () => { await locators.button(page, 'Close').hover(); await expect(page).toHaveScreenshot(); @@ -130,24 +115,25 @@ test.describe(`${TAG.VISUAL} `, () => { '@button', '@typography'], }, async ({ page, browserName }) => { + test.skip(browserName === 'webkit', 'Keyboard focus on the scrollable section is not reliable in WebKit'); await loadPage(page, 'stories/components/fullscreen-modal/docs/examples/example_of_a_dual-zone_modal_window.tsx', 'en'); - if (browserName === 'webkit') test.skip(); - - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.modal(page).waitFor({ state: 'visible' }); + await test.step('Focus the scrollable section', async () => { + await openModalByKeyboard(page); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await expect(locators.sections(page).nth(1)).toBeFocused(); + }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await expect(locators.sections(page).nth(1)).toBeFocused(); - await page.keyboard.press('ArrowDown'); - await page.keyboard.press('ArrowDown'); - await page.waitForTimeout(250); - await expect(page).toHaveScreenshot(); + await test.step('Verify header stays fixed after scrolling by arrows', async () => { + await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowDown'); + await page.waitForTimeout(250); + await expect(page).toHaveScreenshot(); + }); }); - const headerVariations = [ + const headerVariations: HeaderConfig[] = [ // empty header (no title, no description) { closable: false, @@ -283,9 +269,7 @@ test.describe(`${TAG.VISUAL} `, () => { await loadPage(page, 'stories/components/fullscreen-modal/tests/examples/header/configurable-header.tsx', 'en', config); await test.step('Open modal', async () => { - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.modal(page).waitFor({ state: 'visible' }); + await openModalByKeyboard(page); }); if (config.showClose) { @@ -300,13 +284,12 @@ test.describe(`${TAG.VISUAL} `, () => { await expect(backButton).toBeVisible(); }); - if ((config as { backWMax?: number }).backWMax !== undefined) { + if (config.backWMax !== undefined) { + const backWMax = config.backWMax; await test.step('Verify Back text is truncated when wMax is constrained', async () => { const back = page.locator('[data-ui-name="FullscreenModal.Back"]'); const backBox = await back.boundingBox(); - expect(backBox!.width).toBeLessThanOrEqual( - (config as { backWMax: number }).backWMax + 1, - ); + expect(backBox!.width).toBeLessThanOrEqual(backWMax + 1); const textNode = back.locator('[data-ui-name="ButtonLink.Text"]'); const isTruncated = await textNode.evaluate( (el) => el.scrollWidth > el.clientWidth, @@ -320,14 +303,7 @@ test.describe(`${TAG.VISUAL} `, () => { await test.step('Verify title renders and wraps correctly', async () => { const title = page.locator('[data-ui-name="FullscreenModal.Title"]'); await expect(title).toBeVisible(); - const titleStyles = await title.evaluate((el) => { - const computed = getComputedStyle(el); - return { - overflowWrap: computed.overflowWrap, - whiteSpace: computed.whiteSpace, - }; - }); - expect(titleStyles.overflowWrap).toBe('break-word'); + await expect(title).toHaveCSS('overflow-wrap', 'break-word'); }); } @@ -335,38 +311,19 @@ test.describe(`${TAG.VISUAL} `, () => { await test.step('Verify description renders as

tag and wraps correctly', async () => { const description = page.locator('[data-ui-name="FullscreenModal.Description"]'); await expect(description).toBeVisible(); - - const tagName = await description.evaluate((el) => el.tagName.toLowerCase()); - expect(tagName).toBe('p'); - - const descStyles = await description.evaluate((el) => { - const computed = getComputedStyle(el); - return { - overflowWrap: computed.overflowWrap, - whiteSpace: computed.whiteSpace, - }; - }); - expect(descStyles.overflowWrap).toBe('break-word'); + await expect(description).toHaveJSProperty('tagName', 'P'); + await expect(description).toHaveCSS('overflow-wrap', 'break-word'); }); } await test.step('Verify header vertical layout', async () => { const header = page.locator('[data-ui-name="FullscreenModal.Header"]'); - const headerStyles = await header.evaluate((el) => { - const computed = getComputedStyle(el); - return { - flexDirection: computed.flexDirection, - gap: computed.gap, - alignItems: computed.alignItems, - }; - }); - - expect(headerStyles.flexDirection).toBe('column'); - expect(headerStyles.gap).toBe('8px'); - expect(headerStyles.alignItems).toBe('flex-start'); + await expect(header).toHaveCSS('flex-direction', 'column'); + await expect(header).toHaveCSS('gap', '8px'); + await expect(header).toHaveCSS('align-items', 'flex-start'); }); - if (!(config as { skipSnapshot?: boolean }).skipSnapshot) { + if (!config.skipSnapshot) { await test.step('Take visual snapshot', async () => { if (config.showClose || config.closable) { const closeButton = locators.button(page, 'Close'); @@ -384,7 +341,7 @@ test.describe(`${TAG.VISUAL} `, () => { Keyboard and mouse interactions - no snapshots here. We verify states, visibility, and attributes. ===================================================== */ -test.describe(`${TAG.FUNCTIONAL} `, () => { +test.describe(`${TAG.FUNCTIONAL}`, () => { test('Verify keyboard navigation when no footer and 1 zone in body', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, @@ -393,35 +350,39 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/fullscreen-modal/docs/examples/basic_fullscreen.headers_use.tsx', 'en'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.modal(page).waitFor({ state: 'visible' }); - - await expect(locators.button(page, 'Close')).toBeFocused(); - - await page.keyboard.press('Enter'); - await locators.button(page, 'Close').waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify Close focused when opened', async () => { + await openModalByKeyboard(page); + await expect(locators.button(page, 'Close')).toBeFocused(); + }); - await page.keyboard.press('Enter'); - await locators.button(page, 'Close').waitFor({ state: 'visible' }); - await expect(locators.button(page, 'Close')).toBeFocused(); + await test.step('Verify closed by Enter on Close and focus returns to trigger', async () => { + await page.keyboard.press('Enter'); + await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + }); - await page.keyboard.press('Escape'); - await locators.button(page, 'Close').waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify closed by Escape and focus returns to trigger', async () => { + await page.keyboard.press('Enter'); + await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await expect(locators.button(page, 'Close')).toBeFocused(); - await page.keyboard.press('Enter'); - await locators.button(page, 'Close').waitFor({ state: 'visible' }); - await expect(locators.button(page, 'Close')).toBeFocused(); + await page.keyboard.press('Escape'); + await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + }); - await page.keyboard.press('Tab'); - await expect(locators.button(page, 'Go to Tool Name')).toBeFocused(); + await test.step('Verify closed by Enter on Back and focus returns to trigger', async () => { + await page.keyboard.press('Enter'); + await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await expect(locators.button(page, 'Close')).toBeFocused(); - await page.keyboard.press('Enter'); + await page.keyboard.press('Tab'); + await expect(locators.button(page, 'Go to Tool Name')).toBeFocused(); - await locators.button(page, 'Close').waitFor({ state: 'hidden' }); - await expect(locators.button(page)).toBeFocused(); + await page.keyboard.press('Enter'); + await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + }); }); test('Verify mouse navigation when no footer and 1 zone in body', { @@ -432,37 +393,39 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { }, async ({ page }) => { await loadPage(page, 'stories/components/fullscreen-modal/docs/examples/basic_fullscreen.headers_use.tsx', 'en'); - await locators.button(page).click(); - await locators.button(page, 'Close').waitFor({ state: 'visible' }); - - await locators.button(page, 'Close').click(); - await locators.button(page, 'Close').waitFor({ state: 'hidden' }); - - await locators.button(page).click(); - await locators.button(page, 'Close').waitFor({ state: 'visible' }); - - await locators.button(page, 'Go to Tool Name').click(); - await locators.button(page, 'Close').waitFor({ state: 'hidden' }); - - await locators.button(page).click(); - await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await test.step('Verify closed by Close click', async () => { + await locators.button(page).click(); + await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await locators.button(page, 'Close').click(); + await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + }); - await page.keyboard.press('Escape'); - await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + await test.step('Verify closed by Back click', async () => { + await locators.button(page).click(); + await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await locators.button(page, 'Go to Tool Name').click(); + await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + }); - await expect(locators.button(page)).toBeFocused(); + await test.step('Verify closed by Escape after opening by click', async () => { + await locators.button(page).click(); + await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await page.keyboard.press('Escape'); + await locators.button(page, 'Close').waitFor({ state: 'hidden' }); + await expect(locators.button(page)).toBeFocused(); + }); }); - test('Verify keyboard navigation footer and 2 zones in body', { + test('Verify keyboard navigation with footer and 2 zones in body', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@fullscreen-modal', '@button', '@typography'], }, async ({ page, browserName }) => { + test.skip(browserName === 'webkit', 'Keyboard focus on the scrollable section is not reliable in WebKit'); await loadPage(page, 'stories/components/fullscreen-modal/docs/examples/example_of_a_dual-zone_modal_window.tsx', 'en'); - if (browserName === 'webkit') return; await page.keyboard.press('Tab'); await page.keyboard.press('Enter'); await locators.button(page, 'Close').waitFor({ state: 'visible' }); @@ -483,7 +446,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await expect(locators.button(page, 'Close')).toBeFocused(); }); - test('Verify modal can be closed by ESC when no closable button', { + test('Verify modal can be closed by Escape when no closable button', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@fullscreen-modal', @@ -494,7 +457,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@tooltip', '@typography'], }, async ({ page }) => { - const config = { + const config: HeaderConfig = { closable: false, showClose: false, showBack: true, @@ -508,34 +471,33 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await loadPage(page, 'stories/components/fullscreen-modal/tests/examples/header/configurable-header.tsx', 'en', config); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await locators.modal(page).waitFor({ state: 'visible' }); - await page.keyboard.press('Escape'); - await locators.modal(page).waitFor({ state: 'hidden' }); - - await locators.button(page).click(); - await locators.modal(page).waitFor({ state: 'visible' }); - await page.keyboard.press('Escape'); - await locators.modal(page).waitFor({ state: 'hidden' }); + await test.step('Verify closed by Escape after opening by keyboard', async () => { + await openModalByKeyboard(page); + await page.keyboard.press('Escape'); + await locators.modal(page).waitFor({ state: 'hidden' }); + }); - await expect(locators.modal(page)).toHaveCount(0); + await test.step('Verify closed by Escape after opening by click', async () => { + await locators.button(page).click(); + await locators.modal(page).waitFor({ state: 'visible' }); + await page.keyboard.press('Escape'); + await locators.modal(page).waitFor({ state: 'hidden' }); + await expect(locators.modal(page)).toHaveCount(0); + }); }); - test('Verify Close, LongTitle and Description with interactive element', { + test('Verify description tooltip keyboard interaction in header', { tag: [TAG.PRIORITY_HIGH, TAG.KEYBOARD, '@fullscreen-modal', '@button', - '@toooltip', '@link', '@button-link', '@description-tooltip', '@tooltip', '@typography'], }, async ({ page }) => { - const config = { - + const config: HeaderConfig = { showBack: true, backText: 'Go to Tool Name', titleText: 'Go to Tool Name Go to Tool Name', @@ -548,20 +510,24 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await loadPage(page, 'stories/components/fullscreen-modal/tests/examples/header/configurable-header.tsx', 'en', config); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); + const tooltipPopper = page.locator('[data-ui-name="DescriptionTooltip.Popper"]'); - await locators.modal(page).waitFor({ state: 'visible' }); - await locators.button(page, 'Close').waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - await page.locator('[data-ui-name="DescriptionTooltip.Popper"]').waitFor({ state: 'visible' }); - await page.keyboard.press('Tab'); - await page.keyboard.press('Tab'); - await page.keyboard.press('Escape'); - await page.locator('[data-ui-name="DescriptionTooltip.Popper"]').waitFor({ state: 'hidden' }); - await expect(page.locator('[data-ui-name="DescriptionTooltip.Trigger"]')).toBeFocused(); + await test.step('Verify description tooltip opened by Enter', async () => { + await openModalByKeyboard(page); + await locators.button(page, 'Close').waitFor({ state: 'visible' }); + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Enter'); + await tooltipPopper.waitFor({ state: 'visible' }); + }); + + await test.step('Verify Escape closes tooltip and returns focus to its trigger', async () => { + await page.keyboard.press('Tab'); + await page.keyboard.press('Tab'); + await page.keyboard.press('Escape'); + await tooltipPopper.waitFor({ state: 'hidden' }); + await expect(page.locator('[data-ui-name="DescriptionTooltip.Trigger"]')).toBeFocused(); + }); }); test('Verify there is only one closable element when closable = true and no Close button', { @@ -574,7 +540,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@tooltip', '@typography'], }, async ({ page }) => { - const config = { + const config: HeaderConfig = { closable: true, showClose: false, showBack: true, @@ -588,18 +554,12 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await loadPage(page, 'stories/components/fullscreen-modal/tests/examples/header/configurable-header.tsx', 'en', config); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - - await locators.modal(page).waitFor({ state: 'visible' }); - - const modalClose = page.locator('[data-ui-name="Modal.Close"]'); - const fullScreenModalClose = page.locator('[data-ui-name="FullscreenModal.Close"]'); + await openModalByKeyboard(page); - expect(await modalClose.count()).toBe(0); - expect(await fullScreenModalClose.count()).toBe(1); - - expect(fullScreenModalClose.first()).toBeVisible(); + const { modalClose, fullscreenModalClose } = locators.closeElements(page); + await expect(modalClose).toHaveCount(0); + await expect(fullscreenModalClose).toHaveCount(1); + await expect(fullscreenModalClose).toBeVisible(); }); test('Verify no closable elements when closable = false and no Close button', { @@ -612,7 +572,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { '@tooltip', '@typography'], }, async ({ page }) => { - const config = { + const config: HeaderConfig = { closable: false, showClose: false, showBack: true, @@ -626,16 +586,11 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await loadPage(page, 'stories/components/fullscreen-modal/tests/examples/header/configurable-header.tsx', 'en', config); - await page.keyboard.press('Tab'); - await page.keyboard.press('Enter'); - - await locators.modal(page).waitFor({ state: 'visible' }); - - const modalClose = page.locator('[data-ui-name="Modal.Close"]'); - const fullScreenModalClose = page.locator('[data-ui-name="FullscreenModal.Close"]'); + await openModalByKeyboard(page); - expect(await modalClose.count()).toBe(0); - expect(await fullScreenModalClose.count()).toBe(0); + const { modalClose, fullscreenModalClose } = locators.closeElements(page); + await expect(modalClose).toHaveCount(0); + await expect(fullscreenModalClose).toHaveCount(0); }); test('Verify body scroll is restored after modal close (no inline style pollution)', { @@ -665,10 +620,7 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.evaluate(() => window.scrollTo(0, 0)); await page.locator('input[type="checkbox"]').check(); - const overflowAfterCheck = await page.evaluate(() => - window.getComputedStyle(document.body).overflow, - ); - expect(overflowAfterCheck).toBe('hidden'); + await expect(page.locator('body')).toHaveCSS('overflow', 'hidden'); }); }); }); diff --git a/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-all-features-enabled-1-webkit-linux.png b/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-all-features-enabled-1-webkit-linux.png index 44130ab5df..c38d07f95d 100644 Binary files a/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-all-features-enabled-1-webkit-linux.png and b/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-all-features-enabled-1-webkit-linux.png differ diff --git a/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-empty-header-1-webkit-linux.png b/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-empty-header-1-webkit-linux.png index e092f23807..e1777e8e04 100644 Binary files a/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-empty-header-1-webkit-linux.png and b/semcore/fullscreen-modal/__tests__/fullscreen-modal.browser-test.tsx-snapshots/-visual-Verify-header-configuration-empty-header-1-webkit-linux.png differ diff --git a/stories/components/accordion/tests/accordion.stories.tsx b/stories/components/accordion/tests/accordion.stories.tsx index 3c82bf21c2..fb79ea6ecd 100644 --- a/stories/components/accordion/tests/accordion.stories.tsx +++ b/stories/components/accordion/tests/accordion.stories.tsx @@ -1,4 +1,4 @@ -import Accrordion from '@semcore/ui/accordion'; +import Accordion from '@semcore/ui/accordion'; import type { Meta, StoryObj } from '@storybook/react-vite'; import AccordionAllPropsExample, { defaultAccordionAllProps } from './examples/accordion-all-props'; @@ -6,13 +6,13 @@ import AccordionAnimationExample from './examples/accordion-collapse-duration'; import ButtonsOnToggleExample from './examples/button-on-toggle'; import ValuesExample from './examples/values'; -const meta: Meta = { +const meta: Meta = { title: 'Components/Accordion/Tests', - component: Accrordion, + component: Accordion, }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const ButtonsOnToggle: Story = { render: ButtonsOnToggleExample, @@ -22,7 +22,7 @@ export const Values: Story = { render: ValuesExample, }; -export const AccordionAnimation: StoryObj = { +export const AccordionAnimation: Story = { render: AccordionAnimationExample, }; diff --git a/stories/components/accordion/tests/examples/accordion-all-props.tsx b/stories/components/accordion/tests/examples/accordion-all-props.tsx index 586b133bd9..9db84d8bb5 100644 --- a/stories/components/accordion/tests/examples/accordion-all-props.tsx +++ b/stories/components/accordion/tests/examples/accordion-all-props.tsx @@ -4,24 +4,15 @@ import { Flex } from '@semcore/ui/base-components'; import React from 'react'; type ExampleProps = NSAccordion.Props & { - /** Per-Collapse animation duration. Omitted by default so the root duration applies. */ collapseDuration?: number; - - /** Accordion.Item.Toggle */ - toggleTag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'; - - /** Accordion.Item.Chevron */ - chevronSize: 'm' | 'l'; - - /** Accordion.Item.Collapse */ + toggleTag: NonNullable; + chevronSize: NonNullable; initialAnimation: boolean; timingFunction: 'ease-out' | 'ease-in' | 'ease-in-out' | 'linear' | 'cubic-bezier(0.5, 0, 0, 1.12)'; animationsDisabled: boolean; overflowHidden: boolean; - defaultHeight: 'auto' | '100%'; + defaultHeight: NonNullable; preserveNode: boolean; - - /** Per-item content, editable from the Storybook panel */ item1Label: string; item1Content: string; item1Disabled: boolean; diff --git a/stories/components/accordion/tests/examples/accordion-collapse-duration.tsx b/stories/components/accordion/tests/examples/accordion-collapse-duration.tsx index dc9eedfa32..5cf70c8033 100644 --- a/stories/components/accordion/tests/examples/accordion-collapse-duration.tsx +++ b/stories/components/accordion/tests/examples/accordion-collapse-duration.tsx @@ -72,6 +72,21 @@ const Demo = () => { + + + + + + + Accordion duration 300 + + + + Hello Section + Hello Section + + + ); }; diff --git a/stories/components/base-components/flex-box/tests/examples/box-margins-and-paddings.tsx b/stories/components/base-components/flex-box/tests/examples/box-margins-and-paddings.tsx index ee1db1d89c..e3f2302ddc 100644 --- a/stories/components/base-components/flex-box/tests/examples/box-margins-and-paddings.tsx +++ b/stories/components/base-components/flex-box/tests/examples/box-margins-and-paddings.tsx @@ -61,9 +61,11 @@ const Demo = () => { {10} - + py= {10} + , scaleIndent= + {5} ); diff --git a/stories/components/button/tests/examples/button-base.tsx b/stories/components/button/tests/examples/button-base.tsx index 3792ff17a9..58fb7971f9 100644 --- a/stories/components/button/tests/examples/button-base.tsx +++ b/stories/components/button/tests/examples/button-base.tsx @@ -105,7 +105,7 @@ export const defaultButtonProps: ExampleProps = { use: 'primary', theme: 'info', hintPlacement: 'top', - style: undefined, // this prop is needed for barckground to verofy some button themes (primary invert for instance) + style: undefined, // this prop is needed for background to verofy some button themes (primary invert for instance) }; Demo.defaultProps = defaultButtonProps; diff --git a/stories/components/button/tests/examples/button-icon-only.tsx b/stories/components/button/tests/examples/button-icon-only.tsx index fb8e785eb3..4f4954d216 100644 --- a/stories/components/button/tests/examples/button-icon-only.tsx +++ b/stories/components/button/tests/examples/button-icon-only.tsx @@ -105,7 +105,7 @@ export const defaultIconButtonProps: ExampleProps = { use: 'primary', theme: 'info', hintPlacement: 'top', - style: undefined, // this prop is needed for barckground to verify some button themes (primary invert for instance) + style: undefined, // this prop is needed for background to verify some button themes (primary invert for instance) }; diff --git a/stories/components/button/tests/examples/button-neighbor-location.tsx b/stories/components/button/tests/examples/button-neighbor-location.tsx index 59e257aa78..5ebe27fbc4 100644 --- a/stories/components/button/tests/examples/button-neighbor-location.tsx +++ b/stories/components/button/tests/examples/button-neighbor-location.tsx @@ -63,7 +63,7 @@ export const defaultButtonNeighborProps: ExampleProps = { use: 'primary', theme: 'info', hintPlacement: 'top', - style: undefined, // this prop is needed for barckground to verofy some button themes (primary invert for instance) + style: undefined, // this prop is needed for barckground to verify some button themes (primary invert for instance) }; diff --git a/stories/components/color-picker/tests/examples/base-no-palette-manager.tsx b/stories/components/color-picker/tests/examples/base-no-palette-manager.tsx index af093d5509..43f0ace3c4 100644 --- a/stories/components/color-picker/tests/examples/base-no-palette-manager.tsx +++ b/stories/components/color-picker/tests/examples/base-no-palette-manager.tsx @@ -1,5 +1,5 @@ import { Flex } from '@semcore/ui/base-components'; -import ColorPicker, { PaletteManager } from '@semcore/ui/color-picker'; +import ColorPicker from '@semcore/ui/color-picker'; import { Text } from '@semcore/ui/typography'; import React from 'react'; diff --git a/stories/components/color-picker/tests/examples/label-and-color-expanded.tsx b/stories/components/color-picker/tests/examples/label-and-color-expanded.tsx index 6371fbd543..4d60b46678 100644 --- a/stories/components/color-picker/tests/examples/label-and-color-expanded.tsx +++ b/stories/components/color-picker/tests/examples/label-and-color-expanded.tsx @@ -1,6 +1,6 @@ import { Flex, Box } from '@semcore/ui/base-components'; import ColorPicker, { PaletteManager } from '@semcore/ui/color-picker'; -import React, { useState } from 'react'; +import React from 'react'; const Demo = () => { return ( diff --git a/stories/components/divider/tests/examples/divider-styles.tsx b/stories/components/divider/tests/examples/divider-styles.tsx index 47aaf27b8d..b4ff458de5 100644 --- a/stories/components/divider/tests/examples/divider-styles.tsx +++ b/stories/components/divider/tests/examples/divider-styles.tsx @@ -6,20 +6,16 @@ import React from 'react'; type DividerStylesExample = NSDivider.Props; const Demo = (props: DividerStylesExample) => { return ( - <> - - - - - - + + + ); }; export const baseExampleProps: DividerStylesExample = { diff --git a/stories/components/divider/tests/examples/render-in-center.tsx b/stories/components/divider/tests/examples/render-in-center.tsx index 7bc5f1648d..b98f3e9b39 100644 --- a/stories/components/divider/tests/examples/render-in-center.tsx +++ b/stories/components/divider/tests/examples/render-in-center.tsx @@ -1,21 +1,20 @@ +import { Box, Flex } from '@semcore/ui/base-components'; import Divider from '@semcore/ui/divider'; import React from 'react'; const Demo = () => { return ( <> -

-
+ + -
-
-
-
+ + + + -
-
+ +
); }; diff --git a/stories/components/dot/tests/examples/sizes-and-positions.tsx b/stories/components/dot/tests/examples/sizes-and-positions.tsx index 2b8f86acdb..25380d157a 100644 --- a/stories/components/dot/tests/examples/sizes-and-positions.tsx +++ b/stories/components/dot/tests/examples/sizes-and-positions.tsx @@ -10,12 +10,10 @@ import React from 'react'; const Demo = (props: NSDot.Props) => { return ( - - setVisible(false)}> - - Go to Tool Name - - - - - ); -}; - -export default Demo;