UNPKG

@eagleeye-solutions/integration-events-common

Version:
227 lines 7.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const src_1 = require("../../../../src"); describe('atomic-operations', () => { describe.each([ { fn: src_1.isCampaignEntity, fnName: 'isCampaignEntity', objectType: 'campaignEntity', }, { fn: src_1.isPlanEntity, fnName: 'isPlanEntity', objectType: 'planEntity', }, { fn: src_1.isSchemeEntity, fnName: 'isSchemeEntity', objectType: 'schemeEntity', }, { fn: src_1.isFundEntity, fnName: 'isFundEntity', objectType: 'fundEntity', }, { fn: src_1.isFundTransactionEntity, fnName: 'isFundTransactionEntity', objectType: 'fundTransactionEntity', }, { fn: src_1.isPointsRewardBankEntity, fnName: 'isPointsRewardBankEntity', objectType: 'pointsRewardBankEntity', }, { fn: src_1.isPointsRewardBankRewardEntity, fnName: 'isPointsRewardBankRewardEntity', objectType: 'pointsRewardBankRewardEntity', }, { fn: src_1.isPointsRewardBankWalletLinkEntity, fnName: 'isPointsRewardBankWalletLinkEntity', objectType: 'pointsRewardBankWalletLinkEntity', }, { fn: src_1.isSupplierUnitEntity, fnName: 'isSupplierUnitEntity', objectType: 'supplierUnitEntity', }, { fn: src_1.isTierMembershipEntity, fnName: 'isTierMembershipEntity', objectType: 'tierMembershipEntity', }, { fn: src_1.isTierMembershipTransactionEntity, fnName: 'isTierMembershipTransactionEntity', objectType: 'tierMembershipTransactionEntity', }, { fn: src_1.isWalletAccountEntity, fnName: 'isWalletAccountEntity', objectType: 'walletAccountEntity', }, { fn: src_1.isWalletAccountTransactionEntity, fnName: 'isWalletAccountTransactionEntity', objectType: 'walletAccountTransactionEntity', }, { fn: src_1.isWalletConsumerEntity, fnName: 'isWalletConsumerEntity', objectType: 'walletConsumerEntity', }, { fn: src_1.isWalletEntity, fnName: 'isWalletEntity', objectType: 'walletEntity', }, { fn: src_1.isWalletIdentityEntity, fnName: 'isWalletIdentityEntity', objectType: 'walletIdentityEntity', }, { fn: src_1.isWalletInviteEntity, fnName: 'isWalletInviteEntity', objectType: 'walletInviteEntity', }, { fn: src_1.isWalletTransactionEntity, fnName: 'isWalletTransactionEntity', objectType: 'walletTransactionEntity', }, ])('$fnName', ({ fn, objectType }) => { it(`returns true atomic operation is ${objectType}`, () => { const atomicOperation = { objectType, }; const output = fn(atomicOperation); expect(output).toBe(true); }); it(`returns false if atomic operation is not ${objectType}`, () => { const atomicOperation = { objectType: 'some-invalid-value', }; const output = fn(atomicOperation); expect(output).toBe(false); }); }); }); describe('isWalletAccountTransactionEntityCreateEcoupon', () => { it('returns true if an atomic operation is a walletAccountTransactionEntity for a new ECOUPON account', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'ECOUPON', clientType: 'OFFER', }, }, operationType: 'CREATE', }; const output = (0, src_1.isWalletAccountTransactionEntityCreateEcoupon)(atomicOperation); expect(output).toBe(true); }); it('returns false if objectValue.account.type is not ECOUPON', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'some-other-type', clientType: 'OFFER', }, }, operationType: 'CREATE', }; const output = (0, src_1.isWalletAccountTransactionEntityCreateEcoupon)(atomicOperation); expect(output).toBe(false); }); it('returns false if operationType is not CREATE', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'ECOUPON', clientType: 'OFFER', }, }, operationType: 'UPDATE', }; const output = (0, src_1.isWalletAccountTransactionEntityCreateEcoupon)(atomicOperation); expect(output).toBe(false); }); it('returns false if clientType is not present', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'ECOUPON', }, }, operationType: 'CREATE', }; const output = (0, src_1.isWalletAccountTransactionEntityCreateEcoupon)(atomicOperation); expect(output).toBe(false); }); }); describe('isWalletAccountTransactionEntityUpdateEcoupon', () => { it('returns true if an atomic operation is a walletAccountTransactionEntity for an updated ECOUPON account', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'ECOUPON', clientType: 'OFFER', }, }, operationType: 'UPDATE', }; const output = (0, src_1.isWalletAccountTransactionEntityUpdateEcoupon)(atomicOperation); expect(output).toBe(true); }); it('returns false if objectValue.account.type is not ECOUPON', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'some-other-type', clientType: 'OFFER', }, }, operationType: 'UPDATE', }; const output = (0, src_1.isWalletAccountTransactionEntityUpdateEcoupon)(atomicOperation); expect(output).toBe(false); }); it('returns false if operationType is not UPDATE', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'ECOUPON', clientType: 'OFFER', }, }, operationType: 'CREATE', }; const output = (0, src_1.isWalletAccountTransactionEntityUpdateEcoupon)(atomicOperation); expect(output).toBe(false); }); it('returns false if clientType is not present', () => { const atomicOperation = { objectType: 'walletAccountTransactionEntity', objectValue: { account: { type: 'ECOUPON', }, }, operationType: 'UPDATE', }; const output = (0, src_1.isWalletAccountTransactionEntityUpdateEcoupon)(atomicOperation); expect(output).toBe(false); }); }); //# sourceMappingURL=handlers.spec.js.map