用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill testing命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
基于 SOC 职业分类
正在显示 SKILL.md
| name | testing |
| description | | Use when this capability is needed. |
/\
/E2E\ Few: Full user flows
/------\
/ INT \ Some: Component integration
/----------\
/ UNIT \ Many: Individual functions
/--------------\
// sum.test.ts
import { sum } from './sum';
describe('sum', () => {
it('adds two numbers', () => {
expect(sum(2, 3)).toBe(5);
});
it('handles negative numbers', () => {
expect(sum(-1, 1)).toBe(0);
});
});
import { render, screen, fireEvent, waitFor } from '@testing-library/react';
import { UserForm } from './UserForm';
describe('UserForm', () => {
it('submits form data', async () => {
const onSubmit = jest.fn();
render(<UserForm onSubmit={onSubmit} />);
fireEvent.change(screen.getByLabelText('Name'), {
target: { value: 'John' }
});
fireEvent.click(screen.getByText('Submit'));
await waitFor(() => {
expect(onSubmit).toHaveBeenCalledWith({ name: 'John' });
});
});
it('shows validation errors', async () => {
render(<UserForm onSubmit={jest.fn()} />);
fireEvent.click(screen.getByText('Submit'));
expect(await screen.findByText('Name is required')).toBeInTheDocument();
});
});
import request from 'supertest';
import app from '../app';
describe('GET /api/users/:id', () => {
it('returns user', async () => {
const response = await request(app)
.get('/api/users/123')
.expect(200);
expect(response.body.user).toMatchObject({
id: '123',
name: expect.any(String)
});
});
it('returns 404 for non-existent user', async () => {
await request(app)
.get('/api/users/999')
.expect(404);
});
});
import { test, expect } from '@playwright/test';
test('user can sign up', async ({ page }) => {
await page.goto('/signup');
await page.fill('[name="email"]', 'test@example.com');
await page.fill('[name="password"]', 'password123');
await page.click('button[type="submit"]');
await expect(page).toHaveURL('/dashboard');
await expect(page.locator('h1')).toContainText('Welcome');
});
Converted and distributed by TomeVault — claim your Tome and manage your conversions.