UNPKG

@letanure/resend-cli

Version:

A command-line interface for Resend email API

64 lines 2.38 kB
import { describe, expect, it } from 'vitest'; import { sendEmail } from '../action.js'; describe('sendEmail', () => { const testEmailData = { to: 'test@example.com', from: 'sender@example.com', subject: 'Test Subject', text: 'Test message', }; it('returns success result structure', async () => { const result = await sendEmail(testEmailData, 'test-api-key'); expect(result).toHaveProperty('success'); expect(result.success).toBe(true); expect(result.data).toBeDefined(); expect(result.data?.id).toBe('test-email-id'); }); it('accepts CreateEmailOptions interface', async () => { const emailData = { to: ['user1@example.com', 'user2@example.com'], from: 'sender@example.com', subject: 'Test', html: '<p>Hello</p>', text: 'Hello', }; const result = await sendEmail(emailData, 'test-api-key'); expect(result.success).toBe(true); }); it('requires api key parameter', async () => { // Function should accept any string as API key const result = await sendEmail(testEmailData, 'any-key'); expect(result).toBeDefined(); }); it('handles complex email data', async () => { const complexEmailData = { to: 'test@example.com', from: 'sender@example.com', subject: 'Test', html: '<h1>Hello</h1>', headers: { 'X-Test': 'value' }, attachments: [ { content: 'base64content', filename: 'test.txt', }, ], }; const result = await sendEmail(complexEmailData, 'test-api-key'); expect(result.success).toBe(true); }); it('returns correct ApiResult type', async () => { const result = await sendEmail(testEmailData, 'test-api-key'); // Test ApiResult structure if (result.success && result.data) { expect(result).toHaveProperty('data'); expect(result.data).toHaveProperty('id'); expect(typeof result.data.id).toBe('string'); } else { expect(result).toHaveProperty('error'); expect(typeof result.error).toBe('string'); } }); }); //# sourceMappingURL=action.test.js.map