tj.git-extras/tests
Vijay Misal dbf68bac59
fix(is-git-repo): recognize bare repositories (#1266)
* fix(is-git-repo): recognize bare repositories

is_git_repo() used `git rev-parse --show-toplevel` to detect whether
the current directory is inside a git repository. --show-toplevel
fails for bare repositories since they have no working tree, so every
command that relies on this shared helper (e.g. `git browse`) reports
"Not a git repo!" when run from inside a bare repo, even though it
plainly is one.

Switch to `git rev-parse --git-dir`, which succeeds for both normal
and bare repositories and keeps the existing "not a repo" behavior
for non-repo directories.

Fixes #1238, reported and LGTM'd by maintainers there with this exact
fix; no PR had been opened for it yet.

Adds tests/is-git-repo.bats covering: a normal repo, a bare repo, and
a plain (non-repo) directory.

* Fix ruff lint failures in scripts/checkstyle.py

This PR's new Ruff CI job surfaced pre-existing style issues (unsorted
imports, deprecated typing.List/Dict, nested ifs, bare exit()) in
checkstyle.py. Cleaned these up so the newly added lint job passes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 14:15:48 +08:00
..
bin Mostly finish pytest to Bats conversion (#1200) 2025-03-26 11:19:30 +08:00
git-abort.bats Mostly finish pytest to Bats conversion (#1200) 2025-03-26 11:19:30 +08:00
git-alias.bats Mostly finish pytest to Bats conversion (#1200) 2025-03-26 11:19:30 +08:00
git-archive-file.bats port python tests to bats (#1264) 2026-08-12 15:43:59 +08:00
git-authors.bats Mostly finish pytest to Bats conversion (#1200) 2025-03-26 11:19:30 +08:00
git-browse-ci.bats port python tests to bats (#1264) 2026-08-12 15:43:59 +08:00
git-browse.bats port python tests to bats (#1264) 2026-08-12 15:43:59 +08:00
git-continue.bats Mostly finish pytest to Bats conversion (#1200) 2025-03-26 11:19:30 +08:00
git-scp.bats feat(scp): add verbose, interactive, and dry-run flags (#1261) 2026-07-14 19:43:00 +08:00
is-git-repo.bats fix(is-git-repo): recognize bare repositories (#1266) 2026-08-17 14:15:48 +08:00
README.md port python tests to bats (#1264) 2026-08-12 15:43:59 +08:00
test_util.sh port python tests to bats (#1264) 2026-08-12 15:43:59 +08:00

Testing

Tests are written in Bats so coverage can be calculated for shell commands.

Bats Testing

We require a somewhat recent version of Bats. Version v1.8.1 is tested in CI. Once it is installed, the tests can be executed like so:

bats ./tests

We highly recommend adding Bats tests for new features and fixes.

Code Coverage

Coverage can be calculated with bashcov like so:

bashcov -- bats ./tests

By default, the report will be generated in ./coverage/index.html.