diff --git a/src/components/UserProfileComponents/UserItems.vue b/src/components/UserProfileComponents/UserItems.vue index 4d48615de29e964a17829753e0b7f0db8ee3c6f0..3c19c7a007ed8589c0f8c86f479dfcb03086d25a 100644 --- a/src/components/UserProfileComponents/UserItems.vue +++ b/src/components/UserProfileComponents/UserItems.vue @@ -72,7 +72,6 @@ </li> <li> <button - @click="goToDeleteItem(item.listingID)" class="deleteButton block py-2 px-4 text-sm text-error-medium hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white" > @@ -198,14 +197,14 @@ </template> <script> import TripleDotButton from "@/components/BaseComponents/TripleDotButton.vue"; -import { GetUserListings, getItemPictures } from "@/utils/apiutil"; import ColoredButton from "@/components/BaseComponents/ColoredButton.vue"; - -import UserService from "@/services/user.service"; import ItemCard from "@/components/ItemComponents/ItemCard.vue"; import PaginationTemplate from "@/components/BaseComponents/PaginationTemplate"; import CustomFooterModal from "@/components/BaseComponents/CustomFooterModal.vue"; +import UserService from "@/services/user.service"; +import listingService from "@/services/listing.service"; + export default { name: "UserItems", components: { @@ -268,10 +267,12 @@ export default { } }, getUserListingsFromAPI: async function () { - this.items = await GetUserListings(); + this.items = await UserService.getUserListings(); for (var i = 0; i < this.items.length; i++) { this.items[i].toggle = false; - let images = await getItemPictures(this.items[i].listingID); + let images = await listingService.getItemPictures( + this.items[i].listingID + ); if (images.length > 0) { this.items[i].img = images[0].picture; } diff --git a/tests/unit/component-tests/user-component-tests/user-items.spec.js b/tests/unit/component-tests/user-component-tests/user-items.spec.js index afddd7eac0bbe777ddaf29aa233de09d98c3502a..b077c14482cad1d98a076ab88a5bf6afcf6a5cea 100644 --- a/tests/unit/component-tests/user-component-tests/user-items.spec.js +++ b/tests/unit/component-tests/user-component-tests/user-items.spec.js @@ -1,44 +1,55 @@ import { mount } from "@vue/test-utils"; import UserItems from "@/components/UserProfileComponents/UserItems.vue"; -import axios from "axios"; +import UserService from "@/services/user.service"; +import ListingService from "@/services/listing.service"; -let mockRouter; -jest.mock("@/utils/apiutil", () => { - return { - getItemPictures: () => { - return new Promise((resolve) => { - resolve([]); - }); - }, - GetUserListings: () => { - return new Promise((resolve) => { - resolve([ { - listingID: 1, - img: "", - address: "Veien", - title: "Matboks", - pricePerDay: 50, - toggle: false, - },]); - }) - } - }; +jest.mock("@/services/user.service", () => jest.fn()); +jest.mock("@/services/listing.service", () => jest.fn()); + +UserService.getUserListings = jest.fn(() => { + return new Promise((resolve) => { + resolve([ + { + listingID: 1, + img: "", + address: "Veien", + title: "Matboks", + pricePerDay: 50, + toggle: false, + }, + ]); + }); +}); + +UserService.setListingToDeleted = jest.fn(() => { + return new Promise((resolve) => { + resolve(); + }); +}); + +ListingService.getItemPictures = jest.fn(() => { + return new Promise((resolve) => { + resolve([]); + }); }); -jest.mock("axios") +jest.mock("axios"); + +let mockRouter; let wrapper; describe("UserItems component", () => { mockRouter = { - push: jest.fn() - } + push: jest.fn(), + go: jest.fn(), + }; beforeEach(() => { wrapper = mount(UserItems, { - global:{ - mocks:{ - $router: mockRouter - } + global: { + mocks: { + $router: mockRouter, + }, }, data() { return { @@ -60,40 +71,35 @@ describe("UserItems component", () => { expect(wrapper.find("#headline").text()).toMatch("Mine gjenstander"); }); - it("Check if pressing 'Rediger gjenstand' pushes to right path", async () => { const dotButton = wrapper.findAll(".DotButton")[0]; dotButton.trigger("click"); - const editButton = wrapper.findAll(".editButton")[0]; + const editButton = wrapper.findAll(".editButton")[0]; expect(editButton.text()).toBe("Rediger gjenstand"); editButton.trigger("click"); await wrapper.vm.$nextTick(); expect(mockRouter.push).toBeCalled(); expect(mockRouter.push).toBeCalledWith("/item/1/edit"); }); - + it("Check if delete is called", async () => { const dotButton = wrapper.findAll(".DotButton")[0]; dotButton.trigger("click"); await wrapper.vm.$nextTick(); - const deleteButton = wrapper.findAll(".deleteButton")[0]; + const deleteButton = wrapper.findAll(".deleteButton")[0]; expect(deleteButton.text()).toBe("Slett gjenstand"); - deleteButton.trigger("click"); + deleteButton.trigger("click"); await wrapper.vm.$nextTick(); const confirmButton = wrapper.findAll(".confirmDelete")[0]; expect(confirmButton.text()).toBe("Slett"); - - //Feiler herfra - // confirmButton.trigger("click"); - // await wrapper.vm.$nextTick(); + //Feiler herfra + confirmButton.trigger("click"); + await wrapper.vm.$nextTick(); - // expect(axios.delete).toBeCalledTimes(1); - // expect(mockRouter.go).toBeCalled(); + expect(ListingService.getItemPictures).toBeCalled(); + expect(mockRouter.go).toBeCalled(); }); - - - });