live-test

Builds, deploys, and verifies FastEdge apps against live edge traffic using scenario fixtures.

1|Updated Jul 23, 2026
One-click install
npx skills add https://github.com/G-Core/fastedge-plugin --skill live-test-g-core
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: live-test
Source: https://github.com/G-Core/fastedge-plugin/tree/main/plugins/gcore-fastedge/skills/live-test
Command: npx skills add https://github.com/G-Core/fastedge-plugin --skill live-test-g-core

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Local in-process tests cannot confirm that a FastEdge WASM app actually behaves correctly once deployed to real edge infrastructure. This Skill closes that gap by deploying the app, wiring it to a live test target, and running HTTP-level assertions against real edge traffic. ## Core Features & Use Cases - End-to-end live verification: Builds and deploys the app, enables debug mode or attaches a CDN rule, then runs each fixtures/*.test.json scenario against the deployed app with status, header, body, JSON, and log assertions. - Automatic env synchronization: Syncs .env* files from the fixtures directory (or a --from variant directory) to the deployed app so env-driven apps work on the edge without manual configuration. - Assertion inference and diagnostics: The --infer flag auto-authors .live.json assertion drafts from source code, and a Rust stderr-logging scan diagnoses empty log queries caused by eprintln!-style writes. - Use Case: After local tests pass on a proxy-wasm CDN filter, run live-test to attach the app to a preconfigured CDN resource at /livetest-<app-name>/, wait for rule propagation, and get a per-scenario pass/fail report scoped by each request's traceparent. ## Quick Start Run the live-test skill against my FastEdge project directory with --infer to generate missing assertion files and verify the deployed app on the edge.

Frequently Asked Questions about live-test

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

FAQPage Schema
How do I test a FastEdge app against live edge traffic?

Run the live-test skill after local tests pass. It builds and deploys the app, wires a test target (HTTP app URL or CDN rule), syncs env variables, and runs each fixture scenario with HTTP-level assertions, reporting pass/fail per scenario.

What is the difference between FastEdge local tests and live-test?

Local tests run in-process against the WASM module with rich hook-internal assertions. Live-test runs HTTP requests against the deployed app and asserts only externally observable behavior: status, headers, body, and edge logs scoped by request traceparent.

How do I assert on edge logs for a specific request?

Add a logs array to the scenario's .live.json expected block. Live-test captures the response traceparent header and queries the FastEdge logs API with that request_id, so assertions only evaluate log entries from that scenario's request.

Why does my FastEdge log assertion return empty results on Rust apps?

FastEdge captures stdout only, so eprintln!, std::io::stderr, env_logger defaults, and proxy_wasm hostcalls::log writes are silently dropped. Live-test runs a stderr-logging scan on Rust projects and reports matches; convert them to println! and redeploy.

Can live-test create a new CDN resource for each run?

No. CDN resources take roughly 20 minutes to propagate, so live-test requires one preconfigured resource per developer set via cdnResourceId in fixtures/livetest.config.json. It creates or updates rules under a /livetest- path prefix on that resource.

How do I test scenarios that need different environment variables?

Re-run live-test with --from pointing at a variant subdirectory, such as fixtures/germany/. Each run replaces the deployed app's env with that directory's .env files and runs the full scenario sweep against that configuration.