跳到內容

AI 與訊息

gortexa export 對所有 gortexa.ai.v1 標注的方法,輸出三種 provider 格式的有效 JSON schema,不需要跑起 server。

Terminal window
for fmt in mcp openai gemini; do
gortexa export --format "$fmt" # 皆輸出有效 JSON,且含 resource 相關 tool
done
gortexa export --format nope # 未知格式:非零退出、乾淨失敗

三種輸出都有 golden test 鎖定,proto 一改、schema 跟著變,漂移會被抓到。

11 nats-integration — 對真實 NATS broker

Section titled “11 nats-integration — 對真實 NATS broker”

從情境自帶的 docker-compose.yaml 起一個真 NATS broker,跑 mq 的 core NATS 整合測試。NATS_URL 一旦設了,測試連的是容器裡的 broker 而非行程內嵌 server,連線失敗就是失敗——skip 也視為失敗。

Terminal window
docker compose -f docker-compose.yaml up -d nats
NATS_URL=nats://127.0.0.1:4222 go test -tags integration -race -count=1 \
-run 'TestNATS' ./mq/

斷言 TestNATSPubSubTestNATSQueueGroupLoadBalance 等 PASS——後者驗證非空 group_id 的 load-balance 語意(見設定)。

12 jetstream-integration — 對真實 JetStream broker

Section titled “12 jetstream-integration — 對真實 JetStream broker”

同 11 的結構,改用 JetStream driver:broker 以 -js 啟動、JETSTREAM_URL 環境變數。除了 fanout 與 load-balance 語意與 core NATS 對齊之外,多驗證 JetStream 專屬的 at-least-once——handler 回錯誤後訊息會被延遲重投遞。

Terminal window
docker compose -f docker-compose.yaml up -d nats # nats:2 加 command: ["-js"]
JETSTREAM_URL=nats://127.0.0.1:4222 go test -tags integration -race -count=1 \
-run 'TestJetStream' ./mq/

斷言 TestJetStreamPubSubTestJetStreamQueueGroupLoadBalanceTestJetStreamRedeliveryOnHandlerError 等 PASS——最後者釘住 at-least-once 重投遞(handler 因此必須冪等,見設定)。