DigitalConsumer.FixMyGlass/src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.spec.js
AdamCaouetteSafelite 670a5a0f83 CASH-1450 fixes
2025-09-08 08:42:07 -04:00

121 lines
3.2 KiB
JavaScript

import { shallowMount } from "@vue/test-utils";
import { getMountOptions } from "@/helpers/unit-test-helper.js";
import customerReview from "@/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review";
const testConstants = {
cms: {
header: {
text: "Header",
},
sms: {
text: "Sms",
},
},
customer: {
// firstName: "First",
// lastName: "Last",
phoneNumber: "111-111-1111",
emailAddress: "builddigitaltest@safelite.com",
// isSmsOptIn: false,
},
displayContent: {
// fullName: "First Last",
phoneNumber: "111-111-1111",
emailAddress: "builddigitaltest@safelite.com",
// smsOptIn: "Sms",
},
};
let cmsContent;
describe("Customer Review Block", () => {
beforeEach(() => {
cmsContent = {
CustomerWidget: {
HeaderText: testConstants.cms.header.text,
SubheaderText: testConstants.cms.sms.text,
},
};
});
test("Should display header text from cms", async () => {
// Arrange
let props = generateDefaultProps();
const { wrapper } = setupMocks({
propsData: props,
});
// Act
await wrapper.vm.$nextTick();
// Assert
expect(wrapper.vm.header).toEqual(testConstants.cms.header.text);
});
// test("Should display sms text from cms", async () => {
// // Arrange
// let props = generateDefaultProps();
// const { wrapper } = setupMocks({
// propsData: props,
// });
// // Act
// await wrapper.vm.$nextTick();
// // Assert
// expect(wrapper.vm.smsOptIn).toEqual(testConstants.cms.sms.text);
// });
test("Should render correct display content", async () => {
// Arrange
let props = generateDefaultProps();
const { wrapper } = setupMocks({
propsData: props,
});
// Act
await wrapper.vm.$nextTick();
// Assert
expect(wrapper.vm.displayContent).toEqual([
testConstants.displayContent.emailAddress,
testConstants.displayContent.phoneNumber,
// testConstants.displayContent.smsOptIn,
]);
});
});
function generateDefaultProps() {
return {
cmsWidgetName: "CustomerWidget",
customer: {
// firstName: testConstants.customer.firstName,
// lastName: testConstants.customer.lastName,
phoneNumber: testConstants.customer.phoneNumber,
emailAddress: testConstants.customer.emailAddress,
// isSmsOptIn: testConstants.customer.isSmsOptIn,
},
};
}
function setupMocks(customMountOptions) {
const mountOptions = getMountOptions(customMountOptions);
const mockMixin = {
methods: {
getCmsContent: jest.fn((widgetName, cmsFieldName) => {
return cmsContent?.[widgetName]?.[cmsFieldName] ?? "";
}),
},
};
mountOptions.global.mixins = [mockMixin];
const wrapper = shallowMount(customerReview, mountOptions);
wrapper.vm.setCmsContent = jest.fn();
return { wrapper };
}