diff --git a/packages/elements/src/components/ino-radio-group/ino-radio-group.e2e.ts b/packages/elements/src/components/ino-radio-group/ino-radio-group.e2e.ts deleted file mode 100644 index 43b0957004..0000000000 --- a/packages/elements/src/components/ino-radio-group/ino-radio-group.e2e.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { E2EElement, E2EPage } from '@stencil/core/testing'; -import { setupPageWithContent } from '../../util/e2etests-setup'; - -describe('InoRadioGroup', () => { - let page: E2EPage; - let radioGroup: E2EElement; - let radioGroupWrapper: E2EElement; - - beforeEach(async () => { - page = await setupPageWithContent(` - - - - - - `); - radioGroup = await page.find('ino-radio-group'); - radioGroupWrapper = await page.find('ino-radio-group > div'); - }); - - async function simulateArrow( - arrow: 'ArrowUp' | 'ArrowDown' | 'ArrowRight' | 'ArrowLeft', - ): Promise { - await radioGroupWrapper.press(arrow); - return page.waitForChanges(); - } - - it('should check first radio in group on ArrowDown', async () => { - const eventSpy = await page.spyOnEvent('valueChange'); - await simulateArrow('ArrowDown'); - expect(eventSpy).toHaveReceivedEventDetail('a'); - }); - - it('should check second radio in group on ArrowDown if first one is checked', async () => { - radioGroup.setAttribute('value', 'a'); - await page.waitForChanges(); - const eventSpy = await page.spyOnEvent('valueChange'); - await simulateArrow('ArrowDown'); - expect(eventSpy).toHaveReceivedEventDetail('b'); - }); - - it('should check first radio in group on ArrowDown if last one is checked', async () => { - radioGroup.setAttribute('value', 'c'); - await page.waitForChanges(); - const eventSpy = await page.spyOnEvent('valueChange'); - await simulateArrow('ArrowDown'); - expect(eventSpy).toHaveReceivedEventDetail('a'); - }); - - it('should check last radio in group on ArrowUp if first one is checked', async () => { - radioGroup.setAttribute('value', 'a'); - await page.waitForChanges(); - const eventSpy = await page.spyOnEvent('valueChange'); - await simulateArrow('ArrowUp'); - expect(eventSpy).toHaveReceivedEventDetail('c'); - }); -}); diff --git a/packages/storybook/src/stories/ino-radio-group/ino-radio-group.spec.ts b/packages/storybook/src/stories/ino-radio-group/ino-radio-group.spec.ts new file mode 100644 index 0000000000..ba2a5e8493 --- /dev/null +++ b/packages/storybook/src/stories/ino-radio-group/ino-radio-group.spec.ts @@ -0,0 +1,34 @@ +import { expect, test } from '@playwright/test'; +import { goToStory } from '../test-utils'; + +test.describe('ino-radio-group', () => { + test.beforeEach(async ({ page }) => { + await goToStory(page, ['Input', 'ino-radio-group', 'default']); + }); + + test('should have grouped three radios', async ({ page }) => { + const inoRadioGroup = page.locator('ino-radio-group'); + const radios = inoRadioGroup.getByRole('radio'); + await expect(radios).toHaveCount(3); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-2'); + }); + + test('should check radios with arrow keys', async ({ page }) => { + const inoRadioGroup = page.locator('ino-radio-group'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-2'); + await inoRadioGroup.press('Tab'); + + await inoRadioGroup.press('ArrowUp'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-1'); + await inoRadioGroup.press('ArrowUp'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-3'); + await inoRadioGroup.press('ArrowDown'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-1'); + await inoRadioGroup.press('ArrowRight'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-2'); + await inoRadioGroup.press('ArrowRight'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-3'); + await inoRadioGroup.press('ArrowLeft'); + await expect(inoRadioGroup).toHaveAttribute('value', 'opt-2'); + }); +});