Files
platforms/backend/api/internal/logic/common/verification_availability_test.go

35 lines
1.4 KiB
Go
Raw Normal View History

// 功能描述未配置短信及缓存不可用时不能返回虚假验证码成功版本1.0.0。
package common
import (
"net/http/httptest"
"strings"
"testing"
"git.apinb.com/heqiapp/platforms/backend/api/internal/config"
"git.apinb.com/heqiapp/platforms/backend/api/internal/impl"
"github.com/gin-gonic/gin"
)
// TestVerificationUnavailable 覆盖关闭Mock及缺少缓存的拒绝路径不连接外部服务。
func TestVerificationUnavailable(t *testing.T) {
oldEnabled, oldCache := config.Spec.Global.MockVerificationEnabled, impl.RedisService
defer func() { config.Spec.Global.MockVerificationEnabled, impl.RedisService = oldEnabled, oldCache }()
impl.RedisService = nil
for _, enabled := range []bool{false, true} {
config.Spec.Global.MockVerificationEnabled = enabled
response := httptest.NewRecorder()
ctx, _ := gin.CreateTestContext(response)
ctx.Request = httptest.NewRequest("POST", "/auth/verification-code", strings.NewReader(`{"phone":"13800000001","purpose":"set_payment_password"}`))
ctx.Request.Header.Set("Content-Type", "application/json")
SendVerificationCode("user_app")(ctx)
body := response.Body.String()
if strings.Contains(body, "request_identity") || strings.Contains(body, `"code":0`) {
t.Fatalf("不可用服务不应创建成功请求:%s", body)
}
if !enabled && !strings.Contains(body, "2410") {
t.Fatalf("关闭Mock必须说明短信尚未配置%s", body)
}
}
}