家谱现有接口调试50%
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
const assert = require('assert');
|
||||
const CaptchaPages = require('../public/js/captcha-pages.js');
|
||||
|
||||
const fakeApi = {
|
||||
clientId: 'client-x',
|
||||
tenantId: 'tenant-x'
|
||||
};
|
||||
|
||||
function run() {
|
||||
assert.deepStrictEqual(CaptchaPages.buildChallengeBody({
|
||||
sceneCode: 'WEB_H5_LOGIN',
|
||||
subject: '13800000000'
|
||||
}, fakeApi), {
|
||||
tenantId: 'tenant-x',
|
||||
clientId: 'client-x',
|
||||
sceneCode: 'WEB_H5_LOGIN',
|
||||
subject: '13800000000'
|
||||
});
|
||||
|
||||
const challenge = CaptchaPages.adaptChallengeResponse({
|
||||
code: 200,
|
||||
data: {
|
||||
required: true,
|
||||
providerCode: 'tianai',
|
||||
captchaType: 'SLIDER',
|
||||
challengeId: 'challenge-1',
|
||||
payload: {
|
||||
id: 'tianai-1',
|
||||
backgroundImage: 'bg.png',
|
||||
templateImage: 'tpl.png',
|
||||
backgroundImageWidth: 340
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
assert.strictEqual(challenge.code, 200);
|
||||
assert.strictEqual(challenge.data.type, 'SLIDER');
|
||||
assert.strictEqual(challenge.data.id, 'tianai-1');
|
||||
assert.strictEqual(challenge.data.challengeId, 'challenge-1');
|
||||
assert.strictEqual(challenge.data.backgroundImage, 'bg.png');
|
||||
assert.strictEqual(challenge.data.templateImage, 'tpl.png');
|
||||
|
||||
assert.deepStrictEqual(CaptchaPages.buildVerifyBody({
|
||||
id: 'tianai-1',
|
||||
data: {
|
||||
trackList: [{ x: 10, y: 2 }]
|
||||
}
|
||||
}, {
|
||||
sceneCode: 'WEB_H5_LOGIN',
|
||||
subject: '13800000000',
|
||||
providerCode: 'tianai',
|
||||
captchaType: 'SLIDER',
|
||||
challengeId: 'challenge-1'
|
||||
}, fakeApi), {
|
||||
tenantId: 'tenant-x',
|
||||
clientId: 'client-x',
|
||||
sceneCode: 'WEB_H5_LOGIN',
|
||||
subject: '13800000000',
|
||||
challengeId: 'challenge-1',
|
||||
providerCode: 'tianai',
|
||||
captchaType: 'SLIDER',
|
||||
payload: {
|
||||
id: 'tianai-1',
|
||||
data: {
|
||||
trackList: [{ x: 10, y: 2 }]
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
assert.strictEqual(CaptchaPages.extractValidToken({
|
||||
code: 200,
|
||||
data: {
|
||||
passed: true,
|
||||
validToken: 'captcha-ticket'
|
||||
}
|
||||
}), 'captcha-ticket');
|
||||
assert.strictEqual(CaptchaPages.shouldRequireCaptcha({
|
||||
required: false
|
||||
}), false);
|
||||
assert.strictEqual(CaptchaPages.shouldRequireCaptcha({
|
||||
required: true
|
||||
}), true);
|
||||
|
||||
const modalBox = { nodeName: 'modal' };
|
||||
const formBox = { nodeName: 'form-box' };
|
||||
const originalDocument = global.document;
|
||||
|
||||
global.document = {
|
||||
querySelector(selector) {
|
||||
return selector === '.auth-captcha-modal[data-captcha-box]' ? modalBox : null;
|
||||
}
|
||||
};
|
||||
|
||||
assert.strictEqual(CaptchaPages.getCaptchaBox({
|
||||
querySelector(selector) {
|
||||
return selector === '[data-captcha-box]' ? formBox : null;
|
||||
}
|
||||
}), modalBox);
|
||||
|
||||
global.document = originalDocument;
|
||||
|
||||
console.log('captcha-pages tests passed');
|
||||
}
|
||||
|
||||
run();
|
||||
Reference in New Issue
Block a user