@eagleeye-solutions/integration-events-common
Version:
Eagle Eye CDP connector common functionality
198 lines • 8.11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const src_1 = require("../../../src");
const fixtures_1 = require("../../fixtures");
const logger = {
debug: console.debug,
info: console.info,
warn: console.warn,
error: console.error,
};
describe('getPosConnectWalletFulfilEventData', () => {
it.each([
{
eventName: 'POSCONNECT.WALLET.FULFIL (initial)',
event: fixtures_1.sampleEvents.POSCONNECT_WALLET_FULFIL_INITIAL,
expectedOutput: {
currencyCode: 'USD',
redeemedCoupons: [],
transaction: {
discountsReceived: 700,
products: [
{
description: 'Lemonade',
itemUnitCost: 1000,
itemUnitCount: 2,
totalUnitCost: 2000,
totalUnitCostAfterDiscount: 2000,
upc: '245874',
},
{
description: 'Coffee',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245875',
},
{
description: 'Oranges',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245887',
},
{
description: 'Carrot',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245886',
},
{
description: 'Pizza',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245868',
},
{
description: 'Wine',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245872',
},
],
totalBasketValueAfterDiscount: 6300,
totalPointsEarned: 63,
transactionReference: 'TransactionReferenceFeb10e',
transactionDate: new Date('2025-02-11T04:40:59.000Z'),
},
initial: true,
final: false,
},
},
{
eventName: 'POSCONNECT.WALLET.FULFIL (middle)',
event: fixtures_1.sampleEvents.POSCONNECT_WALLET_FULFIL_MIDDLE,
expectedOutput: {
currencyCode: 'USD',
redeemedCoupons: [],
transaction: {
discountsReceived: 700,
products: [
{
description: 'Lemonade',
itemUnitCost: 1000,
itemUnitCount: 2,
totalUnitCost: 2000,
totalUnitCostAfterDiscount: 2000,
upc: '245874',
},
],
storeLocation: {
storeId: 'outlet1',
storeParentId: 'banner1',
},
totalBasketValueAfterDiscount: 2000,
totalPointsEarned: 63,
transactionReference: 'Middle_TransactionReferenceFeb10e',
transactionDate: new Date('2025-02-11T04:42:51.000Z'),
originalTransactionReference: 'TransactionReferenceFeb10e',
originalTransactionDate: new Date('2025-02-11T04:40:59.000Z'),
},
initial: false,
final: false,
},
},
{
eventName: 'POSCONNECT.WALLET.FULFIL (final)',
event: fixtures_1.sampleEvents.POSCONNECT_WALLET_FULFIL_FINAL,
expectedOutput: {
points: {
pointsBalance: 1389,
},
currencyCode: 'USD',
redeemedCoupons: [],
transaction: {
discountsReceived: 0,
products: [
{
description: 'Coffee',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245875',
},
{
description: 'Oranges',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245887',
},
{
description: 'Carrot',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245886',
},
{
description: 'Pizza',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245868',
},
{
description: 'Wine',
itemUnitCost: 1000,
itemUnitCount: 1,
totalUnitCost: 1000,
totalUnitCostAfterDiscount: 1000,
upc: '245872',
},
],
storeLocation: {
storeId: 'outlet1',
storeParentId: 'banner1',
},
totalBasketValueAfterDiscount: 5000,
totalPointsEarned: 18,
transactionReference: 'Final_TransactionReferenceFeb10e',
transactionDate: new Date('2025-02-11T04:46:41.000Z'),
originalTransactionReference: 'TransactionReferenceFeb10e',
originalTransactionDate: new Date('2025-02-11T04:40:59.000Z'),
},
initial: false,
final: true,
},
},
])('handles an initial $eventName event', ({ event, expectedOutput }) => {
// Arrange
const eeAirOutboundEvent = src_1.EeAirOutboundEventSchema.parse(event);
const connectorConfig = {
configuration: {
currency: 'USD',
},
};
// Act
const output = (0, src_1.getPosConnectWalletFulfilEventData)(eeAirOutboundEvent, {
connectorConfig,
logger,
});
// Assert
expect(output).toEqual(expectedOutput);
});
});
//# sourceMappingURL=posconnect-wallet-fulfil.spec.js.map