UNPKG

@letanure/resend-cli

Version:

A command-line interface for Resend email API

131 lines 5.36 kB
import { describe, expect, it } from 'vitest'; import { DeleteContactOptionsSchema } from '../schema.js'; describe('DeleteContactOptionsSchema', () => { it('validates correct data with ID', () => { const validData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', id: '479e3145-dd38-476b-932c-529ceb705947', }; const result = DeleteContactOptionsSchema.safeParse(validData); expect(result.success).toBe(true); }); it('validates correct data with email', () => { const validData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', email: 'contact@example.com', }; const result = DeleteContactOptionsSchema.safeParse(validData); expect(result.success).toBe(true); }); it('validates correct data with both ID and email', () => { const validData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', id: '479e3145-dd38-476b-932c-529ceb705947', email: 'contact@example.com', }; const result = DeleteContactOptionsSchema.safeParse(validData); expect(result.success).toBe(true); }); it('rejects data without audienceId', () => { const invalidData = { id: '479e3145-dd38-476b-932c-529ceb705947', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('rejects data without both ID and email', () => { const invalidData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('rejects empty audienceId', () => { const invalidData = { audienceId: '', id: '479e3145-dd38-476b-932c-529ceb705947', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('rejects empty ID when provided', () => { const invalidData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', id: '', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('rejects empty email when provided', () => { const invalidData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', email: '', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('trims whitespace from fields', () => { const dataWithWhitespace = { audienceId: ' 78261eea-8f8b-4381-83c6-79fa7120f1cf ', id: ' 479e3145-dd38-476b-932c-529ceb705947 ', email: ' contact@example.com ', }; const result = DeleteContactOptionsSchema.safeParse(dataWithWhitespace); expect(result.success).toBe(true); if (result.success) { expect(result.data.audienceId).toBe('78261eea-8f8b-4381-83c6-79fa7120f1cf'); expect(result.data.id).toBe('479e3145-dd38-476b-932c-529ceb705947'); expect(result.data.email).toBe('contact@example.com'); } }); it('rejects non-UUID audienceId', () => { const invalidData = { audienceId: 'not-a-uuid', id: '479e3145-dd38-476b-932c-529ceb705947', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('rejects non-UUID contact id', () => { const invalidData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', id: 'not-a-uuid', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('rejects invalid email format', () => { const invalidData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', email: 'not-an-email', }; const result = DeleteContactOptionsSchema.safeParse(invalidData); expect(result.success).toBe(false); }); it('accepts valid UUID formats', () => { const validUUIDs = [ '78261eea-8f8b-4381-83c6-79fa7120f1cf', '12345678-1234-1234-1234-123456789abc', '87654321-4321-4321-4321-cba987654321', ]; for (const audienceId of validUUIDs) { for (const contactId of validUUIDs) { const validData = { audienceId: audienceId, id: contactId }; const result = DeleteContactOptionsSchema.safeParse(validData); expect(result.success).toBe(true); } } }); it('accepts valid email formats', () => { const validEmails = ['user@example.com', 'test.email@domain.co.uk', 'user+tag@example.org', '123@test.com']; for (const email of validEmails) { const validData = { audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf', email, }; const result = DeleteContactOptionsSchema.safeParse(validData); expect(result.success).toBe(true); } }); }); //# sourceMappingURL=schema.test.js.map