From f718d36d23adcd0567c908ba5a8ddcd97fe8e453 Mon Sep 17 00:00:00 2001 From: weichen Date: Mon, 12 Oct 2026 13:43:24 +0000 Subject: [PATCH] Add red test for EXT-19 account lister surface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why: 方案 r1 U3/KTD2——最小账号目录(owner+有效态+分页)是 RDM 成员管理的公开前置。 Evidence: go vet 编译红(AccountLister/AccountEntry/SurfaceVersion 2.11.0 未定义)。 Impact: 仅测试。 Refs: 方案 r1 U3/KTD2;Dev#477 identity CLI --- pkg/extension/account_lister_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pkg/extension/account_lister_test.go diff --git a/pkg/extension/account_lister_test.go b/pkg/extension/account_lister_test.go new file mode 100644 index 0000000..d448879 --- /dev/null +++ b/pkg/extension/account_lister_test.go @@ -0,0 +1,26 @@ +package extension + +// EXT-19 红测(方案 r1 U3/KTD2 最小账号目录):公开面新增可选能力接口 +// AccountLister(ListAccounts:owner+有效态+游标分页——授权管理所需的最小身份, +// 不含姓名/邮箱/联系方式)。红:类型未定义,编译红先行。 +import ( + "encoding/json" + "strings" + "testing" +) + +func TestAccountListerSurface(t *testing.T) { + if !strings.HasPrefix(SurfaceVersion, "2.11.0") { + t.Fatalf("SurfaceVersion 应升至 2.11.0-experimental(新增导出符号须升版),got %s", SurfaceVersion) + } + // 接口方法签名即契约:游标分页 + 最小字段。 + var _ AccountLister = (AccountLister)(nil) + e := AccountEntry{Owner: "u1", Valid: true} + b, err := json.Marshal(e) + if err != nil { + t.Fatal(err) + } + if !strings.Contains(string(b), `"owner":"u1"`) || !strings.Contains(string(b), `"valid":true`) { + t.Fatalf("AccountEntry 序列化不符(最小字段 owner/valid): %s", b) + } +}