Files
hyapi-server/internal/shared/fadada/template_service_test.go

105 lines
2.7 KiB
Go
Raw Normal View History

2026-07-21 15:53:29 +08:00
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")
}
}