package logic import ( "errors" "testing" smsentity "spark-server/internal/module/sms/entity" smsmodel "spark-server/internal/module/sms/model" "spark-server/internal/pkg/errs" ) func TestSendCodeCooldown(t *testing.T) { store := smsmodel.NewMemoryStore() svc := NewService(store, nil, nil, nil) if _, err := svc.Send(t.Context(), SendCodeInput{Purpose: smsentity.PurposeLogin, Target: "test06@spark.com"}); err != nil { t.Fatal(err) } if _, err := svc.Send(t.Context(), SendCodeInput{Purpose: smsentity.PurposeLogin, Target: "ada@example.com"}); err != nil { t.Fatal(err) } if _, err := svc.Send(t.Context(), SendCodeInput{Purpose: smsentity.PurposeLogin, Target: "ada@example.com"}); !errors.Is(err, errs.ErrRateLimited) { t.Fatalf("cooldown %v", err) } }