import { HostReferralModel, HostReferralSchema } from './host-referral.model'; describe('HostReferralModel', () => { describe('constructor', () => { it('should create and initialize empty model', () => { const model = new HostReferralModel(); expect(model.campaignId).toBe(''); expect(model.transactionId).toBe(''); }); it('should intialize model from schema', () => { const schema: HostReferralSchema = { campaign_id: 'test-campaign', transaction_id: 'test-transaction', }; const model = new HostReferralModel(schema); expect(model.campaignId).toBe(schema.campaign_id); expect(model.transactionId).toBe(schema.transaction_id); }); }); describe('#fromSchema', () => { it('should initialize from a schema input', () => { const model = new HostReferralModel(); expect(model.campaignId).toBe(''); expect(model.transactionId).toBe(''); const schema: HostReferralSchema = { campaign_id: 'test-campaign', transaction_id: 'test-transaction', }; model.fromSchema(schema); expect(model.campaignId).toBe(schema.campaign_id); expect(model.transactionId).toBe(schema.transaction_id); }); }); describe('#toSchema', () => { it('should build a schema object from the model', () => { const model = new HostReferralModel(); model.campaignId = 'test-campaign'; model.transactionId = 'test-transaction'; const schema = model.toSchema(); expect(schema.campaign_id).toBe(model.campaignId); expect(schema.transaction_id).toBe(model.transactionId); }); }); });