@letanure/resend-cli
Version:
A command-line interface for Resend email API
85 lines • 3.45 kB
JavaScript
import { describe, expect, it } from 'vitest';
import { deleteContact } from '../action.js';
describe('deleteContact', () => {
const testContactData = {
audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
id: '479e3145-dd38-476b-932c-529ceb705947',
};
it('returns success result structure', async () => {
const result = await deleteContact(testContactData, 'test-api-key');
expect(result).toHaveProperty('success');
expect(result.success).toBe(true);
expect(result.data).toBeDefined();
expect(result.data?.contact).toBe('test-contact-id');
});
it('accepts valid contact data with ID', async () => {
const contactData = {
audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
id: '479e3145-dd38-476b-932c-529ceb705947',
};
const result = await deleteContact(contactData, 'test-api-key');
expect(result.success).toBe(true);
});
it('accepts valid contact data with email', async () => {
const contactData = {
audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
email: 'contact@example.com',
};
const result = await deleteContact(contactData, 'test-api-key');
expect(result.success).toBe(true);
});
it('accepts valid contact data with both ID and email', async () => {
const contactData = {
audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
id: '479e3145-dd38-476b-932c-529ceb705947',
email: 'contact@example.com',
};
const result = await deleteContact(contactData, '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 deleteContact(testContactData, 'any-key');
expect(result).toBeDefined();
});
it('handles different audience and contact IDs', async () => {
const testData = [
{
audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
id: '479e3145-dd38-476b-932c-529ceb705947',
},
{
audienceId: '12345678-1234-1234-1234-123456789abc',
email: 'user@example.com',
},
{
audienceId: '87654321-4321-4321-4321-cba987654321',
id: '11111111-1111-1111-1111-111111111111',
},
];
for (const contactData of testData) {
const result = await deleteContact(contactData, 'test-api-key');
expect(result.success).toBe(true);
}
});
it('returns consistent interface regardless of input', async () => {
const result = await deleteContact(testContactData, '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();
}
});
it('handles email-only deletion', async () => {
const contactData = {
audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
email: 'test@example.com',
};
const result = await deleteContact(contactData, 'test-api-key');
expect(result.success).toBe(true);
});
});
//# sourceMappingURL=action.test.js.map