← ClaudeAtlas

cmux-testinglisted

cmux testing rules for Swift Testing, test target compilation, test wiring, and package/refactor validation. Use when adding or changing tests, touching package/refactor code, or deciding whether reload.sh is enough validation.
rajinsyed/supermux · ★ 2 · Testing & QA · score 63
Install: claude install-skill rajinsyed/supermux
# cmux Testing ## Regression test commit policy A regression test for a bug fix ships as two commits so CI proves the test catches the bug: 1. The failing test only, no fix. CI goes red. 2. The fix. CI goes green. The GitHub PR Commits tab then shows the test genuinely fails without the fix. ## Test wiring Test files in `cmuxTests/` must be wired into `cmux.xcodeproj/project.pbxproj` with a matching `PBXFileReference` and `PBXSourcesBuildPhase` entry. A `.swift` file added without them is silently ignored by Xcode: `xcodebuild test -only-testing:cmuxTests/<TestClass>` and bot reviews both pass with "Executed 0 tests", so the missing wiring is indistinguishable from a clean red/green regression test until a real user hits the bug. Surfaced during https://github.com/manaflow-ai/cmux/issues/4529 against https://github.com/manaflow-ai/cmux/pull/4536. The `workflow-guard-tests` CI job runs `./scripts/lint-pbxproj-test-wiring.sh`. Add the file through Xcode (drag into the cmuxTests target) or hand-edit the pbxproj entries using a wired sibling such as `cmuxTests/TabManagerUnitTests.swift` as the template. ## Test quality policy - No tests that only verify source text, method signatures, AST fragments, or grep-style patterns. - No tests that read checked-in metadata or project files (`Resources/Info.plist`, `project.pbxproj`, `.xcconfig`, source files) just to assert a key, string, plist entry, or snippet exists. - Tests verify observable runtime behavior through executable