fix: align business V2 fields and page interactions
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user