From 989639649a06910c83c3e8f27d1e7375bc3e2e2b Mon Sep 17 00:00:00 2001 From: Guangshuo Date: Fri, 23 Oct 2026 13:11:15 -0700 Subject: [PATCH] test: preserve dangling snapshot destination symlinks --- tests/unit/test_env_encrypt.bats | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/unit/test_env_encrypt.bats b/tests/unit/test_env_encrypt.bats index 0e3bfea..9a80670 100644 --- a/tests/unit/test_env_encrypt.bats +++ b/tests/unit/test_env_encrypt.bats @@ -62,6 +62,20 @@ teardown() { assert_output 'Previous backup' } +@test "env encrypt preserves a dangling output symlink" { + local missing_target="$TEST_TMPDIR/missing-backup.enc" + ln -s "$missing_target" "$output_file" + + run env_encrypt "$staging_dir" "$output_file" + + assert_failure + assert_output --partial 'already exists' + [ -f "$staging_dir/recipe.md" ] + [ -L "$output_file" ] + [ "$(readlink "$output_file")" = "$missing_target" ] + [ ! -e "$missing_target" ] +} + @test "env encrypt rejects output inside staging including symlinked directories" { ln -s "$staging_dir" "$TEST_TMPDIR/link" for destination in "$staging_dir/snapshot.enc" "$TEST_TMPDIR/link/snapshot.enc"; do