#!/usr/bin/env bats load _test_base FIRST_FILE="file_to_hide1" SECOND_FILE="file_to_hide2" # There was a bug with `sed` an slashes: # see https://github.com/sobolevn/git-secret/issues/23 FOLDER="somedir" FILE_IN_FOLDER="${FOLDER}/file_to_hide3" function setup { install_fixture_full_key "$TEST_DEFAULT_USER" set_state_git set_state_secret_init set_state_secret_tell "$TEST_DEFAULT_USER" set_state_secret_add "$FIRST_FILE" "somecontent" set_state_secret_add "$SECOND_FILE" "somecontent2" } function teardown { uninstall_fixture_full_key "$TEST_DEFAULT_USER" unset_current_state rm -f "$FIRST_FILE" "$SECOND_FILE" # This needs to be cleaned rm -rf "$FOLDER" } @test "run 'remove' normally" { git secret hide run git secret remove "$SECOND_FILE" [ "$status" -eq 0 ] local mapping_contains=$(grep "$SECOND_FILE" "$SECRETS_DIR_PATHS_MAPPING"; echo $?) [ "$mapping_contains" -eq 1 ] local first_enctypted_file=$(_get_encrypted_filename $FIRST_FILE) local second_enctypted_file=$(_get_encrypted_filename $SECOND_FILE) [ -f "$first_enctypted_file" ] [ -f "$second_enctypted_file" ] } @test "run 'remove' with slashes in filename" { mkdir -p "$FOLDER" set_state_secret_add "$FILE_IN_FOLDER" "somecontent3" git secret hide run git secret remove "$FILE_IN_FOLDER" [ "$status" -eq 0 ] local mapping_contains=$(grep "$FILE_IN_FOLDER" "$SECRETS_DIR_PATHS_MAPPING"; echo $?) [ "$mapping_contains" -eq 1 ] local enctypted_file=$(_get_encrypted_filename $FILE_IN_FOLDER) [ -f "$enctypted_file" ] } @test "run 'remove -c'" { git secret hide run git secret remove -c "$SECOND_FILE" echo "$output" [ "$status" -eq 0 ] local mapping_contains=$(grep "$SECOND_FILE" "$SECRETS_DIR_PATHS_MAPPING"; echo $?) [ "$mapping_contains" -eq 1 ] local first_enctypted_file=$(_get_encrypted_filename $FIRST_FILE) local second_enctypted_file=$(_get_encrypted_filename $SECOND_FILE) [ -f "$first_enctypted_file" ] [ ! -f "$second_enctypted_file" ] }