@eagleeye-solutions/integration-events-common
Version:
Eagle Eye CDP connector common functionality
227 lines • 7.99 kB
JavaScript
"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