diff --git a/src/constants/header-keys.js b/src/constants/header-keys.js index 2cfbba367..7caaef65c 100644 --- a/src/constants/header-keys.js +++ b/src/constants/header-keys.js @@ -1,3 +1,8 @@ export const headerKeys = { EXPERIMENT: "X-Experiment-Data", + APPLICATION_NAME: "X-Application-Name", + REFERRAL_SEQUENCE_NUMBER: "X-Referral-Sequence-Number", + SESSION_SEQUENCE_NUMBER: "X-Session-Sequence-Number", + TRANSACTION_ID: "X-Transaction-Id", + EON: "X-EON", }; diff --git a/src/global-methods.js b/src/global-methods.js index c286ede9b..6afeef53d 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -1,5 +1,6 @@ import axios from "axios"; import analyticsMixIn from "@/mixins/analytics-mixin.js"; +import baseMixin from "@/mixins/base-mixin.js"; import router from "@/router"; import store from "@/store"; @@ -57,9 +58,17 @@ export default { }) { return new Promise((resolve, reject) => { const cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; + const submittedOrder = baseMixin.methods.getSubmittedOrder(); + const hasSubmittedOrder = baseMixin.methods.hasSubmittedOrder(); + const order = hasSubmittedOrder ? submittedOrder : store.getters.order; const payloadAndAnalyticsData = Object.assign({}, payload, { AppName: "FixMyGlass" }); const headers = { [headerKeys.EXPERIMENT]: JSON.stringify(store.getters.experimentSettings), + [headerKeys.APPLICATION_NAME]: applicationConfig.APPLICATION_NAME, + [headerKeys.SESSION_SEQUENCE_NUMBER]: store.getters.applicationUser?.savedSessionId, + [headerKeys.REFERRAL_SEQUENCE_NUMBER]: order?.referralSequenceNumber, + [headerKeys.TRANSACTION_ID]: crypto.randomUUID(), + [headerKeys.EON]: order?.eon, }; axios({ diff --git a/src/global-methods.spec.js b/src/global-methods.spec.js index 93aafea81..e6c0e4858 100644 --- a/src/global-methods.spec.js +++ b/src/global-methods.spec.js @@ -13,6 +13,7 @@ global.$logger = { logError: jest.fn(), logCritical: jest.fn(), }; +global.crypto = { randomUUID: jest.fn() }; it("Global Methods - Call Http Client - Should Resolve Promise", () => { //Arrange diff --git a/src/layouts/estimate/estimate.spec.js b/src/layouts/estimate/estimate.spec.js index 87235d15a..74ca7d0bf 100644 --- a/src/layouts/estimate/estimate.spec.js +++ b/src/layouts/estimate/estimate.spec.js @@ -24,6 +24,7 @@ jest.mock("@/helpers/cms-content-helper", () => ({ fetchCmsContentForPage: jest.fn(), })); +global.crypto = { randomUUID: jest.fn() }; describe("estimate.vue", () => { test("Selected vin option is emitted upon selection.", async () => { //Arrange