import { Event } from '@sanar/payments-sdk'; import { EcommerceService } from './ecommerce.service'; require('../../tests/mocks/msw/index.js'); const service = EcommerceService.getInstance(); jest.setTimeout(10000); describe('Ecommerce service tests', () => { test('Insert affiliate', async () => { const affiliate = await service.insertAffiliate({ name: 'Luciano Nobre Moreira', email: 'luciano.moreira@sanar.com', } as Event.AffiliateUser); expect(affiliate.id).not.toBeNull(); }); test('Insert affiliate searching subscription', async () => { const affiliate = await service.insertAffiliate({ email: 'luciano.moreira@sanar.com', } as Event.AffiliateUser); expect(affiliate.id).not.toBeNull(); }); test('Insert with invalid e-mail', async () => { expect(service.insertAffiliate({ email: '' } as Event.AffiliateUser)).rejects.toThrowError('Invalid e-mail'); expect(service.insertAffiliate({ email: null } as Event.AffiliateUser)).rejects.toThrowError('Invalid e-mail'); expect(service.insertAffiliate({ } as Event.AffiliateUser)).rejects.toThrowError('Invalid e-mail'); expect(service.insertAffiliate(null)).rejects.toThrowError('Invalid e-mail'); }); test('Insert affiliate coupon', async () => { const affiliate = await service.insertAffiliate({ email: 'luciano.moreira@sanar.com', } as Event.AffiliateUser); const coupon = await service.insertAffiliateCoupon(affiliate); expect(coupon.cupId).not.toBeNull(); expect(coupon.name).not.toBeNull(); }); test('List coupon usage', async () => { const orders = await service.listCouponUsage('LU1694MGM'); expect(orders.length).toBeGreaterThan(0); }); });