import { getDamageString, isGlassAvailableForCarId } from "./damage-helper"; import store from "@/store"; // Mock basemixin. jest.mock("@/mixins/base-mixin.js", () => ({ methods: { dispatchStoreAction: jest.fn().mockImplementation(() => { return { data: { windshieldOptions: { availableReplacementOptions: ["windshield"] }, }, }; }), dispatchStoreActionWithLogging: jest.fn().mockImplementation(() => { return { data: { windshieldOptions: { availableReplacementOptions: ["windshield"] }, }, }; }), }, })); describe("damage-helper.js", () => { it("Should return match when multiple selected damage options are in the store", () => { // Arrange / Act store.getters.damage.glassToReplace = [ { glassLocation: "Windshield", glassName: "windshield" }, { glassLocation: "Passenger", glassName: "sideWindow" }, ]; const damage = getDamageString(); // Assert expect(damage).toEqual("match"); }); }); describe("damage-helper.js", () => { it("Should return windshield when Windshield is the only selected damage option in the store", () => { // Arrange / Act store.getters.damage.glassToReplace = [ { glassLocation: "Windshield", glassName: "windshield" }, ]; const damage = getDamageString(); // Assert expect(damage).toEqual("windshield"); }); }); describe("damage-helper.js", () => { it("Should return side window when Driver or Passenger is the only selected damage option in the store", () => { // Arrange / Act store.getters.damage.glassToReplace = [ { glassLocation: "Passenger", glassName: "sideWindow" }, ]; const damage = getDamageString(); // Assert expect(damage).toEqual("side window"); }); }); describe("damage-helper.js", () => { it("Should return rear window when Rear is the only selected damage option in the store", () => { // Arrange / Act store.getters.damage.glassToReplace = [{ glassLocation: "Rear", glassName: "rear" }]; const damage = getDamageString(); // Assert expect(damage).toEqual("rear window"); }); }); describe("damage-helper.js", () => { it("Should return true if no mismatches between each array exist", async () => { // Arrange store.getters.damage.glassToReplace = [ { glassLocation: "Windshield", glassName: "windshield" }, ]; // Act const isGlassAvailable = await isGlassAvailableForCarId("id", "testName"); // Assert expect(isGlassAvailable).toEqual(true); }); }); describe("damage-helper.js", () => { it("Should return false if any mismatches between each array exist", async () => { // Arrange store.getters.damage.glassToReplace = [ { glassLocation: "Windshield", glassName: "sideWindow" }, ]; const isGlassAvailable = await isGlassAvailableForCarId("id", "testName"); // Assert expect(isGlassAvailable).toEqual(false); }); });