/ tests / compliance / email-compliance-supplement.test.js
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  });