You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ni...@apache.org on 2026/04/16 16:53:32 UTC
(apisix) branch feat/ai-fixture-system updated (db6e7004f -> 2a8dd4f89)
This is an automated email from the ASF dual-hosted git repository.
nic443 pushed a change to branch feat/ai-fixture-system
in repository https://gitbox.apache.org/repos/asf/apisix.git
from db6e7004f fix: resolve CI lint issues
add dc1b00e75 fix: restore wrong-auth 401 test, fix more_header typo
new 2a8dd4f89 fix: resolve CI test failures in fixture-converted tests
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
t/fixtures/openai/unauthorized.json | 7 +++++++
t/lib/server.lua | 37 +++++++++++++++++++++++++++++++++++--
t/plugin/ai-proxy-multi.t | 9 +++++----
t/plugin/ai-proxy.t | 4 ++--
t/plugin/ai-proxy2.t | 4 ++--
t/plugin/ai-rate-limiting.t | 4 ++--
6 files changed, 53 insertions(+), 12 deletions(-)
create mode 100644 t/fixtures/openai/unauthorized.json
(apisix) 01/01: fix: resolve CI test failures in fixture-converted tests
Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
nic443 pushed a commit to branch feat/ai-fixture-system
in repository https://gitbox.apache.org/repos/asf/apisix.git
commit 2a8dd4f8916e078cf32b26bbf090577e6f7c3e68
Author: Nic <qi...@api7.ai>
AuthorDate: Fri Apr 17 00:53:05 2026 +0800
fix: resolve CI test failures in fixture-converted tests
- server.lua: v1_chat_completions now has auth-checking + message-echo
fallback when X-AI-Fixture header is absent, restoring behavior needed
by ai-request-rewrite tests (auth validation, message concatenation)
- server.lua: _M.random() returns proper OpenAI JSON format instead of
plain text, matching what ai-request-rewrite.t TEST 8 expects
- ai-proxy.t TEST 12: updated assertion for new /random response format
- ai-proxy2.t TEST 4,8: fixed response_body assertion to allow optional
spaces after colons in JSON (fixture files are pretty-printed)
---
t/lib/server.lua | 37 +++++++++++++++++++++++++++++++++++--
t/plugin/ai-proxy.t | 4 ++--
t/plugin/ai-proxy2.t | 4 ++--
3 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/t/lib/server.lua b/t/lib/server.lua
index ce939463b..c9520fb70 100644
--- a/t/lib/server.lua
+++ b/t/lib/server.lua
@@ -762,7 +762,39 @@ local function ai_fixture_dispatch()
end
function _M.v1_chat_completions()
- ai_fixture_dispatch()
+ -- fixture dispatch takes priority
+ if ngx.req.get_headers()["x-ai-fixture"] then
+ ai_fixture_dispatch()
+ return
+ end
+ -- fallback: auth-checking + message echo (for ai-request-rewrite tests)
+ local header_auth = ngx.req.get_headers()["authorization"]
+ local query_auth = ngx.req.get_uri_args()["api_key"]
+ if header_auth ~= "Bearer token" and query_auth ~= "apikey" then
+ ngx.status = 401
+ ngx.say("Unauthorized")
+ return
+ end
+ ngx.req.read_body()
+ local body = ngx.req.get_body_data()
+ local json = require("cjson.safe")
+ body = json.decode(body)
+ if not body or not body.messages or #body.messages < 1 then
+ ngx.status = 400
+ ngx.say([[{"error":"bad request"}]])
+ return
+ end
+ -- concatenate all message contents (for ai-request-rewrite prompt tests)
+ local parts = {}
+ for _, msg in ipairs(body.messages) do
+ if msg.content then
+ table.insert(parts, msg.content)
+ end
+ end
+ local content = table.concat(parts, " ")
+ ngx.say(json.encode({
+ choices = {{message = {content = content}}}
+ }))
end
function _M.v1_messages()
@@ -788,7 +820,8 @@ function _M.delay_v1_chat_completions()
end
function _M.random()
- ngx.say("path override works")
+ ngx.header["Content-Type"] = "application/json"
+ ngx.print([[{"choices":[{"message":{"content":"return by random endpoint"}}]}]])
end
-- Health check probe endpoint for AI proxy tests.
diff --git a/t/plugin/ai-proxy.t b/t/plugin/ai-proxy.t
index d806c7f74..2359a5bbe 100644
--- a/t/plugin/ai-proxy.t
+++ b/t/plugin/ai-proxy.t
@@ -373,8 +373,8 @@ qr/chat\.completion/
}
}
---- response_body
-path override works
+--- response_body_like
+return by random endpoint
diff --git a/t/plugin/ai-proxy2.t b/t/plugin/ai-proxy2.t
index 9cb5b78d8..5e2614128 100644
--- a/t/plugin/ai-proxy2.t
+++ b/t/plugin/ai-proxy2.t
@@ -147,7 +147,7 @@ POST /anything
X-AI-Fixture: openai/chat-basic.json
--- error_code: 200
--- response_body eval
-qr/"content":"1 \+ 1 = 2\."/
+qr/"content"\s*:\s*"1 \+ 1 = 2\."/
@@ -247,4 +247,4 @@ POST /anything
X-AI-Fixture: openai/chat-basic.json
--- error_code: 200
--- response_body eval
-qr/"content":"1 \+ 1 = 2\."/
+qr/"content"\s*:\s*"1 \+ 1 = 2\."/