tj.git-extras/tests/git-alias.bats
Edwin Kofler 18ecffef5e
Some checks failed
ci / lint (push) Has been cancelled
ci / typo (push) Has been cancelled
ci / test (push) Has been cancelled
ci / build (macos-latest) (push) Has been cancelled
ci / build (ubuntu-latest) (push) Has been cancelled
Implement half of tests in Bats (#1187)
* Initial scaffold

* Finish first half of Bats tests

* Add Bats to CI

* Fix CI

* Fix CI

* Fix configuration to set git name and email

* Fix `GIT_CONFIG_{KEY,VALUE}` indexing

* Fix Git config override precedence

* Remove unused and untested function
2025-03-12 18:15:37 +08:00

107 lines
1.7 KiB
Bash

# shellcheck shell=bash
source "$BATS_TEST_DIRNAME/test_util.sh"
setup_file() {
test_util.setup_file
}
setup() {
test_util.cd_test
git init
git config --global alias.globalalias status
git config --global alias.x status
git config --local alias.localalias status
git config --local alias.y status
}
@test "list all works" {
run git alias
assert_output - <<-'EOF'
globalalias = status
localalias = status
x = status
y = status
EOF
assert_success
}
@test "list all globally works" {
run git alias --global
assert_output - <<-'EOF'
globalalias = status
x = status
EOF
assert_success
}
@test "list all locally works" {
run git alias --local
assert_output - <<-'EOF'
localalias = status
y = status
EOF
assert_success
}
@test "search globally works" {
run git alias --global global
assert_output - <<-'EOF'
globalalias = status
EOF
assert_success
run git alias --global local
assert_output ''
assert_failure
}
@test "search locally works" {
run git alias --local local
assert_output - <<-'EOF'
localalias = status
EOF
assert_success
run git alias --local global
assert_output ''
assert_failure
}
@test "get alias globally and defaultly" {
run git alias globalalias
assert_output - <<-'EOF'
globalalias = status
EOF
assert_success
}
@test "set alias globally and defaultly" {
git alias globalalias diff
run git alias diff
assert_output - <<-'EOF'
globalalias = diff
EOF
assert_success
}
@test "get alias locally" {
run git alias --local localalias
assert_output - <<-'EOF'
localalias = status
EOF
assert_success
}
@test "set alias locally" {
git alias --local localalias diff
run git alias
assert_output - <<-'EOF'
globalalias = status
localalias = diff
x = status
y = status
EOF
}