ソースを参照

fix: nutshell itests

thesimplekid 2 ヶ月 前
コミット
31459fcb95
1 ファイル変更41 行追加6 行削除
  1. 41 6
      justfile

+ 41 - 6
justfile

@@ -95,8 +95,23 @@ test-all db="memory":
     
 test-nutshell:
   #!/usr/bin/env bash
+  set -euo pipefail
+  
+  # Function to cleanup docker containers
+  cleanup() {
+    echo "Cleaning up docker containers..."
+    docker stop nutshell 2>/dev/null || true
+    docker rm nutshell 2>/dev/null || true
+    unset CDK_ITESTS_DIR
+  }
+  
+  # Trap to ensure cleanup happens on exit (success or failure)
+  trap cleanup EXIT
+  
   docker run -d -p 3338:3338 --name nutshell -e MINT_LIGHTNING_BACKEND=FakeWallet -e MINT_LISTEN_HOST=0.0.0.0 -e MINT_LISTEN_PORT=3338 -e MINT_PRIVATE_KEY=TEST_PRIVATE_KEY -e MINT_INPUT_FEE_PPK=100  cashubtc/nutshell:latest poetry run mint
   
+  export CDK_ITESTS_DIR=$(mktemp -d)
+
   # Wait for the Nutshell service to be ready
   echo "Waiting for Nutshell to start..."
   max_attempts=30
@@ -105,8 +120,6 @@ test-nutshell:
     attempt=$((attempt+1))
     if [ $attempt -ge $max_attempts ]; then
       echo "Nutshell failed to start after $max_attempts attempts"
-      docker stop nutshell
-      docker rm nutshell
       exit 1
     fi
     echo "Waiting for Nutshell to start (attempt $attempt/$max_attempts)..."
@@ -116,12 +129,34 @@ test-nutshell:
   
   export CDK_TEST_MINT_URL=http://127.0.0.1:3338
   export LN_BACKEND=FAKEWALLET
-  cargo test -p cdk-integration-tests --test happy_path_mint_wallet
-  cargo test -p cdk-integration-tests --test test_fees
+  
+  # Track test results
+  test_exit_code=0
+  
+  # Run first test and capture exit code
+  echo "Running happy_path_mint_wallet test..."
+  if ! cargo test -p cdk-integration-tests --test happy_path_mint_wallet; then
+    echo "ERROR: happy_path_mint_wallet test failed"
+    test_exit_code=1
+  fi
+  
+  # Run second test and capture exit code
+  echo "Running test_fees test..."
+  if ! cargo test -p cdk-integration-tests --test test_fees; then
+    echo "ERROR: test_fees test failed"
+    test_exit_code=1
+  fi
+  
   unset CDK_TEST_MINT_URL
   unset LN_BACKEND
-  docker stop nutshell
-  docker rm nutshell
+  
+  # Exit with error code if any test failed
+  if [ $test_exit_code -ne 0 ]; then
+    echo "One or more tests failed"
+    exit $test_exit_code
+  fi
+  
+  echo "All tests passed successfully"
     
 
 # run `cargo clippy` on everything