處理 AI review findings 並改寫 Node.js entrypoint #1

Merged
jiantw83 merged 58 commits from ai-review-resolve/20260624102518 into develop 2026-06-24 14:09:27 +00:00
Showing only changes of commit 1f470f5529 - Show all commits
+31
View File
2
@@ -58,6 +58,8 @@ test_missing_oauth() {
assert_status "$status" 1
grep -q "OAUTH is required" "$tmpdir/stderr" || die "missing OAUTH error"
grep -q "status=failed" "$tmpdir/github-output" || die "missing OAUTH failed status output"
grep -q "OAUTH is required" "$tmpdir/github-output" || die "missing OAUTH output"
rm -rf "$tmpdir"
}
Ghost marked this conversation as resolved
Review

嚴重等級🔵 建議
審查員:Maya
問題:測試案例對於輸入參數的邊界測試(例如 PROMPT 為空字串、極長字串)不足。
建議:增加針對 PROMPT 輸入為空字串或是包含特殊 Shell 跳脫字元的測試案例。

**嚴重等級**:🔵 建議 **審查員**:Maya **問題**:測試案例對於輸入參數的邊界測試(例如 `PROMPT` 為空字串、極長字串)不足。 **建議**:增加針對 `PROMPT` 輸入為空字串或是包含特殊 Shell 跳脫字元的測試案例。
@@ -73,6 +75,8 @@ test_missing_model() {
assert_status "$status" 1
grep -q "MODEL is required" "$tmpdir/stderr" || die "missing MODEL error"
grep -q "status=failed" "$tmpdir/github-output" || die "missing MODEL failed status output"
grep -q "MODEL is required" "$tmpdir/github-output" || die "missing MODEL output"
rm -rf "$tmpdir"
}
@@ -88,6 +92,8 @@ test_invalid_base64() {
assert_status "$status" 1
grep -q "valid base64" "$tmpdir/stderr" || die "invalid base64 error"
grep -q "status=failed" "$tmpdir/github-output" || die "invalid base64 failed status output"
grep -q "valid base64" "$tmpdir/github-output" || die "invalid base64 output"
rm -rf "$tmpdir"
}
@@ -103,6 +109,8 @@ test_non_object_json() {
assert_status "$status" 1
grep -q "JSON object" "$tmpdir/stderr" || die "non-object JSON error"
grep -q "status=failed" "$tmpdir/github-output" || die "non-object JSON failed status output"
grep -q "JSON object" "$tmpdir/github-output" || die "non-object JSON output"
rm -rf "$tmpdir"
}
@@ -160,6 +168,28 @@ test_failure_output() {
rm -rf "$tmpdir"
}
test_missing_codex_command_output() {
local tmpdir
local bindir
tmpdir="$(mktemp -d)"
bindir="$tmpdir/bin"
mkdir -p "$bindir"
ln -s "$(command -v bash)" "$bindir/bash"
ln -s "$(command -v dirname)" "$bindir/dirname"
ln -s "$(command -v node)" "$bindir/node"
set +e
run_entrypoint "$tmpdir" PATH="$bindir" OAUTH="$(encoded_json '{}')" MODEL="gpt-test" PROMPT="hello"
local status="$?"
set -e
assert_status "$status" 1
grep -q "status=failed" "$tmpdir/github-output" || die "missing codex command failed status output"
grep -q "spawn codex ENOENT" "$tmpdir/github-output" || die "missing codex command error output"
[[ ! -e "$tmpdir/codex-home/auth.json" ]] || die "auth.json was not cleaned up after missing codex"
rm -rf "$tmpdir"
}
test_missing_oauth
test_missing_model
test_invalid_base64
@@ -168,5 +198,6 @@ test_success_output
test_empty_prompt
test_prompt_with_shell_characters
test_failure_output
test_missing_codex_command_output
echo "entrypoint tests passed"