agentmantis/test-skills

create-handover-test

Creates a ticket-driven handover test for a Playwright E2E test suite.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/agentmantis/test-skills --skill create-handover-test

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Create Handover Test

Generate a ticket-driven handover test that validates specific acceptance criteria.


Workflow

  1. Parse the ticket key and description from the user's request (e.g., PROJ-456 bulk export)
  2. Check if a POM exists for the page under test in e2e/poms/
  • If yes, read it and add any new methods needed for this ticket's acceptance criteria
  • If no, create one first using the create-pom skill
  1. Check if test data exists — create or update as needed
  2. Create the spec file in e2e/tests/handover/
  3. Run the test to verify it passes:
bash
   npx playwright test --project="chromium:handover" {TICKET}-{description}.spec.ts

Naming Convention

Filename

{TICKET}-{short-description}.spec.ts
  • {TICKET} — The ticket key exactly as it appears in the tracker (e.g., PROJ-456, MANT-123)
  • {short-description} — Brief kebab-case summary (NOT the full ticket title)

Examples:

  • PROJ-456-bulk-export.spec.ts
  • MANT-123-vault-bulk-delete.spec.ts
  • FEAT-789-user-avatar-upload.spec.ts

test.describe Block

The outer test.describe must include the ticket key for traceability:

typescript
test.describe('PROJ-456: Bulk Export', () => {

Spec Structure

typescript
import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { FeaturePage } from '../../poms/feature.page';

const authFile = getAuthFilePath();

test.describe('PROJ-456: Bulk Export', () => {
    test.beforeAll(async ({ browser }) => {
        const context = await browser.newContext({
            storageState: authFile,
        });
        const page = await context.newPage();
        const pom = new FeaturePage(page);
        await pom.setUp();
        await page.close();
        await context.close();
    });

    test('should export selected items as CSV', async ({ page, testData }) => {
        const pom = new FeaturePage(page);
        const items = testData.feature.items;

        await pom.navigateToPage();
        // ... validate acceptance criteria from ticket
    });

    test('should show error when no items selected', async ({ page }) => {
        const pom = new FeaturePage(page);

        await pom.navigateToPage();
        // ... validate error handling criteria
    });
});

See references/handover-spec-template.md for the full template.


POM Rules

Handover tests follow all the same POM rules as regression/smoke tests:

  • Use the existing POM for the page under test
  • If the ticket requires new interactions, add methods to the existing POM — do NOT create a second POM for the same page
  • Only create a new POM if the ticket introduces an entirely new page
  • All new POM methods must have full JSDoc with Steps and @param tags

All Standard Rules Apply

  • Import test from custom fixtures, not from @playwright/test
  • No raw page calls in specs — all interaction through POMs
  • Every test is independent — creates its own data, navigates independently
  • No hardcoded test data — use external JSON via the testData fixture
  • beforeAll uses manual browser context with storageState for cleanup

Promotion Lifecycle

Handover tests are temporary by design. After the ticket is Done:

ActionWhen
Promote to regressionFeature is permanent, should run on every build
Promote to smokeFeature is on the critical path
DeleteAlready covered by existing tests, or feature was reverted

Use the promote-handover-test skill when ready to promote.

Staleness Policy

  • Review tests/handover/ after every sprint/release
  • Any spec whose ticket is Done/Closed should be promoted or deleted
  • Never leave handover tests running indefinitely

File Checklist

  • [ ] e2e/poms/{feature}.page.ts — POM updated with new methods (or new POM created)
  • [ ] e2e/test-data/{feature}.json — Test data (created or updated)
  • [ ] e2e/tests/handover/{TICKET}-{description}.spec.ts — Spec file
  • [ ] Filename includes ticket key prefix
  • [ ] test.describe includes ticket key
  • [ ] All POM methods have JSDoc
  • [ ] Tests pass: npx playwright test --project="chromium:handover" {TICKET}-{description}.spec.ts

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills