import { expect } from 'chai'; import { mapAcquisitionContextResponse } from '../../../src/mappers/acquisition-context'; describe('mapToMembershipResponse', () => { let acquisitionContext: any; let acquisitionContextData: any; beforeEach(() => { acquisitionContextData = { displayName: 'Display Name', logoUrl: 'Logo url', name: 'Name', restrictIpRanges: true, signupContext: { restrictEmailDomains: true, allowedEmailDomains: ['ExamPle.com', 'Example_2.com'], restrictBlockedEmailDomains: true, blockedEmailDomains: ['BLOCKED.com'], signupWelcomeText: 'Welcome to your free trial' } }; acquisitionContext = mapAcquisitionContextResponse(acquisitionContextData as any); }); it('sets displayName', () => { const expectedResult = acquisitionContextData.displayName; expect(acquisitionContext.displayName).to.equal(expectedResult); }); it('sets logoUrl', () => { const expectedResult = acquisitionContextData.logoUrl; expect(acquisitionContext.logoUrl).to.equal(expectedResult); }); it('sets name', () => { const expectedResult = acquisitionContextData.name; expect(acquisitionContext.name).to.equal(expectedResult); }); it('sets hasRestrictIpRanges', () => { expect(acquisitionContext.hasRestrictIpRanges).to.be.true; }); it('sets hasRestrictEmailDomains', () => { expect(acquisitionContext.hasRestrictEmailDomains).to.be.true; }); it('sets allowedEmailDomains', () => { expect(acquisitionContext.allowedEmailDomains).to.eql(['ExamPle.com', 'Example_2.com']); }); it('sets hasRestrictBlockedEmailDomains ', () => { expect(acquisitionContext.hasRestrictBlockedEmailDomains).to.be.true; }); it('sets blockedEmailDomains', () => { expect(acquisitionContext.blockedEmailDomains).to.eql(['BLOCKED.com']); }); it('sets signupWelcomeText', () => { const expectedResult = acquisitionContextData.signupContext.signupWelcomeText; expect(acquisitionContext.signupWelcomeText).to.eql(expectedResult); }); context('errors', () => { it('throws with acquisitionContextData when it contains an undefined value', () => { acquisitionContextData.displayName = undefined; const expectedResult = { displayName: acquisitionContextData.displayName, logoUrl: acquisitionContextData.logoUrl, name: acquisitionContextData.name, hasRestrictIpRanges: acquisitionContextData.restrictIpRanges, hasRestrictEmailDomains: acquisitionContextData.signupContext.restrictEmailDomains, allowedEmailDomains: acquisitionContextData.signupContext.allowedEmailDomains, hasRestrictBlockedEmailDomains: acquisitionContextData.signupContext.restrictBlockedEmailDomains, blockedEmailDomains: acquisitionContextData.signupContext.blockedEmailDomains, signupWelcomeText: acquisitionContextData.signupContext.signupWelcomeText }; try { mapAcquisitionContextResponse(acquisitionContextData); expect.fail('Should have thrown the error!'); } catch (error) { expect(error.data.acquisitionContextMapped).eql(expectedResult); } }); }); });