浏览代码

Fix companion test cleanup and argv assertions

Drew Ritter 3 月之前
父节点
当前提交
69ed41af9e

+ 4 - 1
tests/brainstorm-server/auth.test.js

@@ -298,7 +298,10 @@ async function runTests() {
     });
 
     console.log(`\n--- Results: ${passed} passed, ${failed} failed ---`);
-    if (failed > 0) process.exit(1);
+    if (failed > 0) {
+      process.exitCode = 1;
+      return;
+    }
   } finally {
     server.kill();
     await sleep(100);

+ 3 - 4
tests/brainstorm-server/start-server.test.sh

@@ -48,7 +48,7 @@ make_fake_uname "$TEST_DIR/fake-bin"
 cat > "$TEST_DIR/fake-bin/node" <<'EOF'
 #!/usr/bin/env bash
 echo "CAPTURED_OWNER_PID=${BRAINSTORM_OWNER_PID:-__UNSET__}"
-echo "CAPTURED_ARGV=$*"
+printf 'CAPTURED_ARGV=%s\n' "$@"
 exit 0
 EOF
 chmod +x "$TEST_DIR/fake-bin/node"
@@ -67,12 +67,11 @@ else
        "expected empty or unset, got '$owner_pid_value'"
 fi
 
-captured_argv=$(echo "$captured" | grep "CAPTURED_ARGV=" | head -1 | sed 's/CAPTURED_ARGV=//')
-if echo "$captured_argv" | grep -Eq -- '--brainstorm-server-id=[A-Za-z0-9_-]{32,64}'; then
+if echo "$captured" | grep -Eq '^CAPTURED_ARGV=--brainstorm-server-id=[A-Za-z0-9_-]{32,64}$'; then
   pass "passes shell-safe server instance id argv"
 else
   fail "passes shell-safe server instance id argv" \
-       "expected --brainstorm-server-id=<safe id>, got: $captured_argv"
+       "expected exact --brainstorm-server-id=<safe id> argv line, got: $captured"
 fi
 
 server_id_file=$(find "$TEST_DIR/project/.superpowers/brainstorm" -name server-instance-id -print 2>/dev/null | head -1)

+ 3 - 3
tests/brainstorm-server/windows-lifecycle.test.sh

@@ -162,7 +162,7 @@ if [[ "$is_windows" == "true" ]]; then
   cat > "$FAKE_NODE_DIR/node" <<'FAKENODE'
 #!/usr/bin/env bash
 echo "CAPTURED_OWNER_PID=${BRAINSTORM_OWNER_PID:-__UNSET__}"
-echo "CAPTURED_ARGV=$*"
+printf 'CAPTURED_ARGV=%s\n' "$@"
 exit 0
 FAKENODE
   chmod +x "$FAKE_NODE_DIR/node"
@@ -177,8 +177,7 @@ FAKENODE
          "Expected empty or unset, got '$owner_pid_value'"
   fi
 
-  captured_argv=$(echo "$captured" | grep "CAPTURED_ARGV=" | head -1 | sed 's/CAPTURED_ARGV=//')
-  if echo "$captured_argv" | grep -Eq -- '--brainstorm-server-id=[A-Za-z0-9_-]{32,64}'; then
+  if echo "$captured" | grep -Eq '^CAPTURED_ARGV=--brainstorm-server-id=[A-Za-z0-9_-]{32,64}$'; then
     pass "start-server.sh passes server instance id argv on Windows"
   else
     fail "start-server.sh passes server instance id argv on Windows" \
@@ -360,6 +359,7 @@ echo "$STOP_TEST_PID" > "$TEST_DIR/stop-test/state/server.pid"
 if ! wait_for_server_info "$TEST_DIR/stop-test"; then
   fail "Stop-test server starts" "Server did not start"
   kill "$STOP_TEST_PID" 2>/dev/null || true
+  wait "$STOP_TEST_PID" 2>/dev/null || true
   STOP_TEST_PID=""
 else
   bash "$STOP_SCRIPT" "$TEST_DIR/stop-test" >/dev/null 2>&1 || true