82 lines
2.2 KiB
JavaScript
82 lines
2.2 KiB
JavaScript
import { mount, shallowMount } from "@vue/test-utils";
|
|
import promoModalQuestion from "./promo-modal-question";
|
|
|
|
jest.mock("@/digital-components/textbox-question/textbox-question", () => ({
|
|
getCmsContent: jest.fn((widgetName, cmsFieldName) => {
|
|
return widgetName[cmsFieldName];
|
|
}),
|
|
}));
|
|
|
|
jest.mock("@/digital-components/modal/modal", () => ({
|
|
methods: {
|
|
closeModal: jest.fn(),
|
|
resetButtonStyle: jest.fn(),
|
|
resetForm: jest.fn(),
|
|
},
|
|
}));
|
|
|
|
const modalWidgetName = "modalWidgetName";
|
|
|
|
const mockModalCmsContent = {
|
|
FooterText: "Sample modal footer text here.",
|
|
};
|
|
|
|
const mockMixin = {
|
|
methods: {
|
|
getCmsContent: jest.fn((widgetName, cmsFieldName) => {
|
|
if (widgetName === modalWidgetName) {
|
|
return mockModalCmsContent[cmsFieldName];
|
|
}
|
|
|
|
return null;
|
|
}),
|
|
},
|
|
};
|
|
|
|
describe("promo-modal-question.vue", () => {
|
|
it("Should reset all alerts on onModalClosed", async () => {
|
|
// Arrange
|
|
|
|
const wrapper = mount(promoModalQuestion, {
|
|
mixins: [mockMixin],
|
|
props: {
|
|
modalWidgetName: modalWidgetName,
|
|
},
|
|
attachTo: document.body,
|
|
});
|
|
|
|
// Act
|
|
wrapper.vm.onModalClosed();
|
|
|
|
// Assert
|
|
expect(wrapper.vm.displayInvalidPromoAlert).toBe(false);
|
|
expect(wrapper.vm.displayStackingPromoAlert).toBe(false);
|
|
expect(wrapper.vm.displayInShopPromoAlert).toBe(false);
|
|
expect(wrapper.vm.displaySimilarPromoAlert).toBe(false);
|
|
});
|
|
it("Should emit update:modelValue on Modal closed", async () => {
|
|
// Arrange
|
|
const lineItems = {
|
|
glassParts: [],
|
|
supportingItems: [],
|
|
vaps: [],
|
|
promos: [],
|
|
};
|
|
|
|
const wrapper = mount(promoModalQuestion, {
|
|
mixins: [mockMixin],
|
|
props: {
|
|
modelValue: lineItems,
|
|
modalWidgetName: modalWidgetName,
|
|
},
|
|
attachTo: document.body,
|
|
});
|
|
|
|
// Act
|
|
|
|
await wrapper.vm.onModalClosed();
|
|
|
|
// Assert
|
|
expect(wrapper.emitted("update:modelValue")).toEqual([[lineItems]]);
|
|
});
|
|
});
|