@studiosonrai/nestjs-email 1.0.0 → 1.1.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.
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const resend_provider_1 = require("./resend.provider");
4
+ describe('ResendEmailProvider Integration', () => {
5
+ let provider;
6
+ const config = {
7
+ apiKey: process.env.RESEND_API_KEY || '',
8
+ };
9
+ const defaultFrom = process.env.RESEND_FROM || 'testsender@resend.dev';
10
+ const testRecipient = process.env.TEST_EMAIL_TO || 'testreceiver@resend.dev';
11
+ const rateLimitDelay = () => new Promise((resolve) => setTimeout(resolve, 600));
12
+ beforeAll(async () => {
13
+ if (!config.apiKey) {
14
+ throw new Error('Resend API key is required (RESEND_API_KEY)');
15
+ }
16
+ if (!defaultFrom) {
17
+ throw new Error('Resend sender address is required (RESEND_FROM)');
18
+ }
19
+ provider = new resend_provider_1.ResendEmailProvider(config, {
20
+ defaultFrom,
21
+ verbose: true,
22
+ });
23
+ await new Promise((resolve) => setTimeout(resolve, 500));
24
+ });
25
+ afterEach(async () => {
26
+ await rateLimitDelay();
27
+ });
28
+ it('should initialize successfully', () => {
29
+ expect(provider.isReady()).toBe(true);
30
+ });
31
+ it('should send a simple email', async () => {
32
+ const result = await provider.sendEmail({
33
+ to: testRecipient,
34
+ subject: `[Resend Test] Simple Email - ${new Date().toISOString()}`,
35
+ html: '<h1>Test Email</h1><p>This is a test email sent via Resend.</p>',
36
+ text: 'Test Email\n\nThis is a test email sent via Resend.',
37
+ });
38
+ expect(result.success).toBe(true);
39
+ expect(result.messageId).toBeDefined();
40
+ console.log('Message ID:', result.messageId);
41
+ });
42
+ it('should send email with custom from address', async () => {
43
+ const result = await provider.sendEmail({
44
+ to: testRecipient,
45
+ from: defaultFrom,
46
+ subject: `[Resend Test] Custom From - ${new Date().toISOString()}`,
47
+ html: '<p>Email with custom from address.</p>',
48
+ });
49
+ expect(result.success).toBe(true);
50
+ expect(result.messageId).toBeDefined();
51
+ });
52
+ it('should send email with cc', async () => {
53
+ const result = await provider.sendEmail({
54
+ to: testRecipient,
55
+ cc: testRecipient,
56
+ subject: `[Resend Test] CC Test - ${new Date().toISOString()}`,
57
+ html: '<p>Email with CC recipient.</p>',
58
+ });
59
+ expect(result.success).toBe(true);
60
+ expect(result.messageId).toBeDefined();
61
+ });
62
+ it('should send email with bcc', async () => {
63
+ const result = await provider.sendEmail({
64
+ to: testRecipient,
65
+ bcc: testRecipient,
66
+ subject: `[Resend Test] BCC Test - ${new Date().toISOString()}`,
67
+ html: '<p>Email with BCC recipient.</p>',
68
+ });
69
+ expect(result.success).toBe(true);
70
+ expect(result.messageId).toBeDefined();
71
+ });
72
+ it('should send email with replyTo', async () => {
73
+ const result = await provider.sendEmail({
74
+ to: testRecipient,
75
+ replyTo: testRecipient,
76
+ subject: `[Resend Test] Reply-To Test - ${new Date().toISOString()}`,
77
+ html: '<p>Email with reply-to address.</p>',
78
+ });
79
+ expect(result.success).toBe(true);
80
+ expect(result.messageId).toBeDefined();
81
+ });
82
+ it('should send email with attachment', async () => {
83
+ const result = await provider.sendEmail({
84
+ to: testRecipient,
85
+ subject: `[Resend Test] Attachment Test - ${new Date().toISOString()}`,
86
+ html: '<p>Email with attachment.</p>',
87
+ attachments: [
88
+ {
89
+ filename: 'test.txt',
90
+ content: Buffer.from('This is a test attachment content.'),
91
+ contentType: 'text/plain',
92
+ },
93
+ ],
94
+ });
95
+ expect(result.success).toBe(true);
96
+ expect(result.messageId).toBeDefined();
97
+ });
98
+ it('should send email to multiple recipients', async () => {
99
+ const result = await provider.sendEmail({
100
+ to: [testRecipient],
101
+ subject: `[Resend Test] Multiple Recipients - ${new Date().toISOString()}`,
102
+ html: '<p>Email to multiple recipients.</p>',
103
+ });
104
+ expect(result.success).toBe(true);
105
+ expect(result.messageId).toBeDefined();
106
+ });
107
+ });
108
+ //# sourceMappingURL=resend.provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resend.provider.spec.js","sourceRoot":"","sources":["../../../src/providers/resend.provider.spec.ts"],"names":[],"mappings":"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"}
@@ -35,8 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SmtpEmailProvider = void 0;
37
37
  class SmtpEmailProvider {
38
+ transporter;
39
+ ready = false;
40
+ defaultFrom;
41
+ imageCompression;
42
+ verbose;
38
43
  constructor(config, options) {
39
- this.ready = false;
40
44
  this.defaultFrom = options?.defaultFrom;
41
45
  this.imageCompression = options?.imageCompression;
42
46
  this.verbose = options?.verbose ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"smtp.provider.js","sourceRoot":"","sources":["../../../src/providers/smtp.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smtp.provider.js","sourceRoot":"","sources":["../../../src/providers/smtp.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const smtp_provider_1 = require("./smtp.provider");
4
+ describe('SmtpEmailProvider Integration', () => {
5
+ let provider;
6
+ const config = {
7
+ host: process.env.SMTP_HOST || 'localhost',
8
+ port: parseInt(process.env.SMTP_PORT || '2525', 10),
9
+ secure: process.env.SMTP_SECURE === 'true',
10
+ auth: process.env.SMTP_USER
11
+ ? {
12
+ user: process.env.SMTP_USER,
13
+ pass: process.env.SMTP_PASS,
14
+ }
15
+ : undefined,
16
+ };
17
+ const defaultFrom = process.env.SMTP_FROM || 'noreply@dev.local';
18
+ const testRecipient = process.env.TEST_EMAIL_TO || 'test@example.com';
19
+ beforeAll(async () => {
20
+ if (!config.host) {
21
+ throw new Error('SMTP host is required');
22
+ }
23
+ provider = new smtp_provider_1.SmtpEmailProvider(config, {
24
+ defaultFrom,
25
+ verbose: true,
26
+ });
27
+ await new Promise((resolve) => setTimeout(resolve, 500));
28
+ });
29
+ it('should initialize successfully', () => {
30
+ expect(provider.isReady()).toBe(true);
31
+ });
32
+ it('should send a simple email', async () => {
33
+ const result = await provider.sendEmail({
34
+ to: testRecipient,
35
+ subject: `[SMTP Test] Simple Email - ${new Date().toISOString()}`,
36
+ html: '<h1>Test Email</h1><p>This is a test email sent via SMTP provider.</p>',
37
+ text: 'Test Email\n\nThis is a test email sent via SMTP provider.',
38
+ });
39
+ expect(result.success).toBe(true);
40
+ expect(result.messageId).toBeDefined();
41
+ console.log('Message ID:', result.messageId);
42
+ });
43
+ it('should send email with custom from address', async () => {
44
+ const result = await provider.sendEmail({
45
+ to: testRecipient,
46
+ from: defaultFrom,
47
+ subject: `[SMTP Test] Custom From - ${new Date().toISOString()}`,
48
+ html: '<p>Email with custom from address.</p>',
49
+ });
50
+ expect(result.success).toBe(true);
51
+ expect(result.messageId).toBeDefined();
52
+ });
53
+ it('should send email with cc and bcc', async () => {
54
+ const result = await provider.sendEmail({
55
+ to: testRecipient,
56
+ cc: testRecipient,
57
+ subject: `[SMTP Test] CC/BCC Test - ${new Date().toISOString()}`,
58
+ html: '<p>Email with CC recipient.</p>',
59
+ });
60
+ expect(result.success).toBe(true);
61
+ expect(result.messageId).toBeDefined();
62
+ });
63
+ it('should send email with replyTo', async () => {
64
+ const result = await provider.sendEmail({
65
+ to: testRecipient,
66
+ replyTo: testRecipient,
67
+ subject: `[SMTP Test] Reply-To Test - ${new Date().toISOString()}`,
68
+ html: '<p>Email with reply-to address.</p>',
69
+ });
70
+ expect(result.success).toBe(true);
71
+ expect(result.messageId).toBeDefined();
72
+ });
73
+ it('should send email with attachment', async () => {
74
+ const result = await provider.sendEmail({
75
+ to: testRecipient,
76
+ subject: `[SMTP Test] Attachment Test - ${new Date().toISOString()}`,
77
+ html: '<p>Email with attachment.</p>',
78
+ attachments: [
79
+ {
80
+ filename: 'test.txt',
81
+ content: Buffer.from('This is a test attachment content.'),
82
+ contentType: 'text/plain',
83
+ },
84
+ ],
85
+ });
86
+ expect(result.success).toBe(true);
87
+ expect(result.messageId).toBeDefined();
88
+ });
89
+ });
90
+ //# sourceMappingURL=smtp.provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp.provider.spec.js","sourceRoot":"","sources":["../../../src/providers/smtp.provider.spec.ts"],"names":[],"mappings":"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"}