统一任务成功、Attempt 与结算 Outbox 的事务边界,增加多实例安全结算、人工复核、请求幂等与执行租约。钱包决策使用九位精确金额,并通过审计保护约束保留流水事实;同时补充管理接口、指标与 PostgreSQL 集成测试。
22 lines
504 B
Go
22 lines
504 B
Go
package httpapi
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestSingleIdempotencyKey(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
request := httptest.NewRequest("POST", "/", nil)
|
|
request.Header.Add("Idempotency-Key", "retry-1")
|
|
if got, ok := singleIdempotencyKey(request); !ok || got != "retry-1" {
|
|
t.Fatalf("got key=%q ok=%v", got, ok)
|
|
}
|
|
|
|
request.Header.Add("Idempotency-Key", "retry-2")
|
|
if _, ok := singleIdempotencyKey(request); ok {
|
|
t.Fatal("multiple Idempotency-Key values must be rejected")
|
|
}
|
|
}
|