78 lines
2.7 KiB
JavaScript
78 lines
2.7 KiB
JavaScript
const test = require('node:test');
|
||
const assert = require('node:assert/strict');
|
||
|
||
const {
|
||
HOTMAIL_PROVIDER,
|
||
YYDS_MAIL_PROVIDER,
|
||
getIcloudForwardMailConfig,
|
||
getIcloudForwardMailProviderOptions,
|
||
getMailProviderConfig,
|
||
normalizeIcloudForwardMailProvider,
|
||
normalizeIcloudTargetMailboxType,
|
||
normalizeMailProvider,
|
||
} = require('../mail-provider-utils.js');
|
||
|
||
test('normalizeMailProvider accepts 126 and falls back to 163', () => {
|
||
assert.equal(normalizeMailProvider('126'), '126');
|
||
assert.equal(normalizeMailProvider('163-vip'), '163-vip');
|
||
assert.equal(normalizeMailProvider(YYDS_MAIL_PROVIDER), YYDS_MAIL_PROVIDER);
|
||
assert.equal(normalizeMailProvider('unknown-provider'), '163');
|
||
});
|
||
|
||
test('getMailProviderConfig returns the shared NetEase source for 126 mail', () => {
|
||
assert.deepEqual(
|
||
getMailProviderConfig({ mailProvider: '126' }),
|
||
{
|
||
source: 'mail-163',
|
||
url: 'https://mail.126.com/js6/main.jsp?df=mail163_letter#module=mbox.ListModule%7C%7B%22fid%22%3A1%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%7D',
|
||
label: '126 邮箱',
|
||
}
|
||
);
|
||
});
|
||
|
||
test('getMailProviderConfig preserves the hotmail provider sentinel', () => {
|
||
assert.deepEqual(
|
||
getMailProviderConfig({ mailProvider: HOTMAIL_PROVIDER }),
|
||
{
|
||
provider: HOTMAIL_PROVIDER,
|
||
label: 'Hotmail(微软 Graph)',
|
||
}
|
||
);
|
||
});
|
||
|
||
test('getMailProviderConfig preserves the YYDS Mail provider sentinel', () => {
|
||
assert.deepEqual(
|
||
getMailProviderConfig({ mailProvider: YYDS_MAIL_PROVIDER }),
|
||
{
|
||
provider: YYDS_MAIL_PROVIDER,
|
||
label: 'YYDS Mail',
|
||
}
|
||
);
|
||
});
|
||
|
||
test('iCloud forward mailbox helpers normalize and expose supported providers', () => {
|
||
assert.equal(normalizeIcloudTargetMailboxType('forward-mailbox'), 'forward-mailbox');
|
||
assert.equal(normalizeIcloudTargetMailboxType('unknown'), 'icloud-inbox');
|
||
assert.equal(normalizeIcloudForwardMailProvider('GMAIL'), 'gmail');
|
||
assert.equal(normalizeIcloudForwardMailProvider('unknown'), 'qq');
|
||
assert.deepEqual(
|
||
getIcloudForwardMailProviderOptions().map((option) => option.value),
|
||
['qq', '163', '163-vip', '126', 'gmail']
|
||
);
|
||
});
|
||
|
||
test('getIcloudForwardMailConfig reuses shared mailbox provider configs', () => {
|
||
assert.deepEqual(getIcloudForwardMailConfig('126'), {
|
||
source: 'mail-163',
|
||
url: 'https://mail.126.com/js6/main.jsp?df=mail163_letter#module=mbox.ListModule%7C%7B%22fid%22%3A1%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%7D',
|
||
label: '126 邮箱',
|
||
});
|
||
assert.deepEqual(getIcloudForwardMailConfig('gmail'), {
|
||
source: 'gmail-mail',
|
||
url: 'https://mail.google.com/mail/u/0/#inbox',
|
||
label: 'Gmail 邮箱',
|
||
inject: ['content/activation-utils.js', 'content/utils.js', 'content/gmail-mail.js'],
|
||
injectSource: 'gmail-mail',
|
||
});
|
||
});
|