React Testing
affaan-m/ECC
React component testing with React Testing Library, Vitest/Jest, MSW for network mocking, accessibility assertions with axe, and the decision boundary between component tests and Playwright/Cypress…
Auto-generate all test files for DS components including visual, a11y, component, page object, and unit tests.
$ npx skills add baloise/design-system --skill ds-test-component -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install baloise/design-system ds-test-component --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ds-test-component .claude/skills/ds-test-component && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ds-test-component" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-component into .claude/skills/ds-test-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-test-component", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-componentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add baloise/design-system --skill ds-test-component -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install baloise/design-system ds-test-component --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ds-test-component .agents/skills/ds-test-component && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ds-test-component" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-component into .agents/skills/ds-test-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-test-component", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add baloise/design-system --skill ds-test-component -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install baloise/design-system ds-test-component --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ds-test-component .cursor/skills/ds-test-component && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ds-test-component" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-component into .cursor/skills/ds-test-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-test-component", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/baloise/design-system.git --path .claude/skills/ds-test-component--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add baloise/design-system --skill ds-test-component -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install baloise/design-system ds-test-component --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ds-test-component .gemini/skills/ds-test-component && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ds-test-component" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-component into .gemini/skills/ds-test-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-test-component", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install baloise/design-system ds-test-componentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add baloise/design-system --skill ds-test-component -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ds-test-component .github/skills/ds-test-component && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ds-test-component" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-component into .github/skills/ds-test-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-test-component", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add baloise/design-system --skill ds-test-component -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install baloise/design-system ds-test-component --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ds-test-component .opencode/skills/ds-test-component && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ds-test-component" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-test-component into .opencode/skills/ds-test-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-test-component", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ds-test-componentAuto-generate all test files for DS components including visual, a11y, component, page object, and unit tests.
Ds Test Component is an agent skill from baloise/design-system. Auto-generate all test files for DS components including visual, a11y, component, page object, and unit tests. Use when creating new components or setting up comprehensive test coverage.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `README.md`, `REFERENCE.md` and `generators.js`).
It sits in Testing & QA, covering Accessibility, Unit testing and Test coverage. It works with Playwright. The repository describes itself as: The Baloise Design System consists of reusable components and a clearly defined visual style, that can be assembled together to build any number of applications. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 19063c5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ds Test Component loads about 2.1k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 511 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from baloise/design-system at commit 19063c5, republished under its Apache-2.0 licence (© baloise). 511 words, ~2,096 tokens.
.claude/skills/ds-test-component/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Auto-generates all test files for a Helvetia Design System component in one command.
Generate all tests for a component:
ds-test-component buttonProcess:
Output files:
button.visual.html — Visual test fixture with variant sectionsbutton.visual.play.ts — Playwright visual regression testsbutton.a11y.play.ts — Comprehensive accessibility testsbutton.component.play.ts — Event and behavior testsbutton.po.ts — Page object in packages/playwright/src/lib/components/button.util.spec.ts — Unit tests (if .util.ts exists)visual.html — Test fixture with sections:
render() JSXvisual.play.ts — Playwright tests:
button.style.htmlbutton.visual.htmlUse a simple string array VARIANTS constant to avoid repetitive test code:
Define VARIANTS with testid strings:
const TAG = 'data'
const VARIANTS = ['basic', 'border', 'horizontal', 'multiline', 'required', 'disabled', 'custom-form'] as const
const image = screenshot(TAG)Loop through variants in forEach:
test.describe('host', () => {
test.beforeEach('Setup', async ({ page }) => {
await page.setupVisualTest(`/components/${TAG}/test/${TAG}.visual.html`)
})
VARIANTS.forEach(variant => {
test(variant, async ({ page }) => {
const el = page.getByTestId(variant)
await expectScreenshot(el, image(variant))
})
})
})If component has both style.html and visual.html:
test.describe('style', () => {
test.beforeEach('Setup', async ({ page }) => {
await page.setupVisualTest(`/components/${TAG}/test/${TAG}.style.html`)
})
VARIANTS.forEach(variant => {
test(variant, async ({ page }) => {
const el = page.getByTestId(variant)
await expectScreenshot(el, image(`style-${variant}`))
})
})
})
test.describe('host', () => {
test.beforeEach('Setup', async ({ page }) => {
await page.setupVisualTest(`/components/${TAG}/test/${TAG}.visual.html`)
})
VARIANTS.forEach(variant => {
test(variant, async ({ page }) => {
const el = page.getByTestId(variant)
await expectScreenshot(el, image(variant))
})
})
})Benefits:
a11y.play.ts — Comprehensive a11y coverage:
component.play.ts — Behavior tests:
@Event() decoratorsvalue prop, test hasValue() assertionbutton.po.ts — Page object for testing:
readonly property for each @part JSDoc tagnative = this.el.locator('[part="native"]')click(), focus(), etc.assertToBeDisabled(), assertToBeLoading(), etc.hasValue() if component has value prop`Located in: packages/playwright/src/lib/components/button.po.ts
button.util.spec.ts — Tests for utility functions:
button.util.ts if it existspnpm testds-test-component buttonDetected props: color, size, disabled, loading, icon, label
Which are visual props? (deselect unwanted)
✓ color (enum)
✓ size (enum)
✓ disabled (state)
✓ loading (state)
✓ icon (prop)
✗ label (skip)Detected slots: icon, label, badge
Which to demo? (deselect unwanted)
✓ icon
✓ label
✓ badge✓ button.visual.html (8 variant sections)
✓ button.visual.play.ts (16 visual tests)
✓ button.a11y.play.ts (12 a11y tests)
✓ button.component.play.ts (8 event + 4 state tests)
✓ button.po.ts (5 parts + 4 assertions)
✓ button.util.spec.ts (4 utils, 18 test cases)
Next: Review files, run tests: pnpm play, pnpm test<!-- Basic -->
<section data-testid="basic">
<span>Basic</span>
<ds-button icon="plus">Button</ds-button>
</section>
<!-- Colors (enum) -->
<section data-testid="colors">
<span>Colors</span>
<ds-button color="primary">Primary</ds-button>
<ds-button color="secondary">Secondary</ds-button>
...
</section>
<!-- Disabled (state) -->
<section data-testid="disabled">
<span>Disabled</span>
<ds-button disabled>Disabled</ds-button>
</section>
<!-- Icon slot demo -->
<section data-testid="slot-icon">
<span>Slot: Icon</span>
<ds-button><ds-icon name="plus"></ds-icon>Button</ds-button>
</section>test('should fire dsClick event', async ({ page }) => {
await page.mount(`<ds-button>Click me</ds-button>`)
const dsButton = new DsButton(page.locator('ds-button'))
const spy = await dsButton.el.spyOnEvent('dsClick')
await dsButton.click()
expect(spy).toHaveReceivedEventTimes(1)
})
test('should not fire dsClick when disabled', async ({ page }) => {
await page.mount(`<ds-button disabled>Disabled</ds-button>`)
const dsButton = new DsButton(page.locator('ds-button'))
const spy = await dsButton.el.spyOnEvent('dsClick')
await dsButton.assertToBeDisabled()
expect(spy).toHaveReceivedEventTimes(0)
})export class DsButton extends PageObject {
readonly native = this.el.locator('[part="native"]')
readonly spinner = this.el.locator('[part="spinner"]')
readonly icon = this.el.locator('[part="icon"]')
async click() {
await this.native.click()
}
async assertToBeDisabled() {
await expect(this.el).toHaveAttribute('disabled')
}
async assertToBeLoading() {
await expect(this.el).toHaveAttribute('loading')
}
async hasValue(value: string) {
await expect(this.el).toHaveValue(value)
}
}@Event() decoratorsrender() JSX, auto-generates demo content@part JSDoc tags.util.ts existsSee REFERENCE.md for detailed generation rules for each test type.
© baloise, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files in .claude/skills/ds-test-component of baloise/design-system.
Open the folder on GitHubat commit 19063c5
Ds Test Component next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ds Test Component this skillbaloise/design-system | 114 | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| React Testingaffaan-m/ECC | 274k | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| PlaywrightEliasOulkadi/shokunin | 114 | — | ~3.6k | Automated safety check: Notes | MIT | |
| Playwright Testingchongdashu/vibejam-starter-pack | 149 | — | ~2.1k | Automated safety check: Pass | None | |
| Playwright Testingchongdashu/vibejam-starter-pack | 149 | — | ~2.2k | Automated safety check: Pass | None | |
| Testingradix-ng/primitives | 274 | — | ~3.3k | Automated safety check: Pass | MIT |
affaan-m/ECC
React component testing with React Testing Library, Vitest/Jest, MSW for network mocking, accessibility assertions with axe, and the decision boundary between component tests and Playwright/Cypress…
EliasOulkadi/shokunin
Browser automation, web scraping, E2E testing, and visual regression with Playwright.
chongdashu/vibejam-starter-pack
Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.
chongdashu/vibejam-starter-pack
Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.
radix-ng/primitives
Test Radix NG primitives across every layer and pick the RIGHT one for a change: Vitest unit (zoneless), jest-axe a11y, Playwright browser regression (apps/visual-regression), SSR…
travisjneuman/.claude
Test-writing patterns for JS/TS, Python, Go, and Rust (unit, integration, E2E, visual regression).
baloise/design-system
Migrate a consuming app from the Baloise Design System (bal-) to the Helvetia Design System (ds-).
baloise/design-system
Create a changeset entry for pending changes using the repo's create-changeset.mjs CLI.
baloise/design-system
Create new web components in the Helvetia Design System. An agent skill from baloise/design-system.
baloise/design-system
Lint and fix Helvetia Design System components for style guide compliance.
baloise/design-system
Check a component's design tokens in Base.tokens.json against the canonical naming convention (packages/tokens/CONTEXT.md "Token Naming Anatomy"), report violations as a markdown table, and apply…
baloise/design-system
Post the /update-screenshots bot command as a PR comment to re-baseline visual regression snapshots for one or more components.
Works with
Categories
Auto-generate all test files for DS components including visual, a11y, component, page object, and unit tests. Ds Test Component is an agent skill from baloise/design-system. Auto-generate all test files for DS components including visual, a11y, component, page object, and unit tests.
Ds Test Component fits situations like: creating new components; setting up comprehensive test coverage.
Run `npx skills add baloise/design-system --skill ds-test-component -a claude-code`. Or copy the skill folder (.claude/skills/ds-test-component in baloise/design-system) into .claude/skills/ds-test-component in your project. Claude Code loads it when a task matches its description.
Run `npx skills add baloise/design-system --skill ds-test-component -a codex`. Or copy the skill folder (.claude/skills/ds-test-component in baloise/design-system) into .agents/skills/ds-test-component in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add baloise/design-system --skill ds-test-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ds-test-component, .gemini/skills/ds-test-component, .github/skills/ds-test-component and .opencode/skills/ds-test-component in your project.
Going by SKILL.md and its folder, Ds Test Component needs JavaScript for the scripts in its folder and the command-line tools its instructions call (pnpm). Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ds Test Component is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ds Test Component: React Testing (affaan-m/ECC, 274k stars), Playwright (EliasOulkadi/shokunin, 114 stars), Playwright Testing (chongdashu/vibejam-starter-pack, 149 stars) and Playwright Testing (chongdashu/vibejam-starter-pack, 149 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
baloise (a GitHub organization) maintains it in baloise/design-system, which has 114 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.
Source: baloise/design-system on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.