Skip to content

Replace Aruba test suite with Go testscript#140

Merged
mroth merged 8 commits intomainfrom
testscript
Feb 17, 2026
Merged

Replace Aruba test suite with Go testscript#140
mroth merged 8 commits intomainfrom
testscript

Conversation

@mroth
Copy link
Owner

@mroth mroth commented Feb 17, 2026

This PR removes the historic Cucumber/Aruba-based integration (feature) tests and supporting tooling from the project entirely, in favor of migrating to native Go tooling.

Summary

Every existing Aruba/Cucumber scenario was audited and ported to either a Go unit test (preferred) or a testscript integration fixture. The 15 new .txtar script fixtures (using rogpeppe/go-internal/testscript) cover CLI commands, shell function integration (bash/zsh/fish), and shell wrapper behavior. New golden-file tests cover status rendering, and table-driven unit tests were expanded for init and expand commands. All Ruby test infrastructure is removed, replaced by a Go-only integration test workflow.

Motivation

The Cucumber/Aruba suite was significantly more readable than the testscript replacement — Cucumber's natural-language scenarios are hard to beat for clarity, and the table-driven tests were great for testing multiple behaviors and shells. However, it was the only non-Go dependency in the project, adding real friction to the dev setup (Ruby, Bundler, Aruba gems) for a pure-Go CLI tool. The tradeoff wasn't worth it, especially as I'd like to hand off maintenance of this project eventually.

testscript is the most common Go approach for CLI integration testing (used by cmd/go itself), keeps everything in a single toolchain, and the .txtar fixtures are self-contained.

Performance

Integration tests now run in ~1 second instead of ~30 seconds.

Note on AI Usage

As an experiment, I heavily used Codex 5.3 to drive the tedious test suite porting process. I experienced mixed results, and it required significant guidance, but it did result in being able to tackle something I previously considered too tedious to do.

@mroth mroth merged commit a955089 into main Feb 17, 2026
16 checks passed
@mroth mroth deleted the testscript branch February 17, 2026 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant