處理 AI review findings 並改寫 Node.js entrypoint #2
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
IMAGE_NAME="codex-action-smoke:local"
|
||||
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
echo "SKIP: docker is not available"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! docker info >/dev/null 2>&1; then
|
||||
echo "SKIP: docker daemon is not available"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
docker build -t "$IMAGE_NAME" "$ROOT_DIR"
|
||||
|
||||
docker run --rm --entrypoint codex "$IMAGE_NAME" --version
|
||||
docker run --rm --entrypoint codex "$IMAGE_NAME" plugin list | grep -q "jsc@doc"
|
||||
docker run --rm --entrypoint codex "$IMAGE_NAME" plugin list | grep -q "jsc@code-review"
|
||||
@@ -16,6 +16,7 @@ make_fake_codex() {
|
||||
|
||||
cat > "$dir/codex" <<SH
|
||||
#!/bin/sh
|
||||
printf '%s\n' "\$*" > "\${CODEX_FAKE_ARGS:-/dev/null}"
|
||||
echo "$message"
|
||||
exit $exit_code
|
||||
SH
|
||||
@@ -118,6 +119,30 @@ test_success_output() {
|
||||
rm -rf "$tmpdir"
|
||||
}
|
||||
|
||||
test_empty_prompt() {
|
||||
local tmpdir
|
||||
tmpdir="$(mktemp -d)"
|
||||
make_fake_codex "$tmpdir" 0 "codex ok"
|
||||
|
||||
run_entrypoint "$tmpdir" OAUTH="$(encoded_json '{}')" MODEL="gpt-test" PROMPT=""
|
||||
|
||||
grep -q "codex ok" "$tmpdir/github-output" || die "empty prompt output"
|
||||
rm -rf "$tmpdir"
|
||||
}
|
||||
|
||||
test_prompt_with_shell_characters() {
|
||||
local tmpdir
|
||||
local prompt
|
||||
tmpdir="$(mktemp -d)"
|
||||
prompt='hello; rm -rf / $(echo bad) "quoted"'
|
||||
make_fake_codex "$tmpdir" 0 "codex ok"
|
||||
|
||||
run_entrypoint "$tmpdir" OAUTH="$(encoded_json '{}')" MODEL="gpt-test" PROMPT="$prompt" CODEX_FAKE_ARGS="$tmpdir/codex-args"
|
||||
|
||||
grep -qF "$prompt" "$tmpdir/codex-args" || die "prompt was not passed as one argument"
|
||||
rm -rf "$tmpdir"
|
||||
}
|
||||
|
||||
test_failure_output() {
|
||||
local tmpdir
|
||||
tmpdir="$(mktemp -d)"
|
||||
@@ -140,6 +165,8 @@ test_missing_model
|
||||
test_invalid_base64
|
||||
test_non_object_json
|
||||
test_success_output
|
||||
test_empty_prompt
|
||||
test_prompt_with_shell_characters
|
||||
test_failure_output
|
||||
|
||||
echo "entrypoint tests passed"
|
||||
|
||||
Reference in New Issue
Block a user