package wallet import ( "context" "errors" "testing" ) // TestServiceAccountWithNilRepo 测试依赖检查 func TestServiceAccountWithNilRepo(t *testing.T) { svc := &Service{repo: nil} ctx := context.Background() _, err := svc.Account(ctx, 1) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Account() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceLedgerWithNilRepo(t *testing.T) { svc := &Service{repo: nil} ctx := context.Background() _, err := svc.Ledger(ctx, 1, 1, 10) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("Ledger() error = %v, want ErrDependencyUnavailable", err) } } func TestServiceWithdrawIsPending(t *testing.T) { svc := &Service{repo: &Repository{}} ctx := context.Background() _, err := svc.Withdraw(ctx, 1, WithdrawRequest{AmountCent: 100}) if !errors.Is(err, ErrFeaturePending) { t.Fatalf("Withdraw() error = %v, want ErrFeaturePending", err) } } func TestServiceAdminLedgerWithNilRepo(t *testing.T) { svc := &Service{repo: nil} ctx := context.Background() _, err := svc.AdminLedger(ctx, AdminLedgerQuery{Page: 1, PageSize: 10}) if !errors.Is(err, ErrDependencyUnavailable) { t.Fatalf("AdminLedger() error = %v, want ErrDependencyUnavailable", err) } }