Skip to content

test: add functional tests for the alias/install-menu logic bugs - #12

Merged
grimaldi89 merged 2 commits into
masterfrom
fix/installer-path-bugs
Jul 18, 2026
Merged

test: add functional tests for the alias/install-menu logic bugs#12
grimaldi89 merged 2 commits into
masterfrom
fix/installer-path-bugs

Conversation

@grimaldi89

Copy link
Copy Markdown
Owner

Summary

Brings the functional test suite (merged into this branch via #11) into master. The bugfix itself (#10) is already on master — this PR only adds the new commit:

  • tests/lib.sh: shared sandbox/assertion helpers, incl. run_as_bash/run_as_zsh which spawn scripts with a genuine bash or zsh parent process so the scripts' own shell-detection heuristics see the shell being tested
  • test_install_aliases.sh: PERSONAL_UTILS_DIR placeholder resolves to the real repo path, and re-running doesn't duplicate aliases
  • test_persist_env.sh: variables land in .bashrc under bash and .zshrc under zsh, and declining an overwrite prompt leaves the existing value untouched
  • test_install_menu.sh: install.sh's menu no longer errors on the removed gcloud/ dir and still discovers tools/gcloud.sh; static regression guards for the airbyte.sh path fix and pipefail additions
  • makefile: make test now runs every tests/test_*.sh
  • .github/workflows/test.yml: job renamed to reflect it runs real tests now

Test plan

  • make lint / make test pass locally
  • Confirmed fail() actually propagates a non-zero exit so a real regression turns CI red

🤖 Generated with Claude Code

grimaldi89 and others added 2 commits July 18, 2026 10:51
The prior syntax + shellcheck checks couldn't have caught any of the
path/shell-detection bugs fixed in the last commit, since they're all
logic errors, not syntax errors. Add sandboxed functional tests instead:

- tests/lib.sh: shared sandbox/assertion helpers, incl. run_as_bash/
  run_as_zsh which spawn scripts with a genuine bash or zsh parent
  process so the scripts' own shell-detection heuristics see the shell
  we intend to test
- test_install_aliases.sh: __PERSONAL_UTILS_DIR__ placeholder resolves
  to the real repo path, and re-running doesn't duplicate aliases
- test_persist_env.sh: variables land in .bashrc under bash and .zshrc
  under zsh (not always .bashrc), and declining an overwrite prompt
  leaves the existing value untouched
- test_install_menu.sh: install.sh's menu no longer errors on the
  removed gcloud/ dir and still discovers tools/gcloud.sh; static
  regression guards for the airbyte.sh path fix and pipefail additions

make test now runs every tests/test_*.sh, and .github/workflows/test.yml
picks these up automatically since it already runs make lint && make test.
test: add functional tests for the alias/install-menu logic bugs
@grimaldi89
grimaldi89 merged commit a303251 into master Jul 18, 2026
0 of 4 checks passed
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