Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
d9a9b4a
[chore] unit tests
Valeria-Zimnitskaya May 19, 2026
ac7ec81
[chore] unit tests
Valeria-Zimnitskaya May 20, 2026
8f5fa33
[chore] unit tests
Valeria-Zimnitskaya May 20, 2026
4f65622
[chore] update unit approach
Valeria-Zimnitskaya May 21, 2026
d06efa2
[chore] update unit approach
Valeria-Zimnitskaya May 21, 2026
e0fb572
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya May 22, 2026
d404ce6
[chore] update unit tests
Valeria-Zimnitskaya May 26, 2026
21a1063
[chore] update unit tests
Valeria-Zimnitskaya May 26, 2026
8ab033a
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya May 26, 2026
ffd0caf
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya May 26, 2026
7c30c67
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya May 28, 2026
8aaf389
[chore] update unit test
Valeria-Zimnitskaya May 28, 2026
809f8c8
[chore] update unit test
Valeria-Zimnitskaya May 28, 2026
13ceef6
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya Jun 4, 2026
283daad
[chore] update tests
Valeria-Zimnitskaya Jun 4, 2026
5c1c9bb
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya Jun 4, 2026
2a18a1f
[chore] update tests
Valeria-Zimnitskaya Jun 4, 2026
5431271
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya Jun 5, 2026
f3343bb
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya Jun 5, 2026
abd2cdf
[chore] update tests
Valeria-Zimnitskaya Jun 5, 2026
1a84aa6
[chore] update tests
Valeria-Zimnitskaya Jun 5, 2026
2382f4d
[chore] update tests
Valeria-Zimnitskaya Jun 5, 2026
fb52347
[chore] update tests
Valeria-Zimnitskaya Jun 5, 2026
f6e2c38
[chore] update tests
Valeria-Zimnitskaya Jun 8, 2026
d31d92e
[chore] attempt to fix nvda test
Valeria-Zimnitskaya Jun 8, 2026
a089abb
[chore] update tests
Valeria-Zimnitskaya Jun 8, 2026
b19b2e6
[chore] Merge remote-tracking branch 'origin/release/v17' into UIK-37…
ilyabrower Jun 9, 2026
48dd4c9
[chore] init fix vitest in projects mode
ilyabrower Jun 10, 2026
086f550
[chore] removed old vo-tests, fixed nvda
ilyabrower Jun 10, 2026
359ca55
[chore] update uni tests
Valeria-Zimnitskaya Jun 10, 2026
e0d2e00
[chore] update unit tests
Valeria-Zimnitskaya Jun 10, 2026
52f03c3
[chore] added data-ui-tests for accordion and table
ilyabrower Jun 10, 2026
fe9dd3b
[chore] Merge branch 'UIK-3788/unit-tests' of github.com:semrush/inte…
ilyabrower Jun 10, 2026
a722ba4
[chore] Merge branch 'unit-tests-poc' into UIK-3788/unit-tests
ilyabrower Jun 10, 2026
5310ef2
[chore] added projects configuration for all semcore packages
ilyabrower Jun 10, 2026
44c5ee0
[chore] update unit tests after review
Valeria-Zimnitskaya Jun 10, 2026
009c624
[chore] update unit tests after review
Valeria-Zimnitskaya Jun 10, 2026
5505f92
[chore] update unit tests after review
Valeria-Zimnitskaya Jun 10, 2026
9bd50ec
[chore] update unit test
Valeria-Zimnitskaya Jun 10, 2026
22f536b
[chore] update unit test
Valeria-Zimnitskaya Jun 10, 2026
3fac15a
Merge branch 'release/v17' into UIK-3788/unit-tests
Valeria-Zimnitskaya Jun 10, 2026
6e0a678
[chore] changed unit-tests projects args
ilyabrower Jun 10, 2026
cd11586
[chore] set same version of node for all jobs
ilyabrower Jun 10, 2026
3814351
[chore] updated key of cache
ilyabrower Jun 10, 2026
3191cb1
[chore] don't show warning messages in tests
ilyabrower Jun 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .ci/.vo-test-hash.txt

This file was deleted.

15 changes: 0 additions & 15 deletions .ci/vo-tests-ci.ts

This file was deleted.

74 changes: 0 additions & 74 deletions .ci/vo-tests-hash.ts

This file was deleted.

102 changes: 21 additions & 81 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 24
node-version: 24.15.0
- uses: pnpm/action-setup@v4.0.0
name: Install pnpm
id: pnpm-install
Expand Down Expand Up @@ -95,7 +95,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 24
node-version: 24.15.0
- uses: pnpm/action-setup@v4.0.0
name: Install pnpm
id: pnpm-install
Expand All @@ -122,7 +122,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Install dependencies
run: |
Expand All @@ -140,7 +140,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 24
node-version: 24.15.0
- uses: pnpm/action-setup@v4.0.0
name: Install pnpm
id: pnpm-install
Expand All @@ -167,7 +167,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Install dependencies
run: |
Expand Down Expand Up @@ -223,7 +223,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 24
node-version: 24.15.0
- uses: pnpm/action-setup@v4.0.0
name: Install pnpm
id: pnpm-install
Expand All @@ -250,19 +250,22 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Install dependencies
run: |
pnpm install --frozen-lockfile
- name: Test setup
id: test-setup
run: pnpm test:setup
- name: Test
id: test
env:
CHANGED_COMPONENTS: ${{ needs.defineChangedComponents.outputs.changedComponents }}
run: pnpm test:docker run $CHANGED_COMPONENTS -- --allowOnly=false
run: |
PROJECT_ARGS=()
for COMPONENT_NAME in $CHANGED_COMPONENTS; do
PROJECT_ARGS+=(--project "@semcore/$COMPONENT_NAME")
done

pnpm test run "${PROJECT_ARGS[@]}" -- --allowOnly=false
continue-on-error: true
- name: Save test results as artifacts
if: steps.test.outcome != 'success'
Expand All @@ -274,69 +277,6 @@ jobs:
- name: Fail if test step actually failed
if: steps.test.outcome != 'success'
run: exit 1
# a11y-tests:
# runs-on: macos-14
# needs: build
# steps:
# - uses: actions/checkout@v4.1.1
# - name: Install Node.js
# uses: actions/setup-node@v4.0.1
# with:
# node-version: 24
# - uses: pnpm/action-setup@v4.0.0
# name: Install pnpm
# id: pnpm-install
# with:
# version: 10.32.1
# run_install: false
# - name: Get pnpm store directory
# id: pnpm-cache
# run: |
# echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
# - uses: actions/cache@v4
# name: Setup pnpm cache
# with:
# path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
# key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
# - name: Restore cached build
# uses: actions/cache@v4
# id: cache-build
# with:
# path: |
# semcore/*/lib
# tools/*/lib
# semcore/icon/**/*.js
# semcore/icon/**/*.mjs
# semcore/icon/**/*.d.ts
# semcore/illustration/**/*.js
# semcore/illustration/**/*.mjs
# semcore/illustration/**/*.d.ts
# key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
# - name: Install dependencies
# run: |
# pnpm install --frozen-lockfile
# - name: Install Browser
# run: npx playwright install webkit
# - name: Enable VoiceOver Automation
# uses: guidepup/setup-action@0.15.3
# - name: Voice Over testing
# id: a11y-testing
# uses: nick-fields/retry@v2.8.3
# with:
# timeout_minutes: 40
# max_attempts: 3
# command: pnpm run vo-test:ci
# continue-on-error: true
# - name: Save test results as artifacts
# if: steps.a11y-testing.outcome != 'success'
# uses: actions/upload-artifact@v4
# with:
# name: a11y-testing-failure-output
# path: test-results
# retention-days: 3
# - name: Fail if test step actually failed
# if: steps.a11y-testing.outcome != 'success'
# run: exit 1
browser-tests-visual:
runs-on: ubuntu-latest
needs: [ build, defineChangedComponents ]
Expand Down Expand Up @@ -387,7 +327,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Build basic packages
if: steps.cache-build.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -462,7 +402,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
- name: Build basic packages
if: steps.cache-build.outputs.cache-hit != 'true'
run: |
Expand Down Expand Up @@ -532,7 +472,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Build basic packages
if: steps.cache-build.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -568,7 +508,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 24
node-version: 24.15.0
- uses: pnpm/action-setup@v4.0.0
name: Install pnpm
id: pnpm-install
Expand Down Expand Up @@ -597,13 +537,13 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-5
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Install dependencies
run: |
pnpm install --frozen-lockfile --ignore-scripts
- name: Install Playwright Browsers
run: npx playwright install
- name: Install Playwright Firefox
run: pnpm exec playwright install firefox
- name: NVDA setup
run: pnpm nvda-test:setup
- name: NVDA testing
Expand Down
6 changes: 1 addition & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,7 @@ To preview the website locally, run `pnpm website`. The site will be accessible

## Screen reader tests

Ensuring the accessibility of our components is a priority. We conduct automated screen reader tests, focusing on VoiceOver screen reader in Safari on macOS. Here's how to set up and run these tests:

- To set up the environment, execute `pnpm vo-test:setup`.
- Open `voiceOver Utility > General` on your mac and enable the setting "Allow VoiceOver to be controlled with AppleScript"
- Run the tests using the command `pnpm vo-test`.
We use automated NVDA tests to check screen reader support on Windows. To prepare the environment for the first run, use `pnpm nvda-test:setup`. After setup, run the tests with `pnpm nvda-test`.

## Caveats

Expand Down
3 changes: 0 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
"axe-test": "pnpm playwright test --config playwright.axe.config.ts",
"axe-test:docker": "pnpm run-in-docker pnpm install-n-axe-test",
"test:types": "vitest typecheck",
"vo-test:setup": "npx @guidepup/setup",
"vo-test": "playwright test --config playwright.vo.config.ts",
"vo-test:ci": "pnpm tsm --require=./.ci/tsm-filter-warnings.js ./.ci/vo-tests-ci.ts",
"nvda-test:setup": "npx @guidepup/setup",
"nvda-test": "playwright test --config playwright.nvda.config.ts",
"run-in-docker": "docker run -e TEST_TAG=\"$TEST_TAG\" -e PLAYWRIGHT_ARGS= --rm --network host -v $(pwd)/package.json:/work/package.json -v $(pwd)/vite.config.ts:/work/vite.config.ts -v $(pwd)/playwright.browser.config.ts:/work/playwright.browser.config.ts -v $(pwd)/playwright.axe.config.ts:/work/playwright.axe.config.ts -v $(pwd)/.storybook:/work/.storybook -v $(pwd)/allure-results:/work/allure-results/ -v $(pwd)/semcore:/work/semcore/ -v $(pwd)/stories:/work/stories/ -v $(pwd)/tools:/work/tools/ -v $(pwd)/website:/work/website/ -v $(pwd)/test-results:/work/test-results/ -w /work/ intergalactic-playwright:17.0.1",
Expand Down
23 changes: 0 additions & 23 deletions playwright.vo.config.ts

This file was deleted.

22 changes: 22 additions & 0 deletions semcore/accordion/__tests__/__snapshots__/index.test.tsx.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`Accordion > Verify data-ui-name 1`] = `
{
"children": [
{
"children": [
{
"children": [],
"uiName": "Item.ToggleButton",
},
],
"uiName": "Item.Toggle",
},
{
"children": [],
"uiName": "Item.Collapse",
},
],
"uiName": null,
}
`;
Loading
Loading