#!/usr/bin/env bats
setup() {
SCRIPT="${BATS_TEST_DIRNAME}/../src/scripts/maven_cache_key.sh"
cd "$BATS_TEST_TMPDIR"
git init -q
printf '1-SNAPSHOT\n' > pom.xml
git add pom.xml
}
@test "release rewrites retain the restored cache identity" {
bash "$SCRIPT"
cp .munitor-maven-cache-key before
printf '1.2.3\n' > pom.xml
bash "$SCRIPT"
cmp before .munitor-maven-cache-key
}
@test "nested checked-out dependency changes invalidate the cache" {
mkdir module
printf '\n' > module/pom.xml
git add module/pom.xml
bash "$SCRIPT"
cp .munitor-maven-cache-key before
printf 'changed\n' > module/pom.xml
git add module/pom.xml
bash "$SCRIPT"
! cmp -s before .munitor-maven-cache-key
}
@test "source changes do not invalidate dependency cache" {
bash "$SCRIPT"
cp .munitor-maven-cache-key before
printf 'class Example {}\n' > Example.java
git add Example.java
bash "$SCRIPT"
cmp before .munitor-maven-cache-key
}
@test "restore has no broad fallback and save uses the same key" {
command_root="${BATS_TEST_DIRNAME}/../src/commands"
restore=$(sed -n '/maven-v2-/p' "$command_root/restore_maven_cache.yml")
save=$(sed -n '/maven-v2-/p' "$command_root/save_maven_cache.yml")
[[ "$restore" == *'maven-v2-{{ checksum ".munitor-maven-cache-key" }}'* ]]
[[ "$save" == *'maven-v2-{{ checksum ".munitor-maven-cache-key" }}'* ]]
! grep -q 'maven-v1\|maven-v2-$' "$command_root/restore_maven_cache.yml"
}