53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
|
|
test('background imports verification flow module', () => {
|
|
const source = fs.readFileSync('background.js', 'utf8');
|
|
assert.match(source, /background\/verification-flow\.js/);
|
|
});
|
|
|
|
test('verification flow module exposes a factory', () => {
|
|
const source = fs.readFileSync('background/verification-flow.js', 'utf8');
|
|
const globalScope = {};
|
|
|
|
const api = new Function('self', `${source}; return self.MultiPageBackgroundVerificationFlow;`)(globalScope);
|
|
|
|
assert.equal(typeof api?.createVerificationFlowHelpers, 'function');
|
|
});
|
|
|
|
test('verification flow routes YYDS Mail provider to background poller', async () => {
|
|
const source = fs.readFileSync('background/verification-flow.js', 'utf8');
|
|
const globalScope = {};
|
|
const api = new Function('self', `${source}; return self.MultiPageBackgroundVerificationFlow;`)(globalScope);
|
|
const pollCalls = [];
|
|
const helpers = api.createVerificationFlowHelpers({
|
|
addLog: async () => {},
|
|
buildVerificationPollPayload: () => ({ maxAttempts: 1, intervalMs: 1 }),
|
|
getState: async () => ({}),
|
|
getTabId: async () => 1,
|
|
isStopError: () => false,
|
|
pollYydsMailVerificationCode: async (step, state, payload) => {
|
|
pollCalls.push({ step, state, payload });
|
|
return { ok: true, code: '123456', emailTimestamp: 1, mailId: 'msg-1' };
|
|
},
|
|
sendToContentScript: async () => ({}),
|
|
setState: async () => {},
|
|
sleepWithStop: async () => {},
|
|
throwIfStopped: () => {},
|
|
YYDS_MAIL_PROVIDER: 'yyds-mail',
|
|
});
|
|
|
|
const result = await helpers.pollFreshVerificationCode(
|
|
4,
|
|
{ mailProvider: 'yyds-mail' },
|
|
{ provider: 'yyds-mail', label: 'YYDS Mail' },
|
|
{ disableTimeBudgetCap: true }
|
|
);
|
|
|
|
assert.equal(result.code, '123456');
|
|
assert.equal(pollCalls.length, 1);
|
|
assert.equal(pollCalls[0].step, 4);
|
|
assert.equal(pollCalls[0].payload.maxAttempts, 1);
|
|
});
|