tj.git-extras/tests
Vijay Misal 9ccb605c18
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.
2026-08-15 07:44:48 +05:30
..
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 2026-08-15 07:44:48 +05:30
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.