36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package gameplatform
|
|
|
|
import (
|
|
"context"
|
|
"kra/internal/biz/integration"
|
|
"testing"
|
|
)
|
|
|
|
type resetSMSSender struct{ message *integration.SMSMessage }
|
|
|
|
func (s *resetSMSSender) Send(_ context.Context, m *integration.SMSMessage) (*integration.SMSResult, error) {
|
|
s.message = m
|
|
return &integration.SMSResult{}, nil
|
|
}
|
|
func TestPasswordSMSUsesConfiguredProviderAndTemplateShape(t *testing.T) {
|
|
for _, provider := range []string{"tencent", "aliyun"} {
|
|
t.Run(provider, func(t *testing.T) {
|
|
t.Setenv("SW_PASSWORD_RESET_SMS_PROVIDER", provider)
|
|
sender := &resetSMSSender{}
|
|
if err := NewPasswordSMS(sender).SendCode(context.Background(), "13800138000", "123456"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
m := sender.message
|
|
if m.Phone != "+8613800138000" || m.Provider != provider {
|
|
t.Fatalf("手机号或提供商不正确: %+v", m)
|
|
}
|
|
if provider == "tencent" && (len(m.Params) != 1 || m.Params[0] != "123456") {
|
|
t.Fatal("腾讯云参数未按模板顺序传递")
|
|
}
|
|
if provider == "aliyun" && m.NamedParams["code"] != "123456" {
|
|
t.Fatal("阿里云参数未使用 code 键")
|
|
}
|
|
})
|
|
}
|
|
}
|