package fadada import ( "testing" ) func TestBuildTemplateFieldValues(t *testing.T) { client := NewClient(&Config{ AppID: "app", AppSecret: "secret", ServerURL: "https://uat-api.fadada.com/api/v5/", OpenCorpID: "corp", TemplateID: "1784013372537192273", TemplateFields: &TemplateFields{ AgreementNo: []string{ "5199991781", "0923405093", }, ContractDate: "2039326319", PartyAName: []string{ "6920634255", "1847502631", }, PartyAUSCC: "8702060291", PartyAAddress: "4557539440", PartyARep: "8627432823", }, }) values := client.BuildTemplateFieldValues(&ContractFillRequest{ AgreementNo: "HYDATA-20260714-R000001", CompanyName: "测试企业有限公司", UnifiedSocialCode: "91110000MA01234567", EnterpriseAddress: "海南省海口市", AuthorizedRepName: "张三", SignDate: "2026年07月14日", }) want := map[string]string{ "5199991781": "HYDATA-20260714-R000001", "0923405093": "HYDATA-20260714-R000001", "6920634255": "测试企业有限公司", "1847502631": "测试企业有限公司", "2039326319": "2026年07月14日", "8702060291": "91110000MA01234567", "4557539440": "海南省海口市", "8627432823": "张三", } if len(values) != len(want) { t.Fatalf("field count = %d, want %d", len(values), len(want)) } got := make(map[string]string, len(values)) for _, v := range values { got[v.FieldID] = v.FieldValue } for id, val := range want { if got[id] != val { t.Fatalf("field %s = %q, want %q", id, got[id], val) } } } func TestResolveSignTaskDocIDFromConfig(t *testing.T) { c := NewClient(&Config{ AppID: "app", AppSecret: "secret", ServerURL: "https://uat-api.fadada.com/api/v5/", TemplateDocID: "19161471", }) id, err := c.resolveSignTaskDocID("task-1", "") if err != nil { t.Fatal(err) } if id != "19161471" { t.Fatalf("docId=%s", id) } } func TestValidateTemplateFields(t *testing.T) { cfg := &Config{ TemplateID: "1784013372537192273", OpenCorpID: "corp", TemplateFields: &TemplateFields{ AgreementNo: []string{"0923405093", "5199991781"}, ContractDate: "2039326319", PartyAName: []string{"6920634255", "1847502631"}, PartyAUSCC: "8702060291", PartyAAddress: "4557539440", PartyARep: "8627432823", }, } if err := cfg.ValidateTemplateFields(); err != nil { t.Fatalf("unexpected error: %v", err) } cfg.TemplateFields.PartyAName = nil if err := cfg.ValidateTemplateFields(); err == nil { t.Fatal("expected error when party_a_name empty") } cfg.TemplateFields.PartyAName = []string{"6920634255"} cfg.TemplateFields.AgreementNo = nil if err := cfg.ValidateTemplateFields(); err == nil { t.Fatal("expected error when agreement_no empty") } }