email-compliance-supplement.test.js
1 /** 2 * Email Compliance Supplement - Covers uncovered paths 3 * Lines 58-59: requiresCanSpamCompliance with valid country code 4 * Lines 77-80: requiresUnsubscribeLink function 5 */ 6 7 import { test, describe } from 'node:test'; 8 import assert from 'node:assert/strict'; 9 import { 10 requiresCanSpamCompliance, 11 requiresPhysicalAddress, 12 requiresUnsubscribeLink, 13 } from '../../src/utils/email-compliance.js'; 14 15 process.env.NODE_ENV = 'test'; 16 process.env.LOGS_DIR = '/tmp/test-logs'; 17 18 describe('email-compliance', () => { 19 describe('requiresCanSpamCompliance', () => { 20 test('returns true for null countryCode', () => { 21 assert.equal(requiresCanSpamCompliance(null), true); 22 }); 23 24 test('returns true for undefined countryCode', () => { 25 assert.equal(requiresCanSpamCompliance(undefined), true); 26 }); 27 28 test('returns true for US (CAN-SPAM country)', () => { 29 assert.equal(requiresCanSpamCompliance('US'), true); 30 }); 31 32 test('returns true for AU (Spam Act country)', () => { 33 assert.equal(requiresCanSpamCompliance('AU'), true); 34 }); 35 36 test('returns true for GB (GDPR country)', () => { 37 assert.equal(requiresCanSpamCompliance('GB'), true); 38 }); 39 40 test('returns false for IN (not in CAN_SPAM_COUNTRIES)', () => { 41 assert.equal(requiresCanSpamCompliance('IN'), false); 42 }); 43 44 test('returns false for ZA (not in CAN_SPAM_COUNTRIES)', () => { 45 assert.equal(requiresCanSpamCompliance('ZA'), false); 46 }); 47 48 test('handles lowercase country codes by converting to uppercase', () => { 49 assert.equal(requiresCanSpamCompliance('us'), true); 50 assert.equal(requiresCanSpamCompliance('au'), true); 51 assert.equal(requiresCanSpamCompliance('in'), false); 52 }); 53 }); 54 55 describe('requiresPhysicalAddress', () => { 56 test('delegates to requiresCanSpamCompliance for US', () => { 57 assert.equal(requiresPhysicalAddress('US'), true); 58 }); 59 60 test('delegates to requiresCanSpamCompliance for non-compliant country', () => { 61 assert.equal(requiresPhysicalAddress('IN'), false); 62 }); 63 }); 64 65 describe('requiresUnsubscribeLink', () => { 66 test('always returns true regardless of country', () => { 67 assert.equal(requiresUnsubscribeLink('US'), true); 68 assert.equal(requiresUnsubscribeLink('IN'), true); 69 assert.equal(requiresUnsubscribeLink(null), true); 70 assert.equal(requiresUnsubscribeLink(undefined), true); 71 }); 72 }); 73 });