Skip to main content
Some flows you depend on leave your app: Stripe checkout, a Calendly embed, an OAuth partner. You do not own the other side, but a break is still your outage. This recipe runs a short flow against the real integration on a schedule and pages you on failure.

The test

Keep it to the boundary: your app, into the vendor surface, far enough to prove the integration is alive, and back:
tests/monitors/checkout-stripe.test.yaml
Stop before the irreversible action: assert the form is live, not that a charge posts. When the vendor offers a test mode (Stripe test keys, a sandbox tenant), point the monitor at that instead and run the full path.

The workflow

The job installs momentic from devDependencies, so your lockfile pins the CLI version. Add it once with npm install -D momentic.
.github/workflows/monitor.yml
Scheduled runs get the same secrets as other events. GitHub skips workflow runs on forks and on repos whose Actions were disabled. Confirm the job is firing (the workflow_dispatch trigger is also your debug path).

Third-party fragility rules

  • Their outage is your alert, not your test’s bug. A monitor failing because Stripe is down is the point. Route monitor failures to an on-call channel, separate from your PR-gate failures.
  • Vendor UI drifts. Payment iframes change markup. Write natural-language targets (“the Card number field”) so locator auto-heal absorbs their redesigns.
  • Do not retry into a charge. --retries is safe on read-only monitors; keep it off anything that mutates real state. Prefer vendor test modes.
  • Rate limits are real. Fifteen minutes is a reasonable floor; a flow that takes minutes to run should not run every minute. If you need tighter detection, monitor the vendor’s status endpoint with a plain HTTP check and keep Momentic for the end-to-end signal.