astro-testing

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

$ Instalar

git clone https://github.com/majiayu000/claude-skill-registry /tmp/claude-skill-registry && cp -r /tmp/claude-skill-registry/skills/testing/astro-testing ~/.claude/skills/claude-skill-registry

// tip: Run this command in your terminal to install the skill


name: astro-testing description: Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

Astro Testing Skill

No testing = No deploy. Period.

Purpose

QA gate before deployment. Blocking tests must pass.

Output

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

Blocking vs Non-Blocking Tests

Blocking (FAIL if any fails)

TestCategory
Form submits successfullyCritical
Thank you page displaysCritical
Email received (business)Data
Confirmation email sentData
Lead saved in systemData
Mobile menu worksUX
Phone link worksUX
Homepage loadsCore
404 page existsCore
Lighthouse ≥90Performance

Non-Blocking (WARN only)

TestCategory
Animation smoothnessPolish
Minor CLS (<0.1)Performance
Desktop hover statesUX
Print stylesheetAccessibility

Data Integrity Tests (Critical)

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)

TestExpected
Submit empty formError, no submit
Invalid email formatValidation error
Honeypot filledSilent reject
Missing privacy consentBlocked
SQL injection attemptSanitized

Negative test passes incorrectly = FAIL.

Browser Coverage

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

Missing required browser = FAIL.

Accessibility Thresholds

SeverityMax AllowedResult
Critical0FAIL
Serious0FAIL
Moderate2WARN
Minor5WARN

Performance Thresholds

MetricThresholdResult
Lighthouse (all)≥90FAIL if below
LCP<2.5sWARN if above
CLS<0.1WARN if above
Total JS<100KBWARN if above

Critical Path Tests (All 10 Required)

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

Any fail = FAIL.

Manual Testing Summary

DeviceKey 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

Test Verdict

ConditionVerdict
Any blocking test failsFAIL
Data integrity failFAIL
Required browser missingFAIL
Lighthouse <90FAIL
Critical/serious a11yFAIL
Negative test passes incorrectlyFAIL
Non-blocking issueWARN
Moderate a11y (≤2)WARN
All passPASS

Deployment Gate

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

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