Install
$ agentstack add skill-kennguyen887-agent-foundation-write-frontend-tests ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Write frontend tests
Two layers; pick by what you're verifying. principle → ▸ Example (Jest/RTL/Cypress) → ▸ Other stacks.
| Layer | Tool | For | |---|---|---| | Unit / component | Jest + React Testing Library | utils, hooks, component behavior in isolation | | E2E | Cypress + Cucumber (BDD) | real user flows through the running app |
1. Unit / component (Jest + RTL)
- Colocate
*.test.ts(x)next to source (or undersrc/test/). Test **behavior through the
public surface**: render the component, query by role/text, fire user events, assert what the user sees — not internal state. Pure utils/hooks are tested directly.
- Mock the framework + externals only:
jest.mock('next/router', () => ({ useRouter: () => ({ query: {} }) })), mock service classes; never mock the unit under test.
- AAA + specific assertions (
toEqual/toMatchObjectwith real expected values, nottoBeTruthy()).
``ts describe('convertObjectToArray', () => { it('flattens primitive values', () => { expect(convertObjectToArray({ a: 1, b: 'x' })).toEqual(['a', '1', 'b', 'x']); }); }); `` ▸ Other stacks: Vitest + RTL — identical patterns.
2. E2E (Cypress + Cucumber)
- Gherkin feature files under
cypress/e2e//*.featuredescribe flows in
Given/When/Then; step definitions implement them; Scenario Outline + Examples cover input variations. Keep API helpers in cypress/services/, test data in cypress/constants/, and custom commands in cypress/support/. ``gherkin Scenario: Create a listing Given User logged in When User submits the new-listing form Then The listing appears in the list `` ▸ Other stacks: Playwright (+ optional BDD) — same user-flow-level coverage.
3. Gates
Lint/format = Biome (warning-first rollout, promoted to errors over time). A git-hook runner (e.g. lefthook) runs biome check/format on staged files pre-commit, and type-check + jest pre-push. Run pnpm test (unit) and the e2e suite before opening a PR.
Verification
- New behavior has a unit test (util/hook/component via RTL) and, for a user-facing flow, a Cypress
feature; tests assert observable behavior with specific values, not truthiness.
pnpm type-check,pnpm test, and Biome all pass.
Related
structure-a-frontend-app·write-frontend-code·write-unit-tests(backend equivalent).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kennguyen887
- Source: kennguyen887/agent-foundation
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.