import { useMainStore } from '@/store'; import { createApp } from 'vue'; import { createPinia } from "pinia"; import App from '@/App.vue'; describe("Store", () => { let store; const vueApp = createApp(App); const pinia = createPinia(); vueApp.use(pinia); beforeEach(() => { store = useMainStore(); store.applicationUser.eventBus = []; jest.resetAllMocks(); }) it("Should Store Vehicle Year", () => { let testYear = "2001"; store.updateVehicleYear(testYear); expect(store.order.vehicle.year).toEqual(testYear); }); it("Should add events to the bus", () => { let event = { category: "TestCategory", subCategory: "TestSubCategory", eventValue: { isDismissible: true, messageCopy: "You can get a quote by starting on this page.", messageHeadline: "We're sorry, something went wrong.", type: "testType", }, }; store.addEventToBus(event); expect(store.applicationUser.eventBus[0]).toEqual(event); }); it("Should remove events from the bus", () => { let event = { category: "TestCategory", subCategory: "TestSubCategory", eventValue: { isDismissible: true, messageCopy: "You can get a quote by starting on this page.", messageHeadline: "We're sorry, something went wrong.", type: "testType", }, }; store.addEventToBus(event); expect(store.applicationUser.eventBus.length).toBe(1); store.removeEventFromBus({ category: event.category, subCategory: event.subCategory }) expect(store.applicationUser.eventBus.length).toBe(0); }); it("Should return correct event using the getter function eventBusItem", () => { let event = { category: "TestCategory", subCategory: "TestSubCategory", eventValue: { isDismissible: true, messageCopy: "You can get a quote by starting on this page.", messageHeadline: "We're sorry, something went wrong.", type: "testType", }, }; store.addEventToBus(event); const actual = store.eventBusItem(event.category, event.subCategory) expect(actual).toEqual(event.eventValue); }); });