2925邮箱增加账号池功能
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const utils = require('../mail2925-utils.js');
|
||||
|
||||
test('normalizeMail2925Account normalizes key fields', () => {
|
||||
const account = utils.normalizeMail2925Account({
|
||||
id: 'a-1',
|
||||
email: ' Demo@2925.com ',
|
||||
password: 'secret',
|
||||
enabled: 0,
|
||||
lastUsedAt: '123',
|
||||
disabledUntil: '456',
|
||||
});
|
||||
|
||||
assert.deepStrictEqual(account, {
|
||||
id: 'a-1',
|
||||
email: 'demo@2925.com',
|
||||
password: 'secret',
|
||||
enabled: false,
|
||||
lastUsedAt: 123,
|
||||
lastLoginAt: 0,
|
||||
lastLimitAt: 0,
|
||||
disabledUntil: 456,
|
||||
lastError: '',
|
||||
});
|
||||
});
|
||||
|
||||
test('pickMail2925AccountForRun skips cooldown and picks the least recently used account', () => {
|
||||
const now = 1000;
|
||||
const picked = utils.pickMail2925AccountForRun([
|
||||
{ id: 'cooldown', email: 'cool@2925.com', password: 'x', disabledUntil: now + 10, lastUsedAt: 1 },
|
||||
{ id: 'b', email: 'b@2925.com', password: 'x', lastUsedAt: 50 },
|
||||
{ id: 'a', email: 'a@2925.com', password: 'x', lastUsedAt: 10 },
|
||||
], { now });
|
||||
|
||||
assert.equal(picked.id, 'a');
|
||||
});
|
||||
|
||||
test('getMail2925AccountStatus reports cooldown before error', () => {
|
||||
const status = utils.getMail2925AccountStatus({
|
||||
email: 'demo@2925.com',
|
||||
password: 'secret',
|
||||
enabled: true,
|
||||
disabledUntil: Date.now() + 60_000,
|
||||
lastError: '子邮箱已达上限邮箱',
|
||||
});
|
||||
|
||||
assert.equal(status, 'cooldown');
|
||||
});
|
||||
|
||||
test('parseMail2925ImportText parses 邮箱----密码 rows', () => {
|
||||
const parsed = utils.parseMail2925ImportText(`
|
||||
邮箱----密码
|
||||
demo1@2925.com----pass1
|
||||
demo2@2925.com----pass2
|
||||
`);
|
||||
|
||||
assert.deepStrictEqual(parsed, [
|
||||
{ email: 'demo1@2925.com', password: 'pass1' },
|
||||
{ email: 'demo2@2925.com', password: 'pass2' },
|
||||
]);
|
||||
});
|
||||
Reference in New Issue
Block a user