bats_load_library 'bats-assert'
export TESTMODE="ON"
export CRYPTSETUP_LOG="build/test/cryptsetup.log"
+ export MOUNT_LOG="build/test/mount.log"
export CONFIG_FILE="src/config-example.yaml"
source src/backupmount
mkdir --parents "build/test"
printf "%s\n" "${#@}" > "$CRYPTSETUP_LOG"
printf "%s\n" "$@" >> "$CRYPTSETUP_LOG"
}
+ mount() {
+ printf "%s\n" "${#@}" > "$MOUNT_LOG"
+ printf "%s\n" "$@" >> "$MOUNT_LOG"
+ }
}
teardown() {
rm --recursive --force "build/test"
unset TESTMODE
unset CRYPTSETUP_LOG
+ unset MOUNT_LOG
unset CONFIG_FILE
}
assert_line --index 2 "ℹ️ INFO: use key /path/to/luks-key-file-day"
assert_line --index 3 "ℹ️ INFO: volume open luks-crypt-volume"
assert_line --index 4 "❌ ERROR: partition /dev/path/to/partday not found"
+}
+
+# bats test_tags=backupmount:mount
+@test "success mount partition for day" {
+ exists_block_device() {
+ return 0
+ }
+ exists_key() {
+ return 0
+ }
+ cryptsetup() {
+ return 0
+ }
+ exists_partition() {
+ return 0
+ }
+
+ run main "mount"
+
+ assert_success
+ assert_line --index 0 "⭐ START: backupmount"
+ assert_line --index 1 "ℹ️ INFO: media day with device /dev/path/to/day found"
+ assert_line --index 2 "ℹ️ INFO: use key /path/to/luks-key-file-day"
+ assert_line --index 3 "ℹ️ INFO: volume open luks-crypt-volume"
+ assert_line --index 4 "ℹ️ INFO: create backup path build/test"
+ assert_line --index 5 "ℹ️ INFO: mount /dev/path/to/partday to build/test"
+ assert_equal "$(awk 'NR==1 {print; exit}' "$MOUNT_LOG")" "2"
+ assert_equal "$(awk 'NR==2 {print; exit}' "$MOUNT_LOG")" "/dev/path/to/partday"
+ assert_equal "$(awk 'NR==3 {print; exit}' "$MOUNT_LOG")" "build/test"
}
\ No newline at end of file