borgwarehouse/tests/bats/getLastSave.bats
2024-11-01 17:07:13 +01:00

85 lines
2.1 KiB
Bash

#!/usr/bin/env bats
setup() {
export home="/tmp/borgwarehouse"
mkdir -p "${home}/repos/repo1"
mkdir -p "${home}/repos/repo2"
# Create integrity files
touch "${home}/repos/repo1/integrity_file_1"
touch "${home}/repos/repo2/integrity_file_2"
# Set the last modified time of the integrity files
touch -d '2024-09-04 12:00:00' "${home}/repos/repo1/integrity_file_1"
touch -d '2024-10-04 13:00:00' "${home}/repos/repo2/integrity_file_2"
echo "home=${home}" > "${home}/.env"
}
teardown() {
rm -rf /tmp/borgwarehouse
}
@test "Test getLastSave.sh - Get last save timestamps for existing repositories" {
run bash /test/scripts/getLastSave.sh
# expected output in JSON format
expected_output='[
{
"repositoryName": "repo1",
"lastSave": 1725451200
},
{
"repositoryName": "repo2",
"lastSave": 1728046800
}
]'
# Normalize the JSON output for comparison
run_output=$(echo "$output" | jq .)
normalized_expected_output=$(echo "$expected_output" | jq .)
[ "$run_output" = "$normalized_expected_output" ]
}
@test "Test getLastSave.sh - Get last save timestamps when no repositories exist" {
# Delete all repositories
rm -rf "${home}/repos"
mkdir -p "${home}/repos"
run bash /test/scripts/getLastSave.sh
expected_output='[]'
run_output=$(echo "$output" | jq .)
normalized_expected_output=$(echo "$expected_output" | jq .)
[ "$status" -eq 0 ]
[ "$run_output" = "$normalized_expected_output" ]
}
@test "Test getLastSave.sh - Get last save timestamps with missing integrity file" {
rm "${home}/repos/repo1/integrity_file_1"
run bash /test/scripts/getLastSave.sh
expected_output='[
{
"repositoryName": "repo2",
"lastSave": 1728046800
}
]'
run_output=$(echo "$output" | jq .)
normalized_expected_output=$(echo "$expected_output" | jq .)
[ "$status" -eq 0 ]
[ "$run_output" = "$normalized_expected_output" ]
}
@test "Test getLastSave.sh - Check .env loading" {
rm "${home}/.env" # Remove .env to check default behavior
run bash /test/scripts/getLastSave.sh
[ "$status" -eq 0 ]
}