diff --git a/antd-lua/spec/client_spec.lua b/antd-lua/spec/client_spec.lua index 8b59279..a7c6d14 100644 --- a/antd-lua/spec/client_spec.lua +++ b/antd-lua/spec/client_spec.lua @@ -81,7 +81,16 @@ local function setup_daemon() -- Health register_route("GET", "/health", 200, - cjson.encode({ status = "ok", network = "local" })) + cjson.encode({ + status = "ok", + network = "local", + version = "0.4.0", + evm_network = "local", + uptime_seconds = 42, + build_commit = "abcdef123456", + payment_token_address = "0xtoken", + payment_vault_address = "0xvault", + })) -- Data put public register_route("POST", "/v1/data/public", 200, @@ -164,11 +173,17 @@ describe("antd client", function() end) describe("health", function() - it("returns health status", function() + it("returns health status with all diagnostic fields", function() local h, err = client:health() assert.is_nil(err) assert.is_true(h.ok) assert.are.equal("local", h.network) + assert.are.equal("0.4.0", h.version) + assert.are.equal("local", h.evm_network) + assert.are.equal(42, h.uptime_seconds) + assert.are.equal("abcdef123456", h.build_commit) + assert.are.equal("0xtoken", h.payment_token_address) + assert.are.equal("0xvault", h.payment_vault_address) end) end) diff --git a/antd-lua/src/antd/client.lua b/antd-lua/src/antd/client.lua index 09c7efe..7c3b58f 100644 --- a/antd-lua/src/antd/client.lua +++ b/antd-lua/src/antd/client.lua @@ -195,7 +195,14 @@ end function Client:health() local j, _, err = self:_do_json("GET", "/health", nil) if err then return nil, err end - return models.new_health_status(str(j, "status") == "ok", str(j, "network")), nil + return models.new_health_status(str(j, "status") == "ok", str(j, "network"), { + version = str(j, "version"), + evm_network = str(j, "evm_network"), + uptime_seconds = j.uptime_seconds or 0, + build_commit = str(j, "build_commit"), + payment_token_address = str(j, "payment_token_address"), + payment_vault_address = str(j, "payment_vault_address"), + }), nil end -- ── Data ── diff --git a/antd-lua/src/antd/models.lua b/antd-lua/src/antd/models.lua index e0bccf9..b3c01a7 100644 --- a/antd-lua/src/antd/models.lua +++ b/antd-lua/src/antd/models.lua @@ -5,13 +5,28 @@ local M = {} --- Create a HealthStatus table. +-- +-- The diagnostic fields (version, evm_network, uptime_seconds, build_commit, +-- payment_token_address, payment_vault_address) were added in antd 0.4.0. +-- The optional opts table populates them; missing keys default to "" / 0 so +-- the function stays backward-compatible with the original 2-arg call shape. +-- -- @param ok boolean daemon is healthy -- @param network string network name +-- @param opts table optional diagnostic fields: { version, evm_network, +-- uptime_seconds, build_commit, payment_token_address, payment_vault_address } -- @return table -function M.new_health_status(ok, network) +function M.new_health_status(ok, network, opts) + opts = opts or {} return { ok = ok, network = network, + version = opts.version or "", + evm_network = opts.evm_network or "", + uptime_seconds = opts.uptime_seconds or 0, + build_commit = opts.build_commit or "", + payment_token_address = opts.payment_token_address or "", + payment_vault_address = opts.payment_vault_address or "", } end