@memberjunction/communication-sendgrid 5.47.0 → 5.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"SendGridProvider.d.ts","sourceRoot":"","sources":["../src/SendGridProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EAGpB,iBAAiB,EACpB,MAAM,qCAAqC,CAAC;AAM7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAChE;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBACa,gBAAiB,SAAQ,yBAAyB;IAC3D;;;;OAIG;IACa,sBAAsB,IAAI,iBAAiB,EAAE;IAS7D;;;;OAIG;IACU,iBAAiB,CAC1B,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,aAAa,CAAC;IAgGzB;;;OAGG;IACU,WAAW,CACpB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;OAGG;IACI,cAAc,CACjB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAIhC;;;OAGG;IACI,cAAc,CACjB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAIhC;;;OAGG;IACU,WAAW,CACpB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iBAAiB,CAAC;CAMhC"}
1
+ {"version":3,"file":"SendGridProvider.d.ts","sourceRoot":"","sources":["../src/SendGridProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EAGpB,iBAAiB,EACpB,MAAM,qCAAqC,CAAC;AAM7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAChE;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBACa,gBAAiB,SAAQ,yBAAyB;IAC3D;;;;OAIG;IACa,sBAAsB,IAAI,iBAAiB,EAAE;IAS7D;;;;OAIG;IACU,iBAAiB,CAC1B,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,aAAa,CAAC;IA4GzB;;;OAGG;IACU,WAAW,CACpB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;OAGG;IACI,cAAc,CACjB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAIhC;;;OAGG;IACI,cAAc,CACjB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAIhC;;;OAGG;IACU,WAAW,CACpB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iBAAiB,CAAC;CAMhC"}
@@ -90,6 +90,17 @@ let SendGridProvider = class SendGridProvider extends BaseCommunicationProvider
90
90
  const unitTime = Math.floor(time / 1000);
91
91
  msg.sendAt = unitTime;
92
92
  }
93
+ // DRY RUN: full pipeline ran (credential resolution/validation + complete SendGrid
94
+ // payload construction above) — stop at the transport boundary, never calling SendGrid.
95
+ if (message.DryRun) {
96
+ LogStatus(`[DryRun] SendGrid: payload constructed for ${msg.to} — external send skipped`);
97
+ return {
98
+ Message: message,
99
+ Success: true,
100
+ Error: '',
101
+ DryRun: true
102
+ };
103
+ }
93
104
  try {
94
105
  const result = await sgMail.send(msg);
95
106
  if (result && result.length > 0 && result[0].statusCode >= 200 && result[0].statusCode < 300) {
@@ -1 +1 @@
1
- {"version":3,"file":"SendGridProvider.js","sourceRoot":"","sources":["../src/SendGridProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SendGridProvider.js","sourceRoot":"","sources":["../src/SendGridProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DryRun.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DryRun.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/DryRun.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Unit tests for the SendGrid provider's DryRun path: the full pipeline runs
3
+ * (credential resolution/validation, payload construction) but the SendGrid
4
+ * transport client is NEVER invoked, and the result is marked DryRun.
5
+ */
6
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
7
+ // ---------------------------------------------------------------------------
8
+ // Mocks (mirror SendGridProvider.test.ts)
9
+ // ---------------------------------------------------------------------------
10
+ const { mockSgSend, mockSetApiKey } = vi.hoisted(() => ({
11
+ mockSgSend: vi.fn(),
12
+ mockSetApiKey: vi.fn(),
13
+ }));
14
+ vi.mock('@sendgrid/mail', () => ({
15
+ default: {
16
+ setApiKey: mockSetApiKey,
17
+ send: mockSgSend,
18
+ },
19
+ }));
20
+ vi.mock('@memberjunction/communication-types', () => ({
21
+ BaseCommunicationProvider: class {
22
+ getSupportedOperations() { return []; }
23
+ },
24
+ resolveCredentialValue: (requestVal, envVal, disableFallback) => {
25
+ if (requestVal)
26
+ return requestVal;
27
+ if (!disableFallback && envVal)
28
+ return envVal;
29
+ return undefined;
30
+ },
31
+ validateRequiredCredentials: (creds, required, provider) => {
32
+ for (const key of required) {
33
+ if (!creds[key])
34
+ throw new Error(`${provider}: Missing required credential: ${key}`);
35
+ }
36
+ },
37
+ }));
38
+ vi.mock('@memberjunction/global', () => ({
39
+ RegisterClass: () => (target) => target,
40
+ }));
41
+ vi.mock('@memberjunction/core', () => ({
42
+ LogError: vi.fn(),
43
+ LogStatus: vi.fn(),
44
+ }));
45
+ vi.mock('dotenv', () => ({
46
+ default: { config: vi.fn() },
47
+ }));
48
+ vi.mock('../config', () => ({
49
+ __API_KEY: 'env-sendgrid-key',
50
+ }));
51
+ // ---------------------------------------------------------------------------
52
+ // Import after mocks
53
+ // ---------------------------------------------------------------------------
54
+ import { SendGridProvider } from '../SendGridProvider.js';
55
+ const createMessage = (overrides = {}) => ({
56
+ From: 'sender@example.com',
57
+ FromName: 'Test Sender',
58
+ To: 'recipient@example.com',
59
+ ProcessedSubject: 'Dry Run Email',
60
+ ProcessedBody: 'Plain text body',
61
+ ProcessedHTMLBody: '<p>HTML body</p>',
62
+ ...overrides,
63
+ });
64
+ describe('SendGridProvider DryRun', () => {
65
+ let provider;
66
+ beforeEach(() => {
67
+ vi.clearAllMocks();
68
+ provider = new SendGridProvider();
69
+ });
70
+ it('should NOT invoke the SendGrid transport when DryRun is true', async () => {
71
+ const result = await provider.SendSingleMessage(createMessage({ DryRun: true }));
72
+ expect(mockSgSend).not.toHaveBeenCalled();
73
+ expect(result.Success).toBe(true);
74
+ expect(result.DryRun).toBe(true);
75
+ expect(result.Error).toBe('');
76
+ });
77
+ it('should still run the credential preflight on a dry run (payload construction is reached only after validation)', async () => {
78
+ // No request apiKey + env fallback disabled → validation must throw BEFORE the dry-run return
79
+ await expect(provider.SendSingleMessage(createMessage({ DryRun: true }), { disableEnvironmentFallback: true })).rejects.toThrow(/Missing required credential/);
80
+ expect(mockSgSend).not.toHaveBeenCalled();
81
+ });
82
+ it('should still configure the client (payload pipeline ran) without sending', async () => {
83
+ await provider.SendSingleMessage(createMessage({ DryRun: true }));
84
+ // setApiKey is part of local payload/pipeline setup — proves the pipeline ran up to the boundary
85
+ expect(mockSetApiKey).toHaveBeenCalledWith('env-sendgrid-key');
86
+ expect(mockSgSend).not.toHaveBeenCalled();
87
+ });
88
+ it('control: a real send (no DryRun) DOES invoke the transport and is not DryRun-marked', async () => {
89
+ mockSgSend.mockResolvedValue([{ statusCode: 202, body: 'Accepted' }]);
90
+ const result = await provider.SendSingleMessage(createMessage());
91
+ expect(mockSgSend).toHaveBeenCalledTimes(1);
92
+ expect(result.Success).toBe(true);
93
+ expect(result.DryRun).toBeUndefined();
94
+ });
95
+ });
96
+ //# sourceMappingURL=DryRun.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DryRun.test.js","sourceRoot":"","sources":["../../src/__tests__/DryRun.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/communication-sendgrid",
3
3
  "type": "module",
4
- "version": "5.47.0",
4
+ "version": "5.49.0",
5
5
  "description": "MemberJunction: SendGrid Provider for the MJ Communication Framework",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -20,10 +20,10 @@
20
20
  "typescript": "^5.9.3"
21
21
  },
22
22
  "dependencies": {
23
- "@memberjunction/communication-types": "5.47.0",
24
- "@memberjunction/core": "5.47.0",
25
- "@memberjunction/core-entities": "5.47.0",
26
- "@memberjunction/global": "5.47.0",
23
+ "@memberjunction/communication-types": "5.49.0",
24
+ "@memberjunction/core": "5.49.0",
25
+ "@memberjunction/core-entities": "5.49.0",
26
+ "@memberjunction/global": "5.49.0",
27
27
  "@sendgrid/mail": "^8.1.6",
28
28
  "dotenv": "^17.2.4"
29
29
  },