完成80%
This commit is contained in:
@@ -13,7 +13,7 @@ const run = async () => {
|
||||
"utf8",
|
||||
);
|
||||
const {
|
||||
AUTH_TAC_SCENE,
|
||||
AUTH_VERIFICATION_OPERATION,
|
||||
isAuthPhone,
|
||||
assertSmsCode,
|
||||
normalizeCaptchaRequirement,
|
||||
@@ -23,13 +23,14 @@ const run = async () => {
|
||||
} = await import(toDataModuleUrl(source));
|
||||
|
||||
assert.deepStrictEqual(
|
||||
{ ...AUTH_TAC_SCENE },
|
||||
{ ...AUTH_VERIFICATION_OPERATION },
|
||||
{
|
||||
SMS_LOGIN: "APP_SMS_LOGIN",
|
||||
REGISTER: "APP_REGISTER",
|
||||
FORGOT_PASSWORD: "APP_FORGOT_PASSWORD",
|
||||
PASSWORD_LOGIN: "password-login",
|
||||
SMS_LOGIN: "sms-login",
|
||||
REGISTER: "register",
|
||||
FORGOT_PASSWORD: "forgot-password",
|
||||
},
|
||||
"认证 TAC 场景必须由受保护 OpenAPI 的唯一枚举拥有",
|
||||
"认证动作必须由受保护 OpenAPI 的唯一枚举拥有",
|
||||
);
|
||||
|
||||
assert.strictEqual(isAuthPhone("13800138000"), true);
|
||||
@@ -47,32 +48,28 @@ const run = async () => {
|
||||
required: true,
|
||||
providerCode: "TIANAI",
|
||||
captchaType: "SLIDER",
|
||||
sceneCode: AUTH_TAC_SCENE.REGISTER,
|
||||
sceneCode: "APP_REGISTER",
|
||||
ttlSeconds: 300,
|
||||
},
|
||||
AUTH_TAC_SCENE.REGISTER,
|
||||
);
|
||||
assert.deepStrictEqual(requirement, {
|
||||
required: true,
|
||||
providerCode: "TIANAI",
|
||||
captchaType: "SLIDER",
|
||||
sceneCode: AUTH_TAC_SCENE.REGISTER,
|
||||
sceneCode: "APP_REGISTER",
|
||||
ttlSeconds: 300,
|
||||
});
|
||||
assert.throws(
|
||||
() => normalizeCaptchaRequirement({ ...requirement, required: false }, AUTH_TAC_SCENE.REGISTER),
|
||||
/未要求行为验证|票据/,
|
||||
assert.deepStrictEqual(
|
||||
normalizeCaptchaRequirement({ ...requirement, required: false }),
|
||||
{ required: false, sceneCode: "APP_REGISTER" },
|
||||
"策略关闭时必须保留服务端绑定场景并跳过 TAC 渲染",
|
||||
);
|
||||
assert.throws(
|
||||
() => normalizeCaptchaRequirement({ ...requirement, sceneCode: AUTH_TAC_SCENE.SMS_LOGIN }, AUTH_TAC_SCENE.REGISTER),
|
||||
/场景/,
|
||||
);
|
||||
assert.throws(
|
||||
() => normalizeCaptchaRequirement({ ...requirement, providerCode: "OTHER" }, AUTH_TAC_SCENE.REGISTER),
|
||||
() => normalizeCaptchaRequirement({ ...requirement, providerCode: "OTHER" }),
|
||||
/TIANAI/,
|
||||
);
|
||||
assert.throws(
|
||||
() => normalizeCaptchaRequirement({ ...requirement, captchaType: "math" }, AUTH_TAC_SCENE.REGISTER),
|
||||
() => normalizeCaptchaRequirement({ ...requirement, captchaType: "math" }),
|
||||
/验证码类型/,
|
||||
);
|
||||
|
||||
@@ -81,18 +78,18 @@ const run = async () => {
|
||||
baseUrl: "https://backend-api.ddxcjp.cn/",
|
||||
clientId: "client-1",
|
||||
tenantId: "000000",
|
||||
sceneCode: AUTH_TAC_SCENE.REGISTER,
|
||||
operationCode: AUTH_VERIFICATION_OPERATION.REGISTER,
|
||||
subject: "13800138000",
|
||||
requirement,
|
||||
});
|
||||
assert.deepStrictEqual(context, {
|
||||
requestId: "register-1",
|
||||
baseUrl: "https://backend-api.ddxcjp.cn",
|
||||
challengeUrl: "https://backend-api.ddxcjp.cn/captcha/challenge",
|
||||
verifyUrl: "https://backend-api.ddxcjp.cn/captcha/verify",
|
||||
challengeUrl: "https://backend-api.ddxcjp.cn/genealogy/app/auth/verification/register/challenge",
|
||||
verifyUrl: "https://backend-api.ddxcjp.cn/genealogy/app/auth/verification/register/verify",
|
||||
clientId: "client-1",
|
||||
tenantId: "000000",
|
||||
sceneCode: AUTH_TAC_SCENE.REGISTER,
|
||||
operationCode: AUTH_VERIFICATION_OPERATION.REGISTER,
|
||||
subject: "13800138000",
|
||||
providerCode: "TIANAI",
|
||||
captchaType: "SLIDER",
|
||||
@@ -105,6 +102,14 @@ const run = async () => {
|
||||
() => createTacRenderContext({ ...context, subject: "1380013800", requirement }),
|
||||
/手机号/,
|
||||
);
|
||||
assert.throws(
|
||||
() => createTacRenderContext({ ...context, operationCode: "APP_REGISTER", requirement }),
|
||||
/认证动作/,
|
||||
);
|
||||
assert.throws(
|
||||
() => createTacRenderContext({ ...context, requirement: { ...requirement, required: false } }),
|
||||
/无需行为验证/,
|
||||
);
|
||||
|
||||
assert.deepStrictEqual(
|
||||
normalizeTacSuccess(
|
||||
|
||||
Reference in New Issue
Block a user