원클릭으로
e2e-testing-standards
End-to-end testing with Playwright - browser automation, visual regression, test data management.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
End-to-end testing with Playwright - browser automation, visual regression, test data management.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Orchestrates SDD project initialization — version detection, environment verification, scaffolding, and git setup.
Manage project settings in sdd/sdd-settings.yaml including component settings that drive scaffolding.
Single gateway for all core↔tech-pack interactions. Reads manifests, resolves paths, loads skills/agents, routes commands.
Manage tasks and plans using the .tasks/ directory.
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
Standards for authoring SDD plugin commands — frontmatter, user interaction, skill/agent invocation, CLI integration, and output formatting.
| name | e2e-testing-standards |
| description | End-to-end testing with Playwright - browser automation, visual regression, test data management. |
| user-invocable | false |
Dynamic path: All paths below use
components/<testing-component>/as a placeholder. The actual directory depends on the testing component defined insdd/sdd-settings.yaml. Delegate to thetechpack-settingsskill for directory path resolution — it maps component type (testing) + name to a filesystem path (e.g.,type=testing, name=e2e→components/testing-e2e/).
Full browser automation tests that verify complete user journeys. E2E tests run in Kubernetes via Testkube with Playwright.
| Aspect | Details |
|---|---|
| Location | components/<testing-component>/tests/e2e/ and e2e/ |
| Framework | Playwright |
| Executor | Testkube |
| Runs In | Kubernetes cluster |
| Written By | Tester agent |
components/<testing-component>/tests/e2e/
├── tests/
│ ├── auth/
│ │ ├── login.spec.ts
│ │ └── logout.spec.ts
│ ├── planning/
│ │ ├── create-plan.spec.ts
│ │ └── edit-plan.spec.ts
│ └── admin/
│ └── user-management.spec.ts
├── pages/
│ ├── login.page.ts
│ ├── dashboard.page.ts
│ └── plan-editor.page.ts
├── fixtures/
│ ├── users.ts
│ └── plans.ts
├── helpers/
│ ├── auth.ts
│ └── api.ts
└── playwright.config.ts
// components/<testing-component>/tests/e2e/playwright.config.ts
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
testDir: './tests',
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: [
['html', { open: 'never' }],
['json', { outputFile: 'test-results/results.json' }],
],
use: {
baseURL: process.env.APP_URL || 'http://webapp:5173',
trace: 'on-first-retry',
screenshot: 'only-on-failure',
video: 'on-first-retry',
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
},
{
name: 'mobile',
use: { ...devices['iPhone 13'] },
},
],
});
For detailed guidance, read these on-demand:
Add data-testid attributes to components for reliable selectors:
// Component with test attributes
export const LoginForm = () => {
return (
<form data-testid="login-form">
<input data-testid="email-input" type="email" name="email" />
<input data-testid="password-input" type="password" name="password" />
<button data-testid="login-button" type="submit">
Login
</button>
<div data-testid="error-message" className="error">
{error}
</div>
</form>
);
};
@spec and @issue JSDoc tagsBefore committing E2E tests, verify:
@spec and @issue tags present in file headerdata-testid attributes used for selectorstestkube run testThis skill defines no input parameters or structured output.