fix: align business V2 fields and page interactions

This commit is contained in:
Yvan
2026-11-07 02:00:12 +08:00
parent c2f3ebdf4a
commit 4038e3b42f
19 changed files with 290 additions and 127 deletions
+24 -3
View File
@@ -6,8 +6,28 @@ import (
"kra/internal/biz/business"
"kra/internal/service/dto"
"testing"
"time"
)
func TestCreateMemberDefaultsOptionalHireDate(t *testing.T) {
f := &accountUsecaseFake{}
s := &AccountService{uc: f}
username, name := "newmember", "负责人"
for _, date := range []*string{nil, new(string)} {
_, err := s.Create(context.Background(), &dto.BusinessAccountRequest{Username: &username, RealName: &name, Password: "abc123", HireDate: date})
if err != nil {
t.Fatal(err)
}
if f.created.HireDate != time.Now().In(time.FixedZone("Asia/Shanghai", 8*3600)).Format("2006-01-02") {
t.Fatalf("default date: %s", f.created.HireDate)
}
}
invalid := "2026-02-30"
if _, err := s.Create(context.Background(), &dto.BusinessAccountRequest{Username: &username, RealName: &name, Password: "abc123", HireDate: &invalid}); err == nil {
t.Fatal("invalid explicit hire date accepted")
}
}
type accountUsecaseFake struct {
AccountUsecase
created *business.Account
@@ -68,14 +88,15 @@ func TestAccountQueryEmptyFiltersAndPageBounds(t *testing.T) {
}
}
func TestCreateBusinessRequiresHireDateAndValidPhone(t *testing.T) {
func TestCreateBusinessDefaultsHireDateAndValidatesPhone(t *testing.T) {
f := &accountUsecaseFake{}
s := &AccountService{uc: f}
name, owner, phone, hire := "member", "负责人", "abc", "2026-11-01"
req := &dto.BusinessAccountRequest{Username: &name, RealName: &owner, Password: "test-password"}
if _, err := s.Create(context.Background(), req); err != business.ErrMemberInput || f.created != nil {
t.Fatal("missing hire date must not reach usecase")
if _, err := s.Create(context.Background(), req); err != nil || f.created.HireDate == "" {
t.Fatal("missing hire date should default to today")
}
f.created = nil
req.HireDate, req.Phone = &hire, &phone
if _, err := s.Create(context.Background(), req); err != business.ErrMemberInput || f.created != nil {
t.Fatal("invalid phone must not reach usecase")