You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
git-secret/tests/test_whoknows.bats

95 lines
2.2 KiB
Bash

#!/usr/bin/env bats
load _test_base
function setup {
install_fixture_key "$TEST_DEFAULT_USER"
install_fixture_key "$TEST_SECOND_USER"
set_state_initial
set_state_git
set_state_secret_init
set_state_secret_tell "$TEST_DEFAULT_USER"
set_state_secret_tell "$TEST_SECOND_USER"
}
function teardown {
uninstall_fixture_key "$TEST_DEFAULT_USER"
uninstall_fixture_key "$TEST_SECOND_USER"
unset_current_state
}
@test "run 'whoknows' normally" {
run git secret whoknows
[ "$status" -eq 0 ]
# Now test the output, both users should be present:
[[ "$output" == *"$TEST_DEFAULT_USER"* ]]
[[ "$output" == *"$TEST_SECOND_USER"* ]]
}
@test "run 'whoknows' with extra filename" {
run git secret whoknows extra_filename
[ "$status" -ne 0 ]
}
@test "run 'whoknows' with bad arg" {
run git secret whoknows -Z
[ "$status" -ne 0 ]
}
@test "run 'whoknows -l'" {
run git secret whoknows -l
[ "$status" -eq 0 ]
# echo "$output" | sed "s/^/# '$BATS_TEST_DESCRIPTION' output: /" >&3
# output should look like
# 'abort: problem encrypting file with gpg: exit code 2: space file'
#echo "# '$BATS_TEST_DESCRIPTION' status: $status" >&3
# Now test the output, both users should be present and without expiration
[[ "$output" == *"$TEST_DEFAULT_USER (expires: never)"* ]]
[[ "$output" == *"$TEST_SECOND_USER (expires: never)"* ]]
}
@test "run 'whoknows' in subfolder" {
if [[ "$BATS_RUNNING_FROM_GIT" -eq 1 ]]; then
skip "this test is skipped while 'git commit'. See #334"
fi
# Preparations:
local current_dir="$PWD"
local root_dir='test_dir'
local test_dir="$root_dir/subfolders/case"
mkdir -p "$test_dir"
cd "$test_dir"
# Test:
run git secret whoknows
[ "$status" -eq 0 ]
# Now test the output, both users should be present:
[[ "$output" == *"$TEST_DEFAULT_USER"* ]]
[[ "$output" == *"$TEST_SECOND_USER"* ]]
# Cleaning up:
cd "$current_dir"
rm -r "$root_dir"
}
@test "run 'whoknows' without any users" {
# Preparations, removing users:
local email1="$TEST_DEFAULT_USER"
local email2="$TEST_SECOND_USER"
git secret removeperson "$email1" "$email2"
# Now whoknows should raise an error: there are no users.
run git secret whoknows
[ "$status" -eq 1 ]
}