CSR-731 | Unit tests
Still need to test pricing stuff on service-package-question as well as test the new cms content helper stuff
This commit is contained in:
parent
33692d3046
commit
020bbf6971
5 changed files with 1111 additions and 457 deletions
|
|
@ -17,10 +17,8 @@ module.exports = {
|
|||
"!src/layouts/capability-questions/**/*.vue",
|
||||
"!src/layouts/part-questions/**/*.vue",
|
||||
"!src/layouts/reveal/**/*.vue",
|
||||
"!src/layouts/quote/**/*.vue",
|
||||
"!src/ux-components/text-link/**/*.vue",
|
||||
"!src/common-components/question-chain/**/*.vue",
|
||||
"!src/layouts/quote/**/*.vue", // Temporary
|
||||
"!src/layouts/vin-lookup/**/*.vue", //Temporary for Quote page testing
|
||||
"!src/common-components/funnel-header/menu-modal/**/*.vue",
|
||||
// END
|
||||
|
|
|
|||
|
|
@ -115,25 +115,34 @@ describe("buttonQuestion.vue", () => {
|
|||
"2020",
|
||||
]);
|
||||
});
|
||||
test("should accept an imported component for buttonTypeObject and successfully add it to components", async ()=> {
|
||||
test("should accept an imported component for buttonTypeObject and successfully add it to components", async () => {
|
||||
// Arrange
|
||||
const mockComponent = {
|
||||
name: 'mockComponent',
|
||||
name: "mockComponent",
|
||||
methods: {
|
||||
mockComponentMethod() {return 'mockComponentMethod return value'}
|
||||
}
|
||||
mockComponentMethod() {
|
||||
return "mockComponentMethod return value";
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const wrapper = await shallowMount(
|
||||
buttonQuestion,
|
||||
setupMocks({propsData: {'buttonTypeString': 'mockComponent', 'buttonTypeObject': mockComponent}})
|
||||
);
|
||||
setupMocks({
|
||||
propsData: {
|
||||
buttonTypeString: "mockComponent",
|
||||
buttonTypeObject: mockComponent,
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
// Act
|
||||
const componentList = wrapper.vm.$options.components;
|
||||
const componentExists = !!componentList.mockComponent;
|
||||
const componentNameMatches = componentList.mockComponent.name === mockComponent.name;
|
||||
const componentMethodMatches = componentList.mockComponent.methods.mockComponentMethod() === mockComponent.methods.mockComponentMethod();
|
||||
const componentMethodMatches =
|
||||
componentList.mockComponent.methods.mockComponentMethod() ===
|
||||
mockComponent.methods.mockComponentMethod();
|
||||
|
||||
// Assert
|
||||
expect(componentExists && componentNameMatches && componentMethodMatches).toBe(true);
|
||||
|
|
|
|||
|
|
@ -1,279 +1,580 @@
|
|||
export const mockProcessedCmsContent = {
|
||||
"05_01_CSR_Quote_Standard_Repair" : {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: 'Economy service',
|
||||
SubheaderText: '',
|
||||
BodyText: '<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li></ul>',
|
||||
Image: '',
|
||||
FooterText: '{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}'
|
||||
"05_01_CSR_Quote_Standard_Repair": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: 'Standard service',
|
||||
SubheaderText: 'MOST POPULAR',
|
||||
BodyText: '<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>',
|
||||
Image: '',
|
||||
FooterText: ''
|
||||
"05_01_CSR_Quote_Recal": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: 'Premium service',
|
||||
SubheaderText: '',
|
||||
BodyText: '<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>',
|
||||
Image: '',
|
||||
FooterText: ''
|
||||
}
|
||||
},
|
||||
"05_01_CSR_Quote_Recal": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: 'Economy service',
|
||||
SubheaderText: '',
|
||||
BodyText: '<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>',
|
||||
Image: '',
|
||||
FooterText: '{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}'
|
||||
"05_01_CSR_Quote_RearGlass": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: 'Standard service',
|
||||
SubheaderText: 'MOST POPULAR',
|
||||
BodyText: '<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>',
|
||||
Image: '',
|
||||
FooterText: ''
|
||||
"05_01_CSR_Quote_RearGlass+NonWindshield": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: 'Premium service',
|
||||
SubheaderText: '',
|
||||
BodyText: '<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>',
|
||||
Image: '',
|
||||
FooterText: ''
|
||||
}
|
||||
},
|
||||
"05_01_CSR_Quote_RearGlass": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: 'Economy service',
|
||||
SubheaderText: '',
|
||||
BodyText: '<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>',
|
||||
Image: '',
|
||||
FooterText: '{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}'
|
||||
"05_01_CSR_Quote_RearGlass+Windshield": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: 'Standard service',
|
||||
SubheaderText: 'MOST POPULAR',
|
||||
BodyText: '<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>',
|
||||
Image: '',
|
||||
FooterText: ''
|
||||
"05_01_CSR_Quote_RearGlassNoFrontFit": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_Windshield+SideGlass": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_SideGlass": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_NoWiperFit": {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
badCustomValue: {
|
||||
EconomyServicePackage: {
|
||||
HeaderText: "Economy service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
Image: "",
|
||||
FooterText:
|
||||
"{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}",
|
||||
},
|
||||
StandardServicePackage: {
|
||||
HeaderText: "Standard service",
|
||||
SubheaderText: "MOST POPULAR",
|
||||
BodyText:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: "Premium service",
|
||||
SubheaderText: "",
|
||||
BodyText:
|
||||
"<ul><li>{if:custom:badCustomValue}DO NOT SHOW{end}New replacement windshield</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
Image: "",
|
||||
FooterText: "",
|
||||
},
|
||||
},
|
||||
PremiumServicePackage: {
|
||||
HeaderText: 'Premium service',
|
||||
SubheaderText: '',
|
||||
BodyText: '<ul><li>New replacement glass</li><li>Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}</li><li>Nationwide lifetime warranty</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>',
|
||||
Image: '',
|
||||
FooterText: ''
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const inputQuestionWidgetAnswers = {
|
||||
CashServicePackageQuestionWidget: {
|
||||
"Answers": [
|
||||
{
|
||||
"Name": "TierOne",
|
||||
"SubWidgetName": "EconomyServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierTwo",
|
||||
"SubWidgetName": "StandardServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierThree",
|
||||
"SubWidgetName": "PremiumServicePackage"
|
||||
}
|
||||
]
|
||||
},
|
||||
InsuranceServicePackageQuestionWidget: {
|
||||
"Answers": [
|
||||
{
|
||||
"Name": "TierOne",
|
||||
"SubWidgetName": "EconomyServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierTwo",
|
||||
"SubWidgetName": "StandardServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierThree",
|
||||
"SubWidgetName": "PremiumServicePackage"
|
||||
}
|
||||
]
|
||||
}
|
||||
CashServicePackageQuestionWidget: {
|
||||
Answers: [
|
||||
{
|
||||
Name: "TierOne",
|
||||
SubWidgetName: "EconomyServicePackage",
|
||||
},
|
||||
{
|
||||
Name: "TierTwo",
|
||||
SubWidgetName: "StandardServicePackage",
|
||||
},
|
||||
{
|
||||
Name: "TierThree",
|
||||
SubWidgetName: "PremiumServicePackage",
|
||||
},
|
||||
],
|
||||
},
|
||||
InsuranceServicePackageQuestionWidget: {
|
||||
Answers: [
|
||||
{
|
||||
Name: "TierOne",
|
||||
SubWidgetName: "EconomyServicePackage",
|
||||
},
|
||||
{
|
||||
Name: "TierTwo",
|
||||
SubWidgetName: "StandardServicePackage",
|
||||
},
|
||||
{
|
||||
Name: "TierThree",
|
||||
SubWidgetName: "PremiumServicePackage",
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
export const mockCmsContent = {
|
||||
"Result": [
|
||||
{
|
||||
"Name": "CashServicePackageQuestionWidget",
|
||||
"Model": {
|
||||
"QuestionText": "",
|
||||
"Answers": [
|
||||
{
|
||||
"Name": "TierOne",
|
||||
"Text": "",
|
||||
"SubText": "",
|
||||
"AnswerImageUrl": "",
|
||||
"SubWidgetName": "EconomyServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierTwo",
|
||||
"Text": "",
|
||||
"SubText": "",
|
||||
"AnswerImageUrl": "",
|
||||
"SubWidgetName": "StandardServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierThree",
|
||||
"Text": "",
|
||||
"SubText": "",
|
||||
"AnswerImageUrl": "",
|
||||
"SubWidgetName": "PremiumServicePackage"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "InsuranceServicePackageQuestionWidget",
|
||||
"Model": {
|
||||
"QuestionText": "",
|
||||
"Answers": [
|
||||
{
|
||||
"Name": "TierOne",
|
||||
"Text": "",
|
||||
"SubText": "",
|
||||
"AnswerImageUrl": "",
|
||||
"SubWidgetName": "EconomyServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierTwo",
|
||||
"Text": "",
|
||||
"SubText": "",
|
||||
"AnswerImageUrl": "",
|
||||
"SubWidgetName": "StandardServicePackage"
|
||||
},
|
||||
{
|
||||
"Name": "TierThree",
|
||||
"Text": "",
|
||||
"SubText": "",
|
||||
"AnswerImageUrl": "",
|
||||
"SubWidgetName": "PremiumServicePackage"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "EconomyServicePackage",
|
||||
"Model": {
|
||||
"HeaderText": "Economy service",
|
||||
"SubheaderText": "",
|
||||
"BodyText": "<ul><li>{if:globalState:order.damage.isRepair}Expert windshield repair{else}New replacement {if:globalState:getters.hasAnyNonWindshieldGlassParts}glass{else}windshield{end}{end}</li><li>{if:globalState:order.damage.isRepair}Exclusive resin sealant{else}Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}{end}</li><li>Nationwide lifetime {if:globalState:order.damage.isRepair}guarantee{else}warranty{end}</li></ul>",
|
||||
"Image": "",
|
||||
"FooterText": "{if:custom:frontWipersApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{else}{if:custom:rearWiperApplicableForTierTwo}New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.{end}{end}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "StandardServicePackage",
|
||||
"Model": {
|
||||
"HeaderText": "Standard service",
|
||||
"SubheaderText": "MOST POPULAR",
|
||||
"BodyText": "<ul><li>{if:globalState:order.damage.isRepair}Expert windshield repair{else}New replacement {if:globalState:getters.hasAnyNonWindshieldGlassParts}glass{else}windshield{end}{end}</li><li>{if:globalState:order.damage.isRepair}Exclusive resin sealant{else}Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}{end}</li><li>Nationwide lifetime {if:globalState:order.damage.isRepair}guarantee{else}warranty{end}</li><li>{if:custom:frontWipersApplicableForTierTwo}{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierTwo}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li></ul>",
|
||||
"Image": "",
|
||||
"FooterText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "PremiumServicePackage",
|
||||
"Model": {
|
||||
"HeaderText": "Premium service",
|
||||
"SubheaderText": "",
|
||||
"BodyText": "<ul><li>{if:globalState:order.damage.isRepair}Expert windshield repair{else}New replacement {if:globalState:getters.hasAnyNonWindshieldGlassParts}glass{else}windshield{end}{end}</li><li>{if:globalState:order.damage.isRepair}Exclusive resin sealant{else}Expert installation{if:custom:isRecalibrationOnOrder} and {textLink:EstimateRecalModal,recalibration}{end}{end}</li><li>Nationwide lifetime {if:globalState:order.damage.isRepair}guarantee{else}warranty{end}</li><li>{if:custom:frontWipersApplicableForTierThree}{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateFrontWiperModal,front wiper blades}{else}New {textLink:EstimateFrontWiperModal,wiper blades}{end}{end}</li><li>{if:custom:rearWiperApplicableForTierThree}New {textLink:EstimateRearWiperModal,rear wiper blade}{end}</li><li>{if:custom:rainDefenseApplicableForTierThree}{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment{end}</li></ul>",
|
||||
"Image": "",
|
||||
"FooterText": ""
|
||||
}
|
||||
}
|
||||
]};
|
||||
|
||||
export const expectedModifiedAnswers = {
|
||||
"05_01_CSR_Quote_Standard_Repair" : {
|
||||
"05_01_CSR_Quote_Standard_Repair": {
|
||||
tierOne: {
|
||||
value: 'TierOne',
|
||||
buttonLabel: 'Economy service',
|
||||
buttonLabelSubCopy: '',
|
||||
buttonBodyCopy: '<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li></ul>',
|
||||
buttonAuxillaryCopy: '$500.22',
|
||||
buttonFooterCopy: 'New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.'
|
||||
},
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li></ul>",
|
||||
buttonAuxillaryCopy: "$500.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: 'TierTwo',
|
||||
buttonLabel: 'Standard service',
|
||||
buttonLabelSubCopy: 'MOST POPULAR',
|
||||
buttonBodyCopy: '<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li></ul>',
|
||||
buttonAuxillaryCopy: '$585.90',
|
||||
buttonFooterCopy: ''
|
||||
},
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li></ul>",
|
||||
buttonAuxillaryCopy: "$585.90",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: 'TierThree',
|
||||
buttonLabel: 'Premium service',
|
||||
buttonLabelSubCopy: '',
|
||||
buttonBodyCopy: '<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>',
|
||||
buttonAuxillaryCopy: '$621.40',
|
||||
buttonFooterCopy: ''
|
||||
}
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>Expert windshield repair</li><li>Exclusive resin sealant</li><li>Nationwide lifetime guarantee</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$621.40",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_Recal": {
|
||||
tierOne: {
|
||||
value: 'TierOne',
|
||||
buttonLabel: 'Economy service',
|
||||
buttonLabelSubCopy: '',
|
||||
buttonBodyCopy: '<ul><li>New replacement windshield</li><li>Expert installation and {textLink:EstimateRecalModal,recalibration}</li><li>Nationwide lifetime warranty</li></ul>',
|
||||
buttonAuxillaryCopy: '$500.22',
|
||||
buttonFooterCopy: 'New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.'
|
||||
},
|
||||
tierTwo: {
|
||||
value: 'TierTwo',
|
||||
buttonLabel: 'Standard service',
|
||||
buttonLabelSubCopy: 'MOST POPULAR',
|
||||
buttonBodyCopy: '<ul><li>New replacement windshield</li><li>Expert installation and {textLink:EstimateRecalModal,recalibration}</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li></ul>',
|
||||
buttonAuxillaryCopy: '$585.90',
|
||||
buttonFooterCopy: ''
|
||||
},
|
||||
tierThree: {
|
||||
value: 'TierThree',
|
||||
buttonLabel: 'Premium service',
|
||||
buttonLabelSubCopy: '',
|
||||
buttonBodyCopy: '<ul><li>New replacement windshield</li><li>Expert installation and {textLink:EstimateRecalModal,recalibration}</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>',
|
||||
buttonAuxillaryCopy: '$621.40',
|
||||
buttonFooterCopy: ''
|
||||
}
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation and {textLink:EstimateRecalModal,recalibration}</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$500.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation and {textLink:EstimateRecalModal,recalibration}</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li></ul>",
|
||||
buttonAuxillaryCopy: "$585.90",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation and {textLink:EstimateRecalModal,recalibration}</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$621.40",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_RearGlass": {
|
||||
tierOne: {
|
||||
value: 'TierOne',
|
||||
buttonLabel: 'Economy service',
|
||||
buttonLabelSubCopy: '',
|
||||
buttonBodyCopy: '<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>',
|
||||
buttonAuxillaryCopy: '$350.22',
|
||||
buttonFooterCopy: 'New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.'
|
||||
},
|
||||
tierTwo: {
|
||||
value: 'TierTwo',
|
||||
buttonLabel: 'Standard service',
|
||||
buttonLabelSubCopy: 'MOST POPULAR',
|
||||
buttonBodyCopy: '<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li></ul>',
|
||||
buttonAuxillaryCopy: '$374.70',
|
||||
buttonFooterCopy: ''
|
||||
},
|
||||
tierThree: {
|
||||
value: 'TierThree',
|
||||
buttonLabel: 'Premium service',
|
||||
buttonLabelSubCopy: '',
|
||||
buttonBodyCopy: '<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,front wiper blades}</li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li><li></li></ul>',
|
||||
buttonAuxillaryCopy: '$460.38',
|
||||
buttonFooterCopy: ''
|
||||
}
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li></ul>",
|
||||
buttonAuxillaryCopy: "$374.70",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,front wiper blades}</li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li><li></li></ul>",
|
||||
buttonAuxillaryCopy: "$460.38",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
}
|
||||
"05_01_CSR_Quote_RearGlass+NonWindshield": {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li></ul>",
|
||||
buttonAuxillaryCopy: "$374.70",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,front wiper blades}</li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li><li></li></ul>",
|
||||
buttonAuxillaryCopy: "$460.38",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_RearGlass+Windshield": {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,front wiper blades}</li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li></ul>",
|
||||
buttonAuxillaryCopy: "$460.38",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,front wiper blades}</li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$495.88",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_RearGlassNoFrontFit": {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li></ul>",
|
||||
buttonAuxillaryCopy: "$374.70",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li>New {textLink:EstimateRearWiperModal,rear wiper blade}</li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$410.20",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_Windshield+SideGlass": {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy:
|
||||
"New wiper blades are not included with Economy service. Because chips can disrupt the glass surface, we recommend new wipers after a repair.",
|
||||
},
|
||||
tierTwo: {
|
||||
value: "TierTwo",
|
||||
buttonLabel: "Standard service",
|
||||
buttonLabelSubCopy: "MOST POPULAR",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li></ul>",
|
||||
buttonAuxillaryCopy: "$435.90",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$471.40",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_SideGlass": {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement glass</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li>New {textLink:EstimateFrontWiperModal,wiper blades}</li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$471.40",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
"05_01_CSR_Quote_NoWiperFit": {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$385.72",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
badCustomValue: {
|
||||
tierOne: {
|
||||
value: "TierOne",
|
||||
buttonLabel: "Economy service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation</li><li>Nationwide lifetime warranty</li></ul>",
|
||||
buttonAuxillaryCopy: "$350.22",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
tierThree: {
|
||||
value: "TierThree",
|
||||
buttonLabel: "Premium service",
|
||||
buttonLabelSubCopy: "",
|
||||
buttonBodyCopy:
|
||||
"<ul><li>New replacement windshield</li><li>Expert installation</li><li>Nationwide lifetime warranty</li><li></li><li></li><li>{textLink:EstimateRainDefenseModal,Rain Defense}™ treatment</li></ul>",
|
||||
buttonAuxillaryCopy: "$385.72",
|
||||
buttonFooterCopy: "",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,198 +1,112 @@
|
|||
import {shallowMount, mount} from "@vue/test-utils";
|
||||
import { shallowMount, mount } from "@vue/test-utils";
|
||||
import servicePackageQuestion from "./service-package-question";
|
||||
import { getMountOptions } from "@/helpers/unit-test-helper.js";
|
||||
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
||||
import {dispatch} from "@/store";
|
||||
import store from "@/store";
|
||||
import { mockCmsContent, expectedModifiedAnswers, mockProcessedCmsContent, inputQuestionWidgetAnswers } from "./service-package-question-test-helper"
|
||||
|
||||
import {
|
||||
expectedModifiedAnswers,
|
||||
mockProcessedCmsContent,
|
||||
inputQuestionWidgetAnswers,
|
||||
} from "./service-package-question-test-helper";
|
||||
|
||||
jest.mock("@/store", () => ({
|
||||
commit: jest.fn(),
|
||||
dispatch: jest.fn(),
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
glassToReplace: [
|
||||
{glassLocation: "Rear"}
|
||||
]
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true
|
||||
},
|
||||
// order: {
|
||||
// damage: {
|
||||
// isRepair: false
|
||||
// }
|
||||
// },
|
||||
state: { // I think I can drop this when everything is done, but it's needed for generating the expected stuff from cms-content-helper
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
},
|
||||
glassToReplace: [
|
||||
{glassLocation: "Rear"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
// describe("service-package-question.vue", () => {
|
||||
// it("should emit captured value", () => {
|
||||
// // Arrange
|
||||
// const wrapper = setupMocks({});
|
||||
// // Act
|
||||
// wrapper.componentVM.selectedValues = "newValue";
|
||||
|
||||
// // Assert
|
||||
// expect(wrapper.emitted()["update:modelValue"][0][0]).toEqual("newValue");
|
||||
// });
|
||||
// it("should return insurance answers from servicePackageAnswers when isInsuranceSelected = true", () => {
|
||||
// // Arrange
|
||||
// let modifiedProps = JSON.parse(JSON.stringify(mockProps)); // create a copy
|
||||
// modifiedProps['isInsuranceSelected'] = true;
|
||||
// const wrapper = setupMocks({props: modifiedProps});
|
||||
// //Arrange
|
||||
// expect(wrapper.vm.servicePackageAnswers[0].buttonLabel).toBe(mockCmsContent.insuranceGroupContentWidget.HeaderText);
|
||||
// });
|
||||
// it("should map cms content to a correctly customizied answers object", ()=> {
|
||||
// // Arrange
|
||||
// const expectedValue = mockCmsContent.cashAnswers.Answers[0].Name;
|
||||
// // This round about way of referencing the mocked content mimics how it is referenced by the code
|
||||
// // hopefully helpful for diagnosing why this test might be failing in the future
|
||||
// const subWidgetName = mockCmsContent.cashAnswers.Answers[0].SubWidgetName;
|
||||
// const cmsWidget = mockCmsContent[subWidgetName];
|
||||
// const expectedButtonLabel = cmsWidget.HeaderText;
|
||||
// const expectedButtonLabelSubCopy = cmsWidget.SubheaderText
|
||||
// const expectedButtonBodyCopy = cmsWidget.BodyText;
|
||||
// const expectedButtonAuxillaryCopy = "500.22"; // combined price of windshield + recal
|
||||
// const expectedButtonFooterCopy = cmsWidget.FooterText;
|
||||
// const wrapper = setupMocks({});
|
||||
// // Assert
|
||||
// const economyServicePackageAnswers = wrapper.vm.servicePackageAnswers[0];
|
||||
// expect(economyServicePackageAnswers.value).toBe(expectedValue);
|
||||
// expect(economyServicePackageAnswers.buttonLabel).toBe(expectedButtonLabel);
|
||||
// expect(economyServicePackageAnswers.buttonLabelSubCopy).toBe(expectedButtonLabelSubCopy);
|
||||
// expect(economyServicePackageAnswers.buttonBodyCopy).toBe(expectedButtonBodyCopy);
|
||||
// expect(economyServicePackageAnswers.buttonAuxillaryCopy.includes(expectedButtonAuxillaryCopy)).toBe(true);
|
||||
// expect(economyServicePackageAnswers.buttonFooterCopy).toBe(expectedButtonFooterCopy);
|
||||
// });
|
||||
// it("should not send a standard package answer if no VAPS are eligible for standard", () => {
|
||||
// // Arrange
|
||||
// let modifiedProps = JSON.parse(JSON.stringify(mockProps)); // create a copy
|
||||
// modifiedProps['lineItems'].splice(1,3);
|
||||
// const wrapper = setupMocks({props: modifiedProps});
|
||||
|
||||
// // Assert
|
||||
// expect(wrapper.vm.servicePackageAnswers.length).toEqual(2);
|
||||
// });
|
||||
// it("should not send a standard package answer if no VAPS are eligible for standard", () => {
|
||||
// // Arrange
|
||||
// let modifiedProps = JSON.parse(JSON.stringify(mockProps)); // create a copy
|
||||
// modifiedProps['lineItems'].splice(1,3);
|
||||
// const wrapper = setupMocks({props: modifiedProps});
|
||||
|
||||
// // Assert
|
||||
// expect(wrapper.vm.servicePackageAnswers.length).toEqual(2);
|
||||
// });
|
||||
// });
|
||||
describe("service-package-question.vue, matching business rules for package display", () => {
|
||||
// mock scenarios in figma:
|
||||
// https://www.figma.com/file/Spt9hBtGj8r8PFFGNIN3G5/New-Funnel?node-id=100%3A11383
|
||||
dispatch.mockImplementation(() => Promise.resolve({ data: mockCmsContent }));
|
||||
beforeEach( async ()=> {
|
||||
//processedCmsContent = await fetchCmsContentForPage('testPage');
|
||||
//console.log(processedCmsContent);
|
||||
describe("service-package-question.vue", () => {
|
||||
beforeEach(async () => {
|
||||
processedCmsContent = inputQuestionWidgetAnswers;
|
||||
mockMixin = {
|
||||
methods: {
|
||||
getCmsContent: jest.fn((widgetName, cmsFieldName) => {
|
||||
return processedCmsContent[widgetName][cmsFieldName];
|
||||
})
|
||||
}),
|
||||
},
|
||||
};
|
||||
mockProps = {
|
||||
'modelValue': 'initialValue',
|
||||
'isInsuranceSelected': false,
|
||||
'insuranceCmsWidgetName': 'InsuranceServicePackageQuestionWidget',
|
||||
'cashCmsWidgetName': 'CashServicePackageQuestionWidget',
|
||||
'availableLineItems': [
|
||||
modelValue: "initialValue",
|
||||
isInsuranceSelected: false,
|
||||
insuranceCmsWidgetName: "InsuranceServicePackageQuestionWidget",
|
||||
cashCmsWidgetName: "CashServicePackageQuestionWidget",
|
||||
availableLineItems: [
|
||||
{
|
||||
partNumber : "001",
|
||||
Description : "Windshield with Recal",
|
||||
partType : "Windshield",
|
||||
Quantity : "1",
|
||||
BasePartNumber : "001",
|
||||
Color : "Green",
|
||||
CanSafeliteRecalibrate: true,
|
||||
price : 350.22
|
||||
partNumber: "001",
|
||||
Description: "Windshield with Recal",
|
||||
partType: "Windshield",
|
||||
Quantity: "1",
|
||||
BasePartNumber: "001",
|
||||
Color: "Green",
|
||||
CanSafeliteRecalibrate: true,
|
||||
price: 350.22,
|
||||
},
|
||||
{
|
||||
"partNumber": "SBB16",
|
||||
"description": "SAFELITE BEAM BLADE 16",
|
||||
"partType": "FRONT WIPER",
|
||||
"price": 32.64,
|
||||
partNumber: "RAIN DEFENSE",
|
||||
description: null,
|
||||
partType: "RAIN DEFENSE",
|
||||
price: 35.5,
|
||||
},
|
||||
{
|
||||
"partNumber": "SBB26",
|
||||
"description": "SAFELITE BEAM BLADE 26",
|
||||
"partType": "FRONT WIPER",
|
||||
"price": 53.04,
|
||||
},
|
||||
{
|
||||
"partNumber": "SBBR12A",
|
||||
"description": "SAFELITE REAR BLADE 12A",
|
||||
"partType": "REAR WIPER",
|
||||
"price": 24.48,
|
||||
},
|
||||
{
|
||||
"partNumber": "RAIN DEFENSE",
|
||||
"description": null,
|
||||
"partType": "RAIN DEFENSE",
|
||||
"price": 35.50,
|
||||
},
|
||||
]
|
||||
],
|
||||
};
|
||||
})
|
||||
it("should match the 05_01_CSR_Quote_Standard_Repair mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_Standard_Repair";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
});
|
||||
it("should emit captured value", () => {
|
||||
// Arrange
|
||||
const wrapper = setupMocks({});
|
||||
// Act
|
||||
wrapper.componentVM.selectedValues = "newValue";
|
||||
|
||||
// Assert
|
||||
expect(wrapper.emitted()["update:modelValue"][0][0]).toEqual("newValue");
|
||||
});
|
||||
it("should have the correct insurance pricing text when insurance is selected", () => {
|
||||
// Arrange
|
||||
mockProps.isInsuranceSelected = true;
|
||||
const wrapper = setupMocks({});
|
||||
// Act
|
||||
|
||||
// Assert
|
||||
expect(
|
||||
wrapper.vm.servicePackageAnswers[0].buttonAuxillaryCopy.includes("As little as")
|
||||
).toBe(true);
|
||||
});
|
||||
it("should return [] from nullSafeAvailableLineItems and not error out if availableLineItems is null", () => {
|
||||
// Arrange
|
||||
mockProps.availableLineItems = null;
|
||||
const wrapper = setupMocks({});
|
||||
// Act
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.nullSafeAvailableLineItems).toEqual([]);
|
||||
});
|
||||
it("should return a null servicePackageAnswers if the cmsContent is falsy", () => {
|
||||
// Arrange
|
||||
mockMixin = {
|
||||
methods: {
|
||||
getCmsContent: jest.fn((widgetName, cmsFieldName) => {
|
||||
return null;
|
||||
}),
|
||||
},
|
||||
};
|
||||
const wrapper = setupMocks({});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[0], expectedModifiedAnswers[packageNameKey].tierOne);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[1], expectedModifiedAnswers[packageNameKey].tierTwo);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[2], expectedModifiedAnswers[packageNameKey].tierThree);
|
||||
expect(wrapper.vm.servicePackageAnswers).toBe(null);
|
||||
});
|
||||
it.only("should match the 05_01_CSR_Quote_Recal mock", () => {
|
||||
it("should treat an undefined 'getCustomValueFromString' as a false value and not error out", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_Recal";
|
||||
mockProps.availableLineItems.push(
|
||||
{
|
||||
partNumber : "RECAL STATIC",
|
||||
Description : "Recalibration",
|
||||
partType : "recalibration",
|
||||
Quantity : "1",
|
||||
price : 150.00,
|
||||
},
|
||||
);
|
||||
const packageNameKey = "badCustomValue";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
const wrapper = setupMocks({
|
||||
customMountOptions: {
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
glassToReplace: [
|
||||
{glassLocation: "Windshield"}
|
||||
]
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Windshield" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: false
|
||||
hasAnyNonWindshieldGlassParts: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -200,26 +114,413 @@ describe("service-package-question.vue, matching business rules for package disp
|
|||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[0], expectedModifiedAnswers[packageNameKey].tierOne);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[1], expectedModifiedAnswers[packageNameKey].tierTwo);
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer should not be created
|
||||
expect(wrapper.vm.servicePackageAnswers.length).toBe(2);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[2], expectedModifiedAnswers[packageNameKey].tierThree);
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
});
|
||||
describe("service-package-question.vue, matching business rules for package display", () => {
|
||||
// mock scenarios in figma:
|
||||
// https://www.figma.com/file/Spt9hBtGj8r8PFFGNIN3G5/New-Funnel?node-id=100%3A11383
|
||||
beforeEach(async () => {
|
||||
processedCmsContent = inputQuestionWidgetAnswers;
|
||||
mockMixin = {
|
||||
methods: {
|
||||
getCmsContent: jest.fn((widgetName, cmsFieldName) => {
|
||||
return processedCmsContent[widgetName][cmsFieldName];
|
||||
}),
|
||||
},
|
||||
};
|
||||
mockProps = {
|
||||
modelValue: "initialValue",
|
||||
isInsuranceSelected: false,
|
||||
insuranceCmsWidgetName: "InsuranceServicePackageQuestionWidget",
|
||||
cashCmsWidgetName: "CashServicePackageQuestionWidget",
|
||||
availableLineItems: [
|
||||
{
|
||||
partNumber: "001",
|
||||
Description: "Windshield with Recal",
|
||||
partType: "Windshield",
|
||||
Quantity: "1",
|
||||
BasePartNumber: "001",
|
||||
Color: "Green",
|
||||
CanSafeliteRecalibrate: true,
|
||||
price: 350.22,
|
||||
},
|
||||
{
|
||||
partNumber: "RAIN DEFENSE",
|
||||
description: null,
|
||||
partType: "RAIN DEFENSE",
|
||||
price: 35.5,
|
||||
},
|
||||
],
|
||||
};
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_Standard_Repair mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_Standard_Repair";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: true,
|
||||
glassToReplace: [],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_Recal mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_Recal";
|
||||
mockProps.availableLineItems.push(recalLineItem);
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Windshield" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_RearGlass mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_RearGlass";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
const wrapper = setupMocks({});
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(rearWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Rear" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_RearGlass+NonWindshield mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_RearGlass+NonWindshield";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(rearWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [
|
||||
{ glassLocation: "Rear" },
|
||||
{ glassLocation: "Driver" },
|
||||
],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
//console.log(wrapper.vm.servicePackageAnswers);
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[0], expectedModifiedAnswers[packageNameKey].tierOne);
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[1], expectedModifiedAnswers[packageNameKey].tierTwo);
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(wrapper.vm.servicePackageAnswers[2], expectedModifiedAnswers[packageNameKey].tierThree);
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_RearGlass+Windshield mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_RearGlass+Windshield";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(rearWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [
|
||||
{ glassLocation: "Rear" },
|
||||
{ glassLocation: "Windshield" },
|
||||
],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_RearGlassNoFrontFit mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_RearGlassNoFrontFit";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
mockProps.availableLineItems.push(rearWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Rear" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_Windshield+SideGlass mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_Windshield+SideGlass";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(rearWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [
|
||||
{ glassLocation: "Driver" },
|
||||
{ glassLocation: "Windshield" },
|
||||
],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierTwo
|
||||
);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[2],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_SideGlass mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_SideGlass";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
mockProps.availableLineItems.push(driverFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(passengerFrontWiperLineItem);
|
||||
mockProps.availableLineItems.push(rearWiperLineItem);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Driver" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer should not be created
|
||||
expect(wrapper.vm.servicePackageAnswers.length).toBe(2);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
it("should match the 05_01_CSR_Quote_NoWiperFit mock", () => {
|
||||
// Arrange
|
||||
const packageNameKey = "05_01_CSR_Quote_NoWiperFit";
|
||||
Object.assign(processedCmsContent, mockProcessedCmsContent[packageNameKey]);
|
||||
const wrapper = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Windshield" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Assert
|
||||
// economy answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[0],
|
||||
expectedModifiedAnswers[packageNameKey].tierOne
|
||||
);
|
||||
// standard answer should not be created
|
||||
expect(wrapper.vm.servicePackageAnswers.length).toBe(2);
|
||||
// premium answer
|
||||
runPackageAnswerExpectStatements(
|
||||
wrapper.vm.servicePackageAnswers[1],
|
||||
expectedModifiedAnswers[packageNameKey].tierThree
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -230,26 +531,65 @@ function runPackageAnswerExpectStatements(servicePackageAnswer, expectedOutput)
|
|||
expect(servicePackageAnswer.buttonFooterCopy).toBe(expectedOutput.buttonFooterCopy);
|
||||
}
|
||||
|
||||
function setupMocks({ customMountOptions, props = mockProps }) {
|
||||
const mountOptions = getMountOptions({
|
||||
...customMountOptions
|
||||
});
|
||||
console.log(mountOptions.global);
|
||||
function setupMocks({ mountOptionsMockData, props = mockProps }) {
|
||||
var mountOptionsMockDataDefault = {
|
||||
store: {
|
||||
getters: {
|
||||
order: {
|
||||
damage: {
|
||||
isRepair: false,
|
||||
glassToReplace: [{ glassLocation: "Windshield" }],
|
||||
},
|
||||
},
|
||||
hasAnyNonWindshieldGlassParts: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
mountOptionsMockData = Object.assign(mountOptionsMockDataDefault, mountOptionsMockData);
|
||||
const mountOptions = getMountOptions(mountOptionsMockData);
|
||||
|
||||
// Modify/augment default mount options
|
||||
mountOptions.global.mocks["$store"] = store;
|
||||
mountOptions.global.mixins = [mockMixin];
|
||||
mountOptions.propsData = props;
|
||||
const wrapper = shallowMount(servicePackageQuestion, mountOptions);
|
||||
|
||||
return wrapper;
|
||||
}
|
||||
///////////////
|
||||
// Constants //
|
||||
///////////////
|
||||
///////////////
|
||||
// Constants //
|
||||
///////////////
|
||||
|
||||
let processedCmsContent;
|
||||
|
||||
let mockMixin;
|
||||
|
||||
let mockProps;
|
||||
let mockProps;
|
||||
|
||||
let recalLineItem = {
|
||||
partNumber: "RECAL STATIC",
|
||||
Description: "Recalibration",
|
||||
partType: "recalibration",
|
||||
Quantity: "1",
|
||||
price: 150.0,
|
||||
};
|
||||
|
||||
let driverFrontWiperLineItem = {
|
||||
partNumber: "SBB16",
|
||||
description: "SAFELITE BEAM BLADE 16",
|
||||
partType: "FRONT WIPER",
|
||||
price: 32.64,
|
||||
};
|
||||
|
||||
let passengerFrontWiperLineItem = {
|
||||
partNumber: "SBB26",
|
||||
description: "SAFELITE BEAM BLADE 26",
|
||||
partType: "FRONT WIPER",
|
||||
price: 53.04,
|
||||
};
|
||||
|
||||
let rearWiperLineItem = {
|
||||
partNumber: "SBBR12A",
|
||||
description: "SAFELITE REAR BLADE 12A",
|
||||
partType: "REAR WIPER",
|
||||
price: 24.48,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ describe("service-package-radio.vue", () => {
|
|||
const outputHtml = wrapper.html();
|
||||
|
||||
// Assert
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps['buttonLabel']));
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonLabel"]));
|
||||
});
|
||||
|
||||
it("Should include buttonLabelAuxillaryCopy in html", async () => {
|
||||
|
|
@ -30,7 +30,7 @@ describe("service-package-radio.vue", () => {
|
|||
const outputHtml = wrapper.html();
|
||||
|
||||
// Assert
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps['buttonLabelAuxillaryCopy']));
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonLabelAuxillaryCopy"]));
|
||||
});
|
||||
|
||||
it("Should include buttonLabelSubCopy in html", async () => {
|
||||
|
|
@ -45,7 +45,7 @@ describe("service-package-radio.vue", () => {
|
|||
const outputHtml = wrapper.html();
|
||||
|
||||
// Assert
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps['buttonLabelSubCopy']));
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonLabelSubCopy"]));
|
||||
});
|
||||
it("Should include buttonFooterCopy in html", async () => {
|
||||
// Arrange
|
||||
|
|
@ -59,7 +59,7 @@ describe("service-package-radio.vue", () => {
|
|||
const outputHtml = wrapper.html();
|
||||
|
||||
// Assert
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps['buttonFooterCopy']));
|
||||
expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonFooterCopy"]));
|
||||
});
|
||||
it("Should get 5 strings from getArrayOfListItemsFromRawCmsCopy when provided with a <ul><li>...</li>(x5)</ul> buttonBodyCopy", async () => {
|
||||
// Arrange
|
||||
|
|
@ -81,21 +81,26 @@ describe("service-package-radio.vue", () => {
|
|||
propsData: mockProps,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
// Act
|
||||
const results = wrapper.vm.getArrayOfListItemsFromRawCmsCopy(wrapper.vm.buttonBodyCopy);
|
||||
|
||||
// Assert
|
||||
const fileredResults = results.filter(result => {
|
||||
return result.includes("<ul>") || result.includes("</ul>") || result.includes("<li>") || result.includes("</li>")
|
||||
})
|
||||
const fileredResults = results.filter((result) => {
|
||||
return (
|
||||
result.includes("<ul>") ||
|
||||
result.includes("</ul>") ||
|
||||
result.includes("<li>") ||
|
||||
result.includes("</li>")
|
||||
);
|
||||
});
|
||||
expect(fileredResults.length).toBe(0);
|
||||
|
||||
});
|
||||
it("Should get 5 strings from getArrayOfListItemsFromRawCmsCopy when buttonBodyCopy has 6 total <li>...</li>, but one is empty ", async () => {
|
||||
// Arrange
|
||||
const moddedProps = mockProps;
|
||||
moddedProps['buttonBodyCopy'] = "<ul><li>buttonBodyCopy test copy</li><li>2</li><li>3</li><li>4</li><li>5</li><li></li></ul>";
|
||||
moddedProps["buttonBodyCopy"] =
|
||||
"<ul><li>buttonBodyCopy test copy</li><li>2</li><li>3</li><li>4</li><li>5</li><li></li></ul>";
|
||||
let { wrapper } = setupMocks({
|
||||
mountOptionsMockData: {
|
||||
propsData: moddedProps,
|
||||
|
|
@ -114,9 +119,10 @@ const mockProps = {
|
|||
buttonLabel: "buttonLabel test copy",
|
||||
buttonLabelAuxillaryCopy: "buttonLabelAuxillaryCopy test copy",
|
||||
buttonLabelSubCopy: "buttonLabelSubCopy test copy",
|
||||
buttonBodyCopy: "<ul><li>buttonBodyCopy test copy</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>",
|
||||
buttonFooterCopy: "buttonFooterCopy test copy"
|
||||
}
|
||||
buttonBodyCopy:
|
||||
"<ul><li>buttonBodyCopy test copy</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>",
|
||||
buttonFooterCopy: "buttonFooterCopy test copy",
|
||||
};
|
||||
|
||||
function setupMocks({ mountOptionsMockData = {} }) {
|
||||
const wrapper = mount(servicePackageRadio, {
|
||||
|
|
|
|||
Loading…
Reference in a new issue