25 lines
780 B
Go
25 lines
780 B
Go
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)
|
|
}
|
|
}
|