promote-handover-test
Promotes a handover test to the regression or smoke test suite. Renames the file to remove the ticket prefix, moves it to the target directory, and updates the test.describe block. Use when asked to promote, graduate, or move a handover test to regression or smoke.
How do I install this agent skill?
npx skills add https://github.com/agentmantis/test-skills --skill promote-handover-testIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill facilitates the promotion and merging of Playwright test files. It is generally safe for its intended purpose but possesses an attack surface for indirect prompt injection from test files and potential command injection if file names are not properly validated.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
Promote Handover Test
Move a completed handover test from tests/handover/ to tests/regression/ or tests/smoke/.
Workflow
- Locate the handover test — search
e2e/tests/handover/for the ticket key or file path - Determine the target suite — regression (default) or smoke (if user specifies)
- Check for an existing spec in the target directory for the same feature
- If one exists, merge the tests into the existing
test.describeblock - If not, create a new spec file
- If one exists, merge the tests into the existing
- Apply the promotion changes (see checklist below)
- Delete the original handover spec from
tests/handover/ - Run the test in its new location:
npx playwright test --project="chromium:regression" {feature}.spec.ts
Promotion Checklist
1. Rename the File
Remove the ticket key prefix:
BEFORE: e2e/tests/handover/PROJ-456-bulk-export.spec.ts
AFTER: e2e/tests/regression/bulk-export.spec.ts
If the feature already has a regression spec (e.g., vault.spec.ts), merge the tests into that file instead of creating a new one.
2. Update test.describe
Remove the ticket key from the describe block:
// BEFORE
test.describe('PROJ-456: Bulk Export', () => {
// AFTER
test.describe('Bulk Export', () => {
If merging into an existing spec, add the tests inside the existing test.describe block (or create a nested test.describe if the feature area is distinct).
3. Verify POM JSDoc
Ensure all POM methods added for this ticket have complete JSDoc:
- Summary line
- Steps block (numbered)
- @param tags for all parameters
4. Run Tests
Verify the tests pass in their new location:
# For regression
npx playwright test --project="chromium:regression" {feature}.spec.ts
# For smoke
npx playwright test --project="chromium:smoke" {feature}.spec.ts
# Across all browsers
npx playwright test --project="*:regression" {feature}.spec.ts
5. Delete the Original
Remove the handover spec from tests/handover/ after confirming the promoted version passes.
Decision: Promote, Merge, or Delete?
| Scenario | Action |
|---|---|
| Feature is permanent, no existing regression spec | Promote to tests/regression/{feature}.spec.ts |
| Feature is permanent, regression spec already exists | Merge tests into the existing regression spec |
| Feature is on the critical path | Promote to tests/smoke/{feature}.spec.ts |
| Feature is fully covered by existing tests | Delete the handover spec |
| Feature was reverted | Delete the handover spec |
Example: Full Promotion
Before (handover)
File: e2e/tests/handover/MANT-123-vault-bulk-delete.spec.ts
import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { VaultPage } from '../../poms/vault.page';
const authFile = getAuthFilePath();
test.describe('MANT-123: Vault Bulk Delete', () => {
test.beforeAll(async ({ browser }) => {
const context = await browser.newContext({
storageState: authFile,
});
const page = await context.newPage();
const vault = new VaultPage(page);
await vault.setUp();
await page.close();
await context.close();
});
test('should select and delete multiple items', async ({ page, testData }) => {
// ...
});
});
After (regression)
File: e2e/tests/regression/vault.spec.ts (merged into existing spec, or new file)
import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { VaultPage } from '../../poms/vault.page';
const authFile = getAuthFilePath();
test.describe('Vault Tests', () => {
test.beforeAll(async ({ browser }) => {
const context = await browser.newContext({
storageState: authFile,
});
const page = await context.newPage();
const vault = new VaultPage(page);
await vault.setUp();
await page.close();
await context.close();
});
// ... existing tests ...
test('should select and delete multiple items', async ({ page, testData }) => {
// ... (promoted from MANT-123)
});
});
Original file e2e/tests/handover/MANT-123-vault-bulk-delete.spec.ts is deleted.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/agentmantis/test-skills/promote-handover-test">View promote-handover-test on skillZs</a>