gui-integration-test

Writes, runs, and debugs Warp GUI integration tests using the Builder/TestStep framework.

64.7k|5.5k|Updated Jul 8, 2021
One-click install
npx skills add https://github.com/warpdotdev/warp --skill gui-integration-test
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gui-integration-test
Source: https://github.com/warpdotdev/warp/tree/main/.agents/skills/gui-integration-test
Command: npx skills add https://github.com/warpdotdev/warp --skill gui-integration-test

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Warp's GUI integration tests boot a real app instance with synthetic UI and terminal events, making them slow, flaky, and easy to wire up incorrectly. This Skill guides you through authoring, registering, running, and debugging these tests correctly so they are hermetic, diagnosable, and CI-ready.

Core Features & Use Cases

  • Test Authoring Guidance: Provides the full checklist for adding a test under crates/integration/src/test/, registering it in the runner binary, and listing it in the nextest macro files.
  • Framework Best Practices: Explains the Builder and TestStep APIs, helper constructors, named assertions, polling instead of sleeps, and hermetic test design.
  • Debugging Workflows: Documents commands for backtraces, pausing on failure, real-display runs, and distinguishing environmental flakes from real bugs.
  • Use Case: When fixing a regression where the command palette fails to focus the terminal, use this Skill to write a focused integration test that reproduces the flow, asserts on user-visible behavior, and runs reliably in CI.

Quick Start

Ask the agent to add a new Warp GUI integration test for a specific user flow and wire it into the nextest suite.

Frequently Asked Questions about gui-integration-test

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

FAQPage Schema
How do I add a new integration test in Warp?

Implement a function returning Builder under crates/integration/src/test/, add and re-export the module in test.rs, register it with register_test! in the integration binary, and list it in ui_tests.rs or shell_integration_tests.rs for nextest.

How do I run a single Warp integration test?

Run it directly with cargo run -p integration --bin integration -- test_name for fast iteration. Once wired into the macro lists, run it through the suite with cargo nextest run --no-fail-fast --workspace test_name.

When should I write an integration test instead of a unit test?

Write an integration test only when the risk lives between components, such as PTY behavior, settings wiring, or cross-component flows. Deterministic in-process logic belongs in a unit test, which runs in milliseconds and points straight at failures.

Does this framework work for Warp's TUI front-end?

No, this harness only drives the GUI desktop app built on the WarpUI pixel framework. The headless TUI front-end has its own components and testing workflow covered by the tui-testing and tui-verify-change skills.

Why is my Warp integration test flaky?

Flakiness usually comes from hardcoded sleeps, bootstrap-sensitive block indices, or non-hermetic state. Use polling assertions, clear bootstrapped blocks, and reserve PreconditionFailed reruns for genuinely environmental conditions after verifying the failure rate.

How do I debug a failing Warp integration test?

Run with RUST_BACKTRACE=1 for stack traces, WARPUI_PAUSE_INTEGRATION_TEST_ON_FAILURE=1 to inspect the failed UI state, or WARPUI_PAUSE_INTEGRATION_TEST_AT_EVERY_STEP=1 to walk through each step. Named assertions make failure output actionable.