@letanure/resend-cli
Version:
A command-line interface for Resend email API
55 lines • 2.29 kB
JavaScript
import { describe, expect, it } from 'vitest';
import { updateEmail } from '../action.js';
describe('updateEmail', () => {
const testUpdateData = {
id: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c',
scheduledAt: new Date(Date.now() + 60000).toISOString(), // 1 minute from now
};
it('returns success result structure', async () => {
const result = await updateEmail(testUpdateData, '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 valid update data', async () => {
const updateData = {
id: '12345678-1234-1234-1234-123456789abc',
scheduledAt: new Date(Date.now() + 3600000).toISOString(), // 1 hour from now
};
const result = await updateEmail(updateData, '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 updateEmail(testUpdateData, 'any-key');
expect(result).toBeDefined();
});
it('handles different email ID formats', async () => {
const testIds = [
'4ef9a417-02e9-4d39-ad75-9611e0fcc33c', // lowercase
'4EF9A417-02E9-4D39-AD75-9611E0FCC33C', // uppercase
'4Ef9A417-02e9-4D39-ad75-9611E0fcc33C', // mixed case
];
for (const emailId of testIds) {
const updateData = {
id: emailId,
scheduledAt: new Date(Date.now() + 60000).toISOString(),
};
const result = await updateEmail(updateData, 'test-api-key');
expect(result.success).toBe(true);
}
});
it('returns consistent interface regardless of input', async () => {
const result = await updateEmail(testUpdateData, 'test-key');
// Should always return ApiResult interface
expect(typeof result.success).toBe('boolean');
if (result.success) {
expect(result.data).toBeDefined();
}
else {
expect(result.error).toBeDefined();
}
});
});
//# sourceMappingURL=action.test.js.map