Skip to content
Snippets Groups Projects
Commit 6642c038 authored by Håkon Eilertsen Røskaft's avatar Håkon Eilertsen Røskaft
Browse files

Merge branch 'testing2' into 'main'

Testing2

See merge request !156
parents ac5aa75e 1eb577eb
No related branches found
No related tags found
1 merge request!156Testing2
Pipeline #182369 failed
......@@ -100,12 +100,14 @@ export default {
null,
{ headers: tokenHeader() }
);
this.$router.go(0);
},
async reject() {
await axios.delete(
process.env.VUE_APP_BASEURL + `renting/${this.rent.rentId}/delete`,
{ headers: tokenHeader() }
);
this.$router.go(0);
},
async getImage() {
let images = await getItemPictures(this.rent.listingId);
......
......@@ -75,6 +75,7 @@
<p class="text-xl font-semibold text-gray-900">
Total pris: {{ totPrice }} kr
</p>
<p v-if="error" style="color: red;">Dato er påkrevd</p>
<button
class="px-4 py-2 font-medium tracking-wide text-white capitalize transition-colors duration-200 transform bg-gray-500 rounded-md focus:outline-none focus:ring focus:ring-opacity-80"
v-bind:class="{ colorChange: allowForRent }"
......@@ -107,6 +108,7 @@ export default {
data() {
return {
confirm: false,
error: false,
item: {
listingID: 0,
title: "",
......@@ -153,6 +155,8 @@ export default {
if (this.allowForRent) {
this.confirm = true;
this.createPushItem();
} else {
this.error = true;
}
},
createPushItem() {
......@@ -212,11 +216,12 @@ export default {
this.rentingEndDate = dateOfsomthing.endDate;
this.calculateTotPrice();
this.allowForRent = true;
this.error = false;
}
},
calculateTotPrice() {
let amountOfDays = this.rentingEndDate - this.rentingStartDate;
amountOfDays = amountOfDays / 86400000;
amountOfDays = Math.ceil(amountOfDays / 86400000);
this.totPrice = this.item.pricePerDay * amountOfDays;
},
},
......
......@@ -27,6 +27,9 @@ jest.mock("axios");
describe("RentalMessage.vue", () => {
let wrapper;
const mockRouter = {
go: jest.fn(),
}
beforeEach(() => {
wrapper = shallowMount(RentalMessage, {
propsData: {
......@@ -47,6 +50,11 @@ describe("RentalMessage.vue", () => {
deleted: false,
},
},
global: {
mocks: {
$router: mockRouter,
},
}
});
});
......
import { shallowMount } from "@vue/test-utils";
import ItemInfo from "@/components/RentingComponents/ItemInfo.vue";
const mockMethod = jest.spyOn(ItemInfo.methods, 'sendToConfirm')
const mockCreatePush = jest.spyOn(ItemInfo.methods, 'createPushItem')
jest.mock("@/utils/apiutil", () => {
return {
getItem: () => {
return new Promise((resolve) => {
resolve({
listingID: 0,
title: "Title",
description: "Description",
pricePerDay: 100,
address: "ABC ROAD 3",
userID: 1,
categoryNames: [],
communityIDs: [],
});
});
},
getItemPictures: () => {
return new Promise((resolve) => {
resolve([]);
});
}
};
});
describe("ItemInfo component", () => {
let wrapper;
const mockRouter = {
push: jest.fn(),
currentRoute: {
value: {
params: {
id: "1",
}
}
}
};
const mockStore = {
commit: jest.fn(),
};
beforeEach(() => {
wrapper = shallowMount(ItemInfo, {
global: {
mocks: {
$router: mockRouter,
$store: mockStore,
},
},
});
});
it("is instantiated", () => {
expect(wrapper.exists()).toBeTruthy();
})
it("Check that title is displayed", () => {
expect(wrapper.findAll("h1")[0].text()).toBe("Title");
})
it("Check that button cannot be clicked if date is not selected", async () => {
const jestCreatePushItemMock = jest.fn();
wrapper.vm.createPushItem = jestCreatePushItemMock;
// Click rent button
wrapper.find("button").trigger("click");
// wait a tick
await wrapper.vm.$nextTick();
// Check that jestMock was not clicked
expect(mockMethod).toHaveBeenCalledTimes(1);
expect(mockCreatePush).toHaveBeenCalledTimes(0);
// Check that the last p contains "Dato er påkrevd"
expect(wrapper.findAll("p")[wrapper.findAll("p").length - 1].text()).toBe("Dato er påkrevd");
})
it("Check that send to confirm works", async () => {
// Set valid days
wrapper.vm.setDate({
startDate: "2020-01-01",
endDate: "2020-02-01",
})
wrapper.find("button").trigger("click");
// wait a tick
await wrapper.vm.$nextTick();
// Check that method to change component was called
expect(mockCreatePush).toHaveBeenCalledTimes(1);
})
it("Test that price calculation works", async () => {
wrapper.vm.setDate({
startDate: new Date("2022-01-01"),
endDate: new Date("2022-01-03"),
})
// wait a tick
await wrapper.vm.$nextTick();
await wrapper.vm.$nextTick();
expect(wrapper.vm.totPrice).toBe(200);
})
});
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment