@@ -7,6 +7,15 @@ set test_dir "/tmp/merge-overlay-test-[clock seconds]"
77set repo_dir "$test_dir/repo"
88set overlay_upper "$test_dir/overlay"
99
10+ # Global timeout handler - record failure but continue testing
11+ expect_before {
12+ timeout {
13+ global tests_failed
14+ incr tests_failed
15+ puts "\n\033\[0;31m✗ TIMEOUT:\033\[0m Expected pattern not found (test will likely fail)"
16+ }
17+ }
18+
1019# Colors for output
1120set GREEN "\033\[0;32m"
1221set RED "\033\[0;31m"
@@ -55,10 +64,12 @@ proc setup_test_env {} {
5564
5665 # Initialize git repo (merge-overlay checks for .git)
5766 exec sh -c "cd $repo_dir && git init >/dev/null 2>&1"
67+ exec sh -c "cd $repo_dir && git config --local user.email 'test@example.com' && git config --local user.name 'Test User' && git config --local commit.gpgsign false"
5868
59- # Create some base files in repo
69+ # Create some base files in repo and commit them
6070 exec sh -c "echo 'original content' > $repo_dir/file1.txt"
6171 exec sh -c "echo 'base content' > $repo_dir/file2.txt"
72+ exec sh -c "cd $repo_dir && git add file1.txt file2.txt && git commit -m 'Initial test files' >/dev/null 2>&1"
6273
6374 log_success "Test environment created"
6475}
@@ -496,6 +507,8 @@ proc test_file_list_display {} {
496507
497508 start_test "Verify file list is displayed before processing"
498509
510+ clear_overlay
511+
499512 # Ensure files exist in repo for modified/deleted status
500513 exec sh -c "echo 'original content' > $repo_dir/file1.txt"
501514 exec sh -c "echo 'base content' > $repo_dir/file2.txt"
@@ -607,7 +620,9 @@ proc create_gitignore {patterns} {
607620proc clear_overlay {} {
608621 global overlay_upper repo_dir
609622 exec sh -c "rm -rf $overlay_upper/* $overlay_upper/.* 2>/dev/null || true"
610- exec sh -c "rm -f $repo_dir/.gitignore 2>/dev/null || true"
623+ # Reset git state completely to initial commit
624+ exec sh -c "cd $repo_dir && git reset --hard HEAD 2>/dev/null || true"
625+ exec sh -c "cd $repo_dir && git clean -fdx 2>/dev/null || true"
611626}
612627
613628# Test 12: Git-ignored files - discard all
@@ -749,12 +764,13 @@ proc test_git_ignored_keep_for_review {} {
749764 # Process first file
750765 expect -re {Action.*\?}
751766 send "y\r"
752- expect "✓ Accepted"
767+ expect -re { Accepted}
753768
754769 # Process second file
755770 expect -re {Action.*\?}
756771 send "y\r"
757- expect "✓ Accepted"
772+ expect -re {Accepted}
773+
758774
759775 # Wait for process to complete
760776 catch {expect eof}
0 commit comments