46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('assert');
|
|
const { _private } = require('../src/services/change_2fa_service');
|
|
|
|
function locator(page, selector) {
|
|
return {
|
|
or() { return this; },
|
|
first() { return this; },
|
|
nth() { return this; },
|
|
async count() {
|
|
return selector.includes('div[jsname="c6xFrd"]') ? 1 : 0;
|
|
},
|
|
async isVisible() {
|
|
if (selector.includes('div[jsname="c6xFrd"]')) return true;
|
|
if (selector.includes('input[jsname="YPqjbf"]')) return !page.submitted;
|
|
return false;
|
|
},
|
|
async evaluate() {
|
|
page.submitted = true;
|
|
},
|
|
};
|
|
}
|
|
|
|
(async () => {
|
|
const logs = [];
|
|
const page = {
|
|
submitted: false,
|
|
locator(selector) { return locator(this, selector); },
|
|
url() {
|
|
return 'https://myaccount.google.com/two-step-verification/authenticator?rapt=LOCAL';
|
|
},
|
|
async waitForTimeout() {},
|
|
};
|
|
|
|
const result = await _private.clickVerifyButton(page, message => logs.push(message));
|
|
|
|
assert.deepStrictEqual(result, [true, false]);
|
|
assert.strictEqual(page.submitted, true);
|
|
assert.ok(logs.some(message => message.includes('验证弹窗已关闭')));
|
|
console.log('change_2fa_submit_result.test.js passed');
|
|
})().catch(error => {
|
|
console.error(error);
|
|
process.exitCode = 1;
|
|
});
|