diff --git a/src/constants/query-strings.js b/src/constants/query-strings.js index 576d1e5b..81d5ba7d 100644 --- a/src/constants/query-strings.js +++ b/src/constants/query-strings.js @@ -9,6 +9,7 @@ const queryStrings = Object.freeze({ CARD_TYPE: 'sgcardtype', DISPLAY_PAY_IN_ADVANCE_ALERT: 'displayPayInAdvanceAlert', ERROR: 'error', + TOKEN: 'token', LAST_FOUR: 'last_four', REFERENCE_NUMBER: 'req_reference_number', REFERRAL_SEQ_NUM: 'referralseqnum', diff --git a/src/helpers/order-helper.js b/src/helpers/order-helper.js index 33e7d3c4..97b685cd 100644 --- a/src/helpers/order-helper.js +++ b/src/helpers/order-helper.js @@ -4,8 +4,8 @@ import { updateOrCreateISSCookie } from '@/helpers/cookie-helper'; /* Encapsulates asynchronous Save Session logic inside a promise to allow for Save Session queuing */ -async function saveSessionHelper(store) { - const savedSessionInfo = await store.saveSession(); +async function saveSessionHelper(store, { submitAfterSave }) { + const savedSessionInfo = await store.saveSession({ submitAfterSave }); if (savedSessionInfo) { store.setSaveSessionInfo(savedSessionInfo.data); } @@ -17,11 +17,11 @@ async function saveSessionHelper(store) { This will also set Referral information in the store after saving, and then update the cookie. To force synchronous behavior pass in 'true' for shouldAwaitSaveSessionQueue */ -export async function saveSession({ shouldAwaitSaveSessionQueue = false }) { +export async function saveSession({ shouldAwaitSaveSessionQueue = false, submitAfterSave = false }) { const store = useMainStore(); const saveSessionPromise = store.applicationUser.saveSessionPromise - ? store.applicationUser.saveSessionPromise.then(() => saveSessionHelper(store)) - : saveSessionHelper(store); + ? store.applicationUser.saveSessionPromise.then(() => saveSessionHelper(store, { submitAfterSave })) + : saveSessionHelper(store, { submitAfterSave }); store.setSaveSessionPromise(saveSessionPromise); diff --git a/src/iss-components/cart-dropdown/__snapshots__/cart-dropdown.spec.js.snap b/src/iss-components/cart-dropdown/__snapshots__/cart-dropdown.spec.js.snap index df4a8ae4..f635c1f9 100644 --- a/src/iss-components/cart-dropdown/__snapshots__/cart-dropdown.spec.js.snap +++ b/src/iss-components/cart-dropdown/__snapshots__/cart-dropdown.spec.js.snap @@ -5,5 +5,12 @@ Object { "baseServiceLineItems": Array [], "deductible": null, "isExpanded": false, + "widget": Object { + "amountDue": "AmountDueTextWidget", + "basePrice": "BasePriceWidget", + "deductible": "DeductibleWidget", + "salesTax": "SalesTaxWidget", + "subtotal": "SubtotalWidget", + }, } `; diff --git a/src/iss-components/cart-dropdown/cart-dropdown.spec.js b/src/iss-components/cart-dropdown/cart-dropdown.spec.js index 16a35951..8ef2cd50 100644 --- a/src/iss-components/cart-dropdown/cart-dropdown.spec.js +++ b/src/iss-components/cart-dropdown/cart-dropdown.spec.js @@ -121,6 +121,58 @@ describe('cart-dropdown component', () => { // Assert expect(cartBasePrice.exists()).toBeTruthy(); }); + test('cart footer', () => { + // Arrange + const reference = '#cart-footer'; + const isExpanded = true; + const initialData = { isExpanded }; + const { wrapper } = getMountedComponent({}, {}, initialData); + + // Act + const cartFooter = wrapper.find(reference); + + // Assert + expect(cartFooter.exists()).toBeTruthy(); + }); + test('subtotal', () => { + // Arrange + const reference = '#cart-subtotal'; + const isExpanded = true; + const initialData = { isExpanded }; + const { wrapper } = getMountedComponent({}, {}, initialData); + + // Act + const subtotal = wrapper.find(reference); + + // Assert + expect(subtotal.exists()).toBeTruthy(); + }); + test('tax', () => { + // Arrange + const reference = '#cart-sales-tax'; + const isExpanded = true; + const initialData = { isExpanded }; + const { wrapper } = getMountedComponent({}, {}, initialData); + + // Act + const salesTax = wrapper.find(reference); + + // Assert + expect(salesTax.exists()).toBeTruthy(); + }); + test('bottom amount due', () => { + // Arrange + const reference = '#bottom-amount-due'; + const isExpanded = true; + const initialData = { isExpanded }; + const { wrapper } = getMountedComponent({}, {}, initialData); + + // Act + const bottomAmountDue = wrapper.find(reference); + + // Assert + expect(bottomAmountDue.exists()).toBeTruthy(); + }); }); describe('does not display', () => { test('cart deductible when showDeductibleLineItem is false', () => { diff --git a/src/iss-components/cart-dropdown/cart-dropdown.vue b/src/iss-components/cart-dropdown/cart-dropdown.vue index f636e511..498999bf 100644 --- a/src/iss-components/cart-dropdown/cart-dropdown.vue +++ b/src/iss-components/cart-dropdown/cart-dropdown.vue @@ -1,5 +1,5 @@