80 lines
2.0 KiB
Bash
Executable File
80 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Test daemon auto-import after git pull (bd-09b5f2f5)
|
|
# This verifies the critical data corruption fix
|
|
|
|
set -e
|
|
|
|
TMPDIR=$(mktemp -d)
|
|
trap "rm -rf $TMPDIR" EXIT
|
|
|
|
echo "=== Setting up test environment ==="
|
|
cd $TMPDIR
|
|
|
|
# Create origin repo
|
|
mkdir origin && cd origin
|
|
git init --bare
|
|
|
|
cd $TMPDIR
|
|
|
|
# Clone repo A
|
|
git clone origin repoA
|
|
cd repoA
|
|
git config user.name "Test User A"
|
|
git config user.email "test-a@example.com"
|
|
|
|
# Initialize bd in repo A
|
|
echo "=== Initializing bd in repo A ==="
|
|
bd init --prefix test --quiet
|
|
bd create "Initial issue" -p 1 -d "Created in repo A" --json
|
|
|
|
# Commit and push (use master as default branch)
|
|
git add .
|
|
git commit -m "Initial commit with bd"
|
|
git push origin master
|
|
|
|
cd $TMPDIR
|
|
|
|
# Clone repo B
|
|
echo "=== Cloning repo B ==="
|
|
git clone origin repoB
|
|
cd repoB
|
|
git config user.name "Test User B"
|
|
git config user.email "test-b@example.com"
|
|
|
|
# Initialize bd in repo B (import from JSONL)
|
|
echo "=== Initializing bd in repo B ==="
|
|
bd init --prefix test --quiet
|
|
|
|
# Verify repo B can read the issue
|
|
echo "=== Verifying repo B sees initial issue ==="
|
|
ISSUE_ID=$(bd list --json | jq -r '.[0].id')
|
|
echo "Found issue: $ISSUE_ID"
|
|
|
|
# In repo A: Update the issue
|
|
cd $TMPDIR/repoA
|
|
echo "=== Repo A: Updating issue status ==="
|
|
bd update $ISSUE_ID --status in_progress --json
|
|
bd sync # Force immediate export/commit/push
|
|
|
|
# Wait for export to flush
|
|
sleep 2
|
|
|
|
# In repo B: Pull and verify daemon auto-imports
|
|
cd $TMPDIR/repoB
|
|
echo "=== Repo B: Pulling changes ==="
|
|
git pull
|
|
|
|
# Check if daemon auto-imports (should see updated status)
|
|
echo "=== Repo B: Checking if daemon auto-imported ==="
|
|
STATUS=$(bd show $ISSUE_ID --json | jq -r '.[0].status')
|
|
|
|
if [ "$STATUS" == "in_progress" ]; then
|
|
echo "✅ SUCCESS: Daemon auto-imported! Status is 'in_progress' as expected"
|
|
exit 0
|
|
else
|
|
echo "❌ FAIL: Daemon did NOT auto-import. Status is '$STATUS', expected 'in_progress'"
|
|
echo ""
|
|
echo "This indicates bd-09b5f2f5 regression - daemon serving stale data"
|
|
exit 1
|
|
fi
|