Skip to main content

uui-e2e-testing

Helps create and maintain E2E and screenshot tests for UUI components using Playwright. Use when adding E2E tests, creating screenshot tests, updating preview configurations, or working with Property Explorer previews for testing.

ソース情報

リポジトリ
epam/UUI
ソースの最終更新活動
2026年3月4日 09:47
検出された SKILL.md の言語
英語
スター
249
フォーク
81

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
uui-e2e-testing
description
Helps create and maintain E2E and screenshot tests for UUI components using Playwright. Use when adding E2E tests, creating screenshot tests, updating preview configurations, or working with Property Explorer previews for testing.
# UUI E2E Testing UUI uses Playwright for E2E and screenshot testing. All test infrastructure is in `uui-e2e-tests/` folder. These tests are part of PR quality gate. **Prerequisites:** The UUI docs server must be running before E2E tests. Start with `yarn start` or `yarn build-server && yarn start-server`. Tests default to `http://localhost:9009`. For setup details (Docker, browsers, env vars), see [uui-e2e-tests/readme.md](../../uui-e2e-tests/readme.md). ## Screenshot Testing Screenshot tests use Preview pages from Property Explorer. When editing/adding component props, update screenshot tests accordingly. ### Create/Edit Preview 1. Go to `app/src/docs/explorerConfigs` and find/add config file for your component 2. Add preview configuration using `preview` function: ```typescript preview: (docPreview: DocPreviewBuilder<ComponentProps>) => { const TEST_DATA = { icon: 'action-account-fill.svg' }; // Object form docPreview.add({ id: TComponentPreview['Size Variants'], matrix: { size: { examples: '*' }, caption: { values: ['Test'] }, }, cellSize: '210-60', }); // 3-argument shorthand form docPreview.add(TComponentPreview['Color Variants'], { color: { examples: '*' }, fill: { examples: '*' }, }, '140-60'); } ``` **Skin-specific overrides** with `docPreview.update()`: ```typescript preview: (docPreview: DocPreviewBuilder<ComponentProps>) => { docPreview.add({ id: TComponentPreview['Size Variants'], matrix: { /* ... */ } }); // Override matrix for specific skins docPreview.update(TComponentPreview['Size Variants'], { [TSkin.Loveship]: { fill: { values: ['solid'] } }, }); } ``` **Guidelines:** - Split size (layout) and color (appearance) props into separate previews - Use `examples: '*'` to test all enum values - Use `values: [...]` for specific test values - Use `condition` for conditional props ### Define Screenshot Tests Add test configuration in `uui-e2e-tests/tests/previewTests/preview.e2e.ts`: ```typescript // Array form — multiple test configs per component .add(componentName, [ { previewId: [TComponentPreview['Color Variants']], skins: SKINS.promo_loveship_electric, slow: true, // Optional: for complex renders }, { previewId: [TComponentPreview['Size Variants']], }, { onlyChromium: true, // Optional: browser-specific previewId: [TComponentPreview['Color Variants']], previewTag: 'PseudoStateHover', skins: SKINS.promo_loveship_electric, forcePseudoState: [{ state: 'hover', selector: '.uui-component' }], }, ]) // Single-object shorthand — simple components .add(alert, { previewId: values(TAlertPreview) }) .add(tooltip, { previewId: values(TTooltipPreview), skins: SKINS.promo_loveship }) ``` **Additional options:** - `clickElement: () => 'input'` — click an element before screenshot (e.g. for DatePicker open state) ## E2E Tests E2E tests validate complex component behavior that's hard to test via unit tests. **Location:** `uui-e2e-tests/tests/Integration/` **Setup:** Use `setupDocExampleTest` with `testUrl`, `PageObjectConstructor`, and Playwright fixtures (`pageWrapper`, `testInfo`). Page objects live in `uui-e2e-tests/framework/pageObjects/`. **Example:** ```typescript import { test } from '../../../framework/fixtures'; import { DropdownObject } from '../../../framework/pageObjects/dropdownObject'; import { setupDocExampleTest } from '../testUtils'; test('Dropdown / Boundary mode', async ({ pageWrapper }, testInfo) => { const { pageObject } = await setupDocExampleTest({ testInfo, pageWrapper, PageObjectConstructor: DropdownObject, testUrl: '/preview?theme=loveship&isSkin=true&componentId=dropdown&previewId=...', }); await pageObject.waitForContentLoad(); await pageObject.hoverTarget(); await pageObject.waitDropdownBodyVisible(); // ... assertions }); ``` **testUrl** can target doc examples (`/docExample?examplePath=...`) or preview pages (`/preview?componentId=...&previewId=...`). ## Commands - `yarn test-e2e` — Run all E2E tests - `yarn test-e2e-chromium` — Run in Chromium only - `yarn test-e2e-update` — Update screenshot baselines - `yarn test-e2e-open-report` — Open test report ## Workflow When adding/editing component props: 1. Update preview configuration in `app/src/docs/explorerConfigs` 2. Add screenshot test entries in `preview.e2e.ts` 3. Run `yarn test-e2e` to verify 4. Update screenshots if needed: `yarn test-e2e-update` ## References - Setup and troubleshooting: [uui-e2e-tests/readme.md](../../uui-e2e-tests/readme.md) - Integration test examples: `uui-e2e-tests/tests/Integration/`
GitHubで見る