--- name: swing-ui-test-headless-guard description: Use when adding or updating EasyPostman Swing/TestNG UI tests that may run in headless CI or no-display Linux environments. --- # Swing UI Test Headless Guard Use this skill for Swing UI tests under `easy-postman-app/src/test/java`. ## Default pattern 1. Put shared no-display skip logic in: `easy-postman-app/src/test/java/com/laker/postman/test/AbstractSwingUiTest.java` 2. Make Swing/UI tests extend that base class. 3. Use `@BeforeClass` + `SkipException` to skip tests when: - `GraphicsEnvironment.isHeadless()` is `true` - or Linux has neither `DISPLAY` nor `WAYLAND_DISPLAY` ## Guardrails - Keep the base class narrow. Only put environment-skip behavior there unless multiple UI tests clearly need more. - Do not add this base class to non-UI tests. - Prefer `SkipException` over brittle per-test conditionals. - After changes, verify with: - `mvn -q -pl easy-postman-app -am -DskipTests compile` - `mvn -q -pl easy-postman-app -am -Dtest= -Dsurefire.failIfNoSpecifiedTests=false -Djava.awt.headless=true test`