Files

107 lines
3.5 KiB
JavaScript

const test = require('node:test');
const assert = require('node:assert/strict');
const {
DEFAULT_CLOUDFLARE_TEMP_EMAIL_ADMIN_URL,
EMAIL_PROVIDER_DUCK,
EMAIL_PROVIDER_CLOUDFLARE_TEMP_EMAIL,
EMAIL_PROVIDER_RELAY_FIREFOX,
getEmailProviderDisplayName,
getNextRelayMaskLabel,
isCloudflareTempEmailProvider,
normalizeCloudflareTempEmailAdminUrl,
normalizeEmailProvider,
shouldUseEmailSourceForVerification,
shouldSkipStep9Cleanup,
} = require('../shared/email-provider.js');
test('normalizeEmailProvider keeps relay_firefox as-is', () => {
assert.equal(normalizeEmailProvider('relay_firefox'), EMAIL_PROVIDER_RELAY_FIREFOX);
});
test('normalizeEmailProvider keeps cloudflare_temp_email as-is', () => {
assert.equal(
normalizeEmailProvider('cloudflare_temp_email'),
EMAIL_PROVIDER_CLOUDFLARE_TEMP_EMAIL
);
});
test('normalizeEmailProvider falls back to duckduckgo for unknown values', () => {
assert.equal(normalizeEmailProvider('something-else'), EMAIL_PROVIDER_DUCK);
});
test('isCloudflareTempEmailProvider identifies cloudflare_temp_email', () => {
assert.equal(isCloudflareTempEmailProvider('cloudflare_temp_email'), true);
});
test('isCloudflareTempEmailProvider rejects relay_firefox', () => {
assert.equal(isCloudflareTempEmailProvider('relay_firefox'), false);
});
test('getEmailProviderDisplayName returns Cloudflare Temp Email label', () => {
assert.equal(
getEmailProviderDisplayName('cloudflare_temp_email'),
'Cloudflare Temp Email'
);
});
test('DEFAULT_CLOUDFLARE_TEMP_EMAIL_ADMIN_URL uses the public open-source-safe admin URL', () => {
assert.equal(
DEFAULT_CLOUDFLARE_TEMP_EMAIL_ADMIN_URL,
'https://mail.cloudflare.com/admin'
);
});
test('normalizeCloudflareTempEmailAdminUrl falls back to the default URL for empty values', () => {
assert.equal(
normalizeCloudflareTempEmailAdminUrl(''),
DEFAULT_CLOUDFLARE_TEMP_EMAIL_ADMIN_URL
);
});
test('normalizeCloudflareTempEmailAdminUrl trims whitespace and prepends https when protocol is missing', () => {
assert.equal(
normalizeCloudflareTempEmailAdminUrl(' custom.example.com/admin '),
'https://custom.example.com/admin'
);
});
test('normalizeCloudflareTempEmailAdminUrl normalizes the default admin URL path', () => {
assert.equal(
normalizeCloudflareTempEmailAdminUrl('https://mail.cloudflare.com/admin/'),
DEFAULT_CLOUDFLARE_TEMP_EMAIL_ADMIN_URL
);
});
test('getNextRelayMaskLabel returns t1 when there are no existing labels', () => {
assert.equal(getNextRelayMaskLabel([]), 't1');
});
test('getNextRelayMaskLabel fills the first numeric gap', () => {
assert.equal(getNextRelayMaskLabel(['t1', 'hello', 't3']), 't2');
});
test('shouldSkipStep9Cleanup returns false for relay_firefox', () => {
assert.equal(shouldSkipStep9Cleanup('relay_firefox'), false);
});
test('shouldUseEmailSourceForVerification returns true for cloudflare_temp_email', () => {
assert.equal(shouldUseEmailSourceForVerification('cloudflare_temp_email'), true);
});
test('shouldUseEmailSourceForVerification returns false for relay_firefox', () => {
assert.equal(shouldUseEmailSourceForVerification('relay_firefox'), false);
});
test('shouldUseEmailSourceForVerification returns false for duckduckgo', () => {
assert.equal(shouldUseEmailSourceForVerification('duckduckgo'), false);
});
test('shouldSkipStep9Cleanup returns true for duckduckgo', () => {
assert.equal(shouldSkipStep9Cleanup('duckduckgo'), true);
});
test('shouldSkipStep9Cleanup returns true for cloudflare_temp_email', () => {
assert.equal(shouldSkipStep9Cleanup('cloudflare_temp_email'), true);
});