Tested all fruit mutations

This commit is contained in:
2020-12-03 23:54:59 +01:00
parent 59c085f4d5
commit 4b1ac294bd
6 changed files with 61 additions and 43 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1607034984518" clover="3.2.0"> <coverage generated="1607037828417" clover="3.2.0">
<project timestamp="1607034984518" name="All files"> <project timestamp="1607037828418" name="All files">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3" elements="7" coveredelements="7" complexity="0" loc="4" ncloc="4" packages="1" files="1" classes="1"/> <metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3" elements="7" coveredelements="7" complexity="0" loc="4" ncloc="4" packages="1" files="1" classes="1"/>
<file name="Fruits.vue" path="/Users/viricel/Sites/fruit-project/src/views/Fruits.vue"> <file name="Fruits.vue" path="/Users/viricel/Sites/fruit-project/src/views/Fruits.vue">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3"/> <metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3"/>

View File

@@ -141,7 +141,7 @@ export default {
<div class='footer quiet pad2 space-top1 center small'> <div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a> <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Thu Dec 03 2020 23:36:24 GMT+0100 (Central European Standard Time) at Fri Dec 04 2020 00:23:48 GMT+0100 (Central European Standard Time)
</div> </div>
</div> </div>
<script src="prettify.js"></script> <script src="prettify.js"></script>

View File

@@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'> <div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a> <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Thu Dec 03 2020 23:36:24 GMT+0100 (Central European Standard Time) at Fri Dec 04 2020 00:23:48 GMT+0100 (Central European Standard Time)
</div> </div>
</div> </div>
<script src="prettify.js"></script> <script src="prettify.js"></script>

View File

@@ -1,13 +1,15 @@
import Vue from "vue"; import Vue from "vue";
import Vuex from "vuex"; import Vuex from "vuex";
import mutations from "./mutations";
export const state = {
fruits: [],
fruit: {}
};
Vue.use(Vuex); Vue.use(Vuex);
export default new Vuex.Store({ export default new Vuex.Store({
state: { state,
fruits: [] mutations
},
mutations: import("./mutations.js"),
actions: {},
modules: {}
}); });

View File

@@ -1,5 +1,14 @@
export default { export default {
setFruits(state, fruits) { setFruits: (state, fruits) => {
state.fruits = fruits; state.fruits = fruits;
},
setFruit: (state, fruit) => {
state.fruit = fruit;
},
addFruit: (state, fruit) => {
state.fruits = [...state.fruits, fruit];
},
removeFruit: (state, id) => {
state.fruits = state.fruits.filter(item => item.id != id);
} }
}; };

View File

@@ -1,36 +1,43 @@
import mutations from "@/store/mutations.js"; import { state } from "@/store";
import mutations from "@/store/mutations";
const { setFruits, setFruit, addFruit, removeFruit } = mutations;
let fruit = {
id: 3,
isFruit: true,
name: "banana",
image: "/image/path.jpg",
price: "907.00",
color: "#763e44",
description: "Iusto illum vero voluptatem.",
taste: "Handcrafted",
expires: "2021-04-11T08:54:24.588Z"
};
describe("Test Vuex mutations.", () => { describe("Test Vuex mutations.", () => {
it("should add fruits to the state", () => { it("tests setFruits mutation.", () => {
const fruits = [ setFruits(state, [fruit]);
{ expect(state.fruits[0].id).toBe(3);
id: 3, });
isFruit: true,
name: "banana", it("tests setFruit mutation.", () => {
image: "/image/path.jpg", setFruit(state, fruit);
price: "907.00", expect(state.fruit.id).toBe(3);
color: "#763e44", });
description: "Iusto illum vero voluptatem.",
taste: "Handcrafted", it("tests addFruit mutation.", () => {
expires: "2021-04-11T08:54:24.588Z" const newFruit = Object.assign({}, fruit);
} newFruit.id = 4;
]; addFruit(state, newFruit);
const state = { expect(state.fruits[0].id).toBe(3);
fruits: [] expect(state.fruits[1].id).toBe(4);
}; expect(state.fruits.length).toBe(2);
mutations.setFruits(state, fruits); });
expect(state.fruits).toEqual([
{ it("tests removeFruit mutation.", () => {
id: 3, removeFruit(state, 4);
isFruit: true, expect(state.fruits[0].id).toBe(3);
name: "banana", expect(state.fruits.length).toBe(1);
image: "/image/path.jpg",
price: "907.00",
color: "#763e44",
description: "Iusto illum vero voluptatem.",
taste: "Handcrafted",
expires: "2021-04-11T08:54:24.588Z"
}
]);
}); });
}); });