astro-testing

Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

16 stars

Best use case

astro-testing is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

Teams using astro-testing should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/astro-testing/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/testing-security/astro-testing/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/astro-testing/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How astro-testing Compares

Feature / Agentastro-testingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Astro Testing Skill

**No testing = No deploy. Period.**

## Purpose

QA gate before deployment. Blocking tests must pass.

## Output

```yaml
test_verdict: PASS | WARN | FAIL
blocking_issues: []
warnings: []
```

## Blocking vs Non-Blocking Tests

### Blocking (FAIL if any fails)

| Test | Category |
|------|----------|
| Form submits successfully | Critical |
| Thank you page displays | Critical |
| Email received (business) | Data |
| Confirmation email sent | Data |
| Lead saved in system | Data |
| Mobile menu works | UX |
| Phone link works | UX |
| Homepage loads | Core |
| 404 page exists | Core |
| Lighthouse ≥90 | Performance |

### Non-Blocking (WARN only)

| Test | Category |
|------|----------|
| Animation smoothness | Polish |
| Minor CLS (<0.1) | Performance |
| Desktop hover states | UX |
| Print stylesheet | Accessibility |

## Data Integrity Tests (Critical)

```yaml
data_integrity:
  - form_submitted: true
  - lead_saved: true
  - business_email_sent: true
  - customer_email_sent: true
  - analytics_event_fired: true
```

**Form shows success but data missing = FAIL.**

## Negative Tests (False Positive Guard)

| Test | Expected |
|------|----------|
| Submit empty form | Error, no submit |
| Invalid email format | Validation error |
| Honeypot filled | Silent reject |
| Missing privacy consent | Blocked |
| SQL injection attempt | Sanitized |

**Negative test passes incorrectly = FAIL.**

## Browser Coverage

```yaml
browser_matrix:
  required: [mobile_safari, mobile_chrome, desktop_chrome, desktop_safari]
  optional: [firefox, edge, samsung_internet]
```

**Missing required browser = FAIL.**

## Accessibility Thresholds

| Severity | Max Allowed | Result |
|----------|-------------|--------|
| Critical | 0 | FAIL |
| Serious | 0 | FAIL |
| Moderate | 2 | WARN |
| Minor | 5 | WARN |

## Performance Thresholds

| Metric | Threshold | Result |
|--------|-----------|--------|
| Lighthouse (all) | ≥90 | FAIL if below |
| LCP | <2.5s | WARN if above |
| CLS | <0.1 | WARN if above |
| Total JS | <100KB | WARN if above |

## Critical Path Tests (All 10 Required)

| # | Test |
|---|------|
| 1 | Homepage loads |
| 2 | Primary CTA works |
| 3 | Form visible |
| 4 | Form submits |
| 5 | Thank you displays |
| 6 | Business email received |
| 7 | Customer email sent |
| 8 | Phone link works |
| 9 | Mobile menu works |
| 10 | 404 page exists |

**Any fail = FAIL.**

## Manual Testing Summary

| Device | Key Checks |
|--------|------------|
| Mobile (375px) | Menu, form, keyboard, validation, 44px buttons, no h-scroll |
| Desktop (1440px) | Header, grid, hover, focus, tab order |

**Full checklists → [references/checklists.md](references/checklists.md)**

## Test Verdict

| Condition | Verdict |
|-----------|---------|
| Any blocking test fails | FAIL |
| Data integrity fail | FAIL |
| Required browser missing | FAIL |
| Lighthouse <90 | FAIL |
| Critical/serious a11y | FAIL |
| Negative test passes incorrectly | FAIL |
| Non-blocking issue | WARN |
| Moderate a11y (≤2) | WARN |
| All pass | PASS |

## Deployment Gate

```yaml
deployment_gate:
  block_on_fail: true
  require_manual_confirm: true
```

**FAIL → deploy blocked. No exceptions.**

## FAIL States

| Condition |
|-----------|
| Any critical path fails |
| Form success but no data |
| Email not received |
| Required browser not tested |
| Lighthouse <90 |
| Critical/serious a11y |

## WARN States

| Condition |
|-----------|
| Non-blocking test fails |
| Moderate a11y ≤2 |
| LCP >2.5s |
| CLS >0.1 |

## References

- [playwright-tests.md](references/playwright-tests.md) — E2E code
- [checklists.md](references/checklists.md) — Manual checklists

## Definition of Done

- [ ] 10 critical paths pass
- [ ] Data integrity verified
- [ ] Negative tests verified
- [ ] Required browsers tested
- [ ] Lighthouse ≥90 all
- [ ] A11y thresholds met
- [ ] Mobile manual test done
- [ ] Desktop manual test done
- [ ] test_verdict = PASS

Related Skills

e2e-testing

16
from diegosouzapw/awesome-omni-skill

End-to-end testing workflow with Playwright for browser automation, visual regression, cross-browser testing, and CI/CD integration.

e2e-testing-patterns

16
from diegosouzapw/awesome-omni-skill

Master end-to-end testing with Playwright and Cypress to build reliable test suites that catch bugs, improve confidence, and enable fast deployment. Use when implementing E2E tests, debugging flaky tests, or establishing testing standards.

dotnet-uno-testing

16
from diegosouzapw/awesome-omni-skill

Tests Uno Platform apps. Playwright for WASM, platform-specific patterns, runtime heads.

cve-testing

16
from diegosouzapw/awesome-omni-skill

CVE vulnerability testing coordinator that identifies technology stacks, researches known vulnerabilities, and tests applications for exploitable CVEs using public exploits and proof-of-concept code.

cui-javascript-unit-testing

16
from diegosouzapw/awesome-omni-skill

Jest unit testing standards covering configuration, test structure, testing patterns, and coverage requirements

configure-ux-testing

16
from diegosouzapw/awesome-omni-skill

Check and configure UX testing infrastructure (Playwright, accessibility, visual regression)

comprehensive-unit-testing-with-pytest

16
from diegosouzapw/awesome-omni-skill

Aims for high test coverage using pytest, testing both common and edge cases.

Burp Suite Web Application Testing

16
from diegosouzapw/awesome-omni-skill

This skill should be used when the user asks to "intercept HTTP traffic", "modify web requests", "use Burp Suite for testing", "perform web vulnerability scanning", "test with Burp Repeater", "analyze HTTP history", or "configure proxy for web testing". It provides comprehensive guidance for using Burp Suite's core features for web application security testing.

burp-suite-testing

16
from diegosouzapw/awesome-omni-skill

This skill should be used when the user asks to "intercept HTTP traffic", "modify web requests", "use Burp Suite for testing", "perform web vulnerability scanning", "test with Burp ...

backtesting-frameworks

16
from diegosouzapw/awesome-omni-skill

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strateg...

axiom-ios-testing

16
from diegosouzapw/awesome-omni-skill

Use when writing ANY test, debugging flaky tests, making tests faster, or asking about Swift Testing vs XCTest. Covers unit tests, UI tests, fast tests without simulator, async testing, test architecture.

asyncredux-testing-view-models

16
from diegosouzapw/awesome-omni-skill

Test StoreConnector view-models in isolation. Covers creating view-models with `Vm.createFrom()`, testing view-model properties, testing callbacks that dispatch actions, and verifying state changes from callbacks.