testing-guide

Maps the repo's test suites, requirements model, and harness documentation for test changes.

Updated Jun 12, 2026
One-click install
npx skills add https://github.com/missingbulb/GoogleCalendarEventCreator --skill testing-guide-missingbulb
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: testing-guide
Source: https://github.com/missingbulb/GoogleCalendarEventCreator/tree/main/.claudinite/local/packs/gcec/skills/testing-guide
Command: npx skills add https://github.com/missingbulb/GoogleCalendarEventCreator --skill testing-guide-missingbulb

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Navigating this repo's layered test infrastructure — live integration tests, offline unit tests, UI snapshot tests, and a requirements-coverage model — is difficult without knowing where each suite lives and how cases are added. ## Core Features & Use Cases - Test suite map: Documents the npm commands for live, offline, UI, e2e, and full test runs. - Requirements model guide: Explains the one-case-per-leaf convention where the filename names the leaf and the folder names the kind (popup, icon, behavior, extractor, logic). - Live case workflow: Describes how to add cached live extractor cases via .url files and the create-extractor task, plus gardening steps when event pages are taken down. - Use Case: Before adding a requirement case or debugging a failing snapshot test, consult this guide to find the right harness, its invariants, and its self-documenting file. ## Quick Start Ask the assistant to explain how to add a new extractor test case for a supported event site using this repo's testing guide.

Frequently Asked Questions about testing-guide

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run the test suites in this repo?

Run npm install, then use npm run test:live for integration tests, test:offline for unit tests, test:ui for snapshot tests, test:e2e for real-Chrome tests, or npm test for everything except e2e.

How do I add a new requirement test case?

Each spec leaf gets exactly one case file named <slug>.<id>.case.js inside a kind folder such as popup, icon, behavior, extractor, or logic. The coverage test fails if any leaf lacks a case or has duplicates.

How do I add a live extractor test for a new event site?

Commit a .url file under data/server-fetched without the HTML; the create-extractor task fetches the page and opens a PR. Then run npm run test:live and paste the printed values into expected/<name>.json.

Why did the UI snapshot test fail after my CSS change?

Snapshots are pixel-compared with zero tolerance against committed PNGs rendered via satori and resvg. After an intentional UI change, run npm run refresh:ui and commit the regenerated PNGs.

What happens when a cached live test page is taken down?

Point the .url file at a newer event and delete the stale .html in the same commit. Until a new HTML file exists, test:live fails with a missing cached HTML error.