DigitalConsumer.FixMyGlass/src/helpers/heritage-integration-helper.spec.js
2022-03-23 12:55:04 -04:00

282 lines
No EOL
9.8 KiB
JavaScript

import * as helper from "@/helpers/heritage-integration-helper";
import { cookieNames } from "@/constants/cookie-names";
import { setupMocksForJsFiles } from "@/helpers/unit-test-helper.js";
import { storeActions } from "@/constants/store-actions";
import { storeMutations } from "@/constants/store-mutations";
import store from "@/store";
describe("saveOrder", () => {
// afterEach(() => {
// removeAllTestCookies();
// });
function getMockOrderInfo(mockReferralNumber, mockCorrelationId, mockReferralDate ) {
return {
referralNumber: mockReferralNumber,
referralCorrelationId: mockCorrelationId,
referralDate: mockReferralDate
}
}
describe("loadOrderIfPresent", () => {
// test("ShouldResetState == true => heritage cookie is deleted", () => {
// // Arrange
// // TODO CSR-98 Can we not mock this??
// const testShouldResetState = true;
// const testCookieValue = {
// ShouldResetState: testShouldResetState
// }
// console.log(cookieNames.CONCEPT_SESSION_INFO);
// console.log(testCookieValue)
// console.log(JSON.stringify(testCookieValue));
// console.log(location.hostname)
// let myString = `${cookieNames.CONCEPT_SESSION_INFO}=${JSON.stringify(testCookieValue)};domain=${location.hostname};path=/;`;
// console.log(myString)
// document.cookie = 'OrderInfo={"Hahahah":true};domain=localhost;path=/;';
// console.log(document.cookie)
// document.cookie = "Ahhh=AHHH;"
// document.cookie = `${cookieNames.CONCEPT_SESSION_INFO}=; Max-Age=0; domain=${location.hostname};`;
// console.log(document.cookie)
// // Act
// helper.loadOrderIfPresent();
// // Assert
// console.log(document.cookie)
// // expect(document.cookie).toBe();
// });
// test("ShouldResetState == true => reset store", () => {
// // Arrange
// helper.getHeritageCookieValue = jest.fn(x => x.ShouldResetState = false);
// // Act
// helper.loadOrderIfPresent();
// // Assert
// expect(helper.getHeritageCookieValue).toHaveBeenCalled();
// });
// test("Heritage cookie is null => store is unchanged", () => {
// // Arrange
// helper.getHeritageCookieValue = jest.fn(x => x.ShouldResetState = true);
// // Act
// helper.loadOrderIfPresent();
// // Assert
// expect(helper.getHeritageCookieValue).toHaveBeenCalled();
// });
});
test("saveOrder => should set state order values", async () => {
// Arrange
const mockReferralNumber = 2;
const mockCorrelationId = "55";
const mockReferralDate = "2022";
const mockOrderInfo = getMockOrderInfo(mockReferralNumber, mockCorrelationId, mockReferralDate);
const mockData = {
actionList: [{
actionName: storeActions.SAVE_ORDER,
data: mockOrderInfo,
}],
}
setupMocksForJsFiles(mockData);
// Act
await helper.saveOrder();
// Assert
expect(store.commit).toHaveBeenCalledTimes(3);
expect(store.commit).toHaveBeenCalledWith(storeMutations.UPDATE_REFERRAL_NUMBER, mockReferralNumber);
expect(store.commit).toHaveBeenCalledWith(storeMutations.UPDATE_REFERRAL_CORRELATION_ID, mockCorrelationId);
expect(store.commit).toHaveBeenCalledWith(storeMutations.UPDATE_REFERRAL_DATE, mockReferralDate);
});
// test("saveOrder => should update DidHeritageFunnelUpdateLast cookie value", async () => {
// // Arrange
// const mockReferralNumber = 2;
// const mockCorrelationId = "55";
// const mockReferralDate = "2022";
// const mockOrderInfo = getMockOrderInfo(mockReferralNumber, mockCorrelationId, mockReferralDate);
// const mockData = {
// actionList: [{
// actionName: storeActions.SAVE_ORDER,
// data: mockOrderInfo,
// }],
// }
// setupMocksForJsFiles(mockData);
// // Act
// await helper.saveOrder();
// // Assert
// });
});
describe("navigateToHeritageFunnel", () => {
test("should go to external link", () => {
// Arrange
// Act
helper.navigateToHeritageFunnel();
// Assert
expect(router.navigate).toHaveBeenCalled();
expect(window.location.assign).toHaveBeenCalled();
})
});
// TODO CSR-98 Remove skip
describe.skip("cookies", () => {
afterEach(() => {
removeAllTestCookies();
})
describe("getHeritageCookieValue method", () => {
test("gets correct value when cookie is present", () => {
// Arrange
const testReferralNumber = 1566818;
const testReferralDate = "2022-03-15T10:56:24.597";
const testReferralCorrelationId = "404d2b04-f86e-45c3-b373-127b6217b060";
const testShouldResetState = false;
const testDidHeritageFunnelUpdateLast = true;
const testCookieValue = {
ReferralNumber: testReferralNumber,
ReferralDate: testReferralDate,
ReferralCorrelationId: testReferralCorrelationId,
ShouldResetState: testShouldResetState,
DidHeritageFunnelUpdateLast: testDidHeritageFunnelUpdateLast
}
setupCookies({ heritageCookieValue: JSON.stringify(testCookieValue) });
// Act
var result = helper.getHeritageCookieValue();
// Assert
expect(result).toEqual(testCookieValue);
expect(typeof result).toEqual("object");
expect(result.ReferralNumber).toEqual(testReferralNumber);
expect(result.ReferralDate).toEqual(testReferralDate);
expect(result.ReferralCorrelationId).toEqual(testReferralCorrelationId);
expect(result.ShouldResetState).toEqual(testShouldResetState);
expect(result.DidHeritageFunnelUpdateLast).toEqual(testDidHeritageFunnelUpdateLast);
})
test("returns empty object when value is empty object", () => {
// Arrange
const testCookieValue = {};
setupCookies({ heritageCookieValue: JSON.stringify(testCookieValue) });
// Act
var result = helper.getHeritageCookieValue();
// Assert
expect(result).toEqual(testCookieValue);
expect(typeof result).toEqual("object");
expect(Object.keys(result)).toHaveLength(0);
})
test("returns null when value is empty string", () => {
// Arrange
const testCookieValue = "";
setupCookies({ heritageCookieValue: testCookieValue });
// Act
var result = helper.getHeritageCookieValue();
// Assert
expect(result).toEqual(null);
})
test("returns null when heritage cookie doesn't exist", () => {
// Arrange
setupCookies({ includeHeritageCookie: false });
// Act
var result = helper.getHeritageCookieValue();
// Assert
expect(result).toEqual(null);
})
})
})
// document.cookie is not just a string, needs to be added individually
const cookies = {
"orderconfirmation": 1565980,
"optimizelyEndUserId": "oeu1610051865958r0.07937134272718804",
[cookieNames.CONCEPT_SESSION_INFO]: `{"ReferralNumber":"1566818","ReferralDate":"2022-03-15T10:56:24.597","ReferralCorrelationId":"404d2b04-f86e-45c3-b373-127b6217b060","ShouldResetState":false,"DidHeritageFunnelUpdateLast":true}`,
"UNIQUE_SESSION_ID": "33756020-b58e-4ec7-b8b8-3f1576719c40",
"_ga": "GA1.1.1631274579.1622658999",
"da_lid": "B10847599A73EA95861EBB99009A283E27|0|0|0 clientTag=null",
"addshoppers.com": "2%7C1%3A0%7C10%3A1646681050%7C15%3Aaddshoppers.com%7C44%3AODM1OTczNWI0MmFjNGNmMmExNDY3OWRlNTQ1NmM5MGY%3D%7Cef2a50fafe40fc5abf641a14ee5541c70bef2950666f59d3a809fd9352c7b963"
};
function setupCookies({ heritageCookieValue = "", includeHeritageCookie = true }) {
console.log(heritageCookieValue)
Object.keys(cookies).forEach(key => {
const cookieValue = key == cookieNames.CONCEPT_SESSION_INFO ? heritageCookieValue : cookies[key];
if (includeHeritageCookie || key != cookieNames.CONCEPT_SESSION_INFO)
document.cookie = `${key}=${cookieValue}`;
});
}
function removeAllTestCookies() {
Object.keys(cookies).forEach(key => {
document.cookie = `${key}=;Max-Age=0;`;
});
}
// test("getCookieValue: Gets correct cookie value", () => {
// // Arrange
// const mixIn = getMixInInstance({});
// const testCookieName = "testCookie";
// const testCookieValue = "testCookieValue";
// document.cookie = `yearMakeModel=2020 ACURA MDX;`;
// document.cookie = `SavedQuoteID=d2770645-0680-4852-9649-6170659b1bd6;`;
// document.cookie = `${testCookieName}=${testCookieValue};`;
// document.cookie = `EMBEDDEDPAYMENTPAGE_PAYPAL_SUBMITBUTTON=COMPLETED;`;
// document.cookie = `orderconfirmation=7411543;`;
// console.log(document.cookie)
// // Act
// const actualCookieValue = mixIn.methods.getCookieValue(testCookieName);
// // Assert
// expect(actualCookieValue).toEqual(testCookieValue);
// expect(document.cookie).toEqual(`yearMakeModel=2020 ACURA MDX; SavedQuoteID=d2770645-0680-4852-9649-6170659b1bd6; ${testCookieName}=${testCookieValue}; EMBEDDEDPAYMENTPAGE_PAYPAL_SUBMITBUTTON=COMPLETED; orderconfirmation=7411543`);
// clearCookies();
// });
// test("getCookieValue: Gets undefined cookie value", () => {
// // Arrange
// const mixIn = getMixInInstance({});
// const testCookieName = "testCookie";
// document.cookie = `yearMakeModel=2020 ACURA MDX;`;
// document.cookie = `SavedQuoteID=d2770645-0680-4852-9649-6170659b1bd6;`;
// document.cookie = `EMBEDDEDPAYMENTPAGE_PAYPAL_SUBMITBUTTON=COMPLETED;`;
// document.cookie = `orderconfirmation=7411543;`;
// // Act
// const actualCookieValue = mixIn.methods.getCookieValue(testCookieName);
// // Assert
// expect(actualCookieValue).toEqual(undefined);
// expect(document.cookie).toEqual(`yearMakeModel=2020 ACURA MDX; SavedQuoteID=d2770645-0680-4852-9649-6170659b1bd6; EMBEDDEDPAYMENTPAGE_PAYPAL_SUBMITBUTTON=COMPLETED; orderconfirmation=7411543;`);
// });