diff --git a/package-lock.json b/package-lock.json
index 4f041b3e45ef1386db849c0417df29bc2e71d97f..325009f43a1e9ac5e917359abdc88e3764ea8973 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
       "version": "0.0.0",
       "dependencies": {
         "@iconify/vue": "^4.1.1",
+        "@pinia/testing": "^0.0.16",
         "jwt-decode": "^3.1.2",
         "pinia": "^2.0.35",
         "pinia-plugin-persistedstate": "^3.1.0",
@@ -683,6 +684,45 @@
         "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
       }
     },
+    "node_modules/@pinia/testing": {
+      "version": "0.0.16",
+      "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.16.tgz",
+      "integrity": "sha512-oa5kO82hzWekqMq1HTnS/b+ZM+ZKEcEApuuCTelvKK79jTxg7P026Qw8/2RbVn5eUGAvRWQu4ubObrshVqCRjQ==",
+      "dependencies": {
+        "vue-demi": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/posva"
+      },
+      "peerDependencies": {
+        "pinia": ">=2.0.34"
+      }
+    },
+    "node_modules/@pinia/testing/node_modules/vue-demi": {
+      "version": "0.14.0",
+      "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz",
+      "integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
+      "hasInstallScript": true,
+      "bin": {
+        "vue-demi-fix": "bin/vue-demi-fix.js",
+        "vue-demi-switch": "bin/vue-demi-switch.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.0.0-rc.1",
+        "vue": "^3.0.0-0 || ^2.6.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/@sideway/address": {
       "version": "4.1.4",
       "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
diff --git a/package.json b/package.json
index 61bff41534d22e2b8689c2f14f3a7eb4e602060f..0eb0aa1f4754b48a7823428f190f1a111aca44af 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
   },
   "dependencies": {
     "@iconify/vue": "^4.1.1",
+    "@pinia/testing": "^0.0.16",
     "jwt-decode": "^3.1.2",
     "pinia": "^2.0.35",
     "pinia-plugin-persistedstate": "^3.1.0",
diff --git a/src/components/EatFridgeItemModal.vue b/src/components/EatFridgeItemModal.vue
index f3e61500851ce04f895cefa51b4f456ce84b5bb4..2d3383560a5e6905f050c4dd94e73b1e13c166d6 100644
--- a/src/components/EatFridgeItemModal.vue
+++ b/src/components/EatFridgeItemModal.vue
@@ -3,7 +3,7 @@
       <div id="exitBtn" @click="close"><Icon  icon="mdi:alpha-x-box" :color="redIconColor" :style="{ fontSize: redIconSize }" /></div>
 
       <h2>{{ this.fridgeItem.item.name }}</h2>
-      <p>{{sliderValue}} {{this.fridgeItem.amount.unit}}</p>
+      <p id="sliderDisplay">{{sliderValue}} {{this.fridgeItem.amount.unit}}</p>
       <label for="slider">Mengde tatt av varen:</label>
 
       <input type = "range" id = "slider" name = "slider" min="0" :max = "this.maxValue" v-model="sliderValue">
diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue
index e597f868de7f1a1015d5722cc4ffc39a10ec9afb..788592a89408f9515e0cedc16804a5f890e546db 100644
--- a/src/components/Navbar.vue
+++ b/src/components/Navbar.vue
@@ -34,6 +34,7 @@
 <script>
 import { Icon } from '@iconify/vue';
 import Logo from "@/components/Logo.vue";
+import { RouterLink } from 'vue-router'
 
 export default {
     name: "Navbar",
diff --git a/src/components/__tests__/FridgeItemModal.spec.js b/src/components/__tests__/FridgeItemModal.spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..cc180e0fede1939270d6467a1cc723feff53cf4d
--- /dev/null
+++ b/src/components/__tests__/FridgeItemModal.spec.js
@@ -0,0 +1,88 @@
+import { describe, it, expect } from 'vitest'
+import { mount } from '@vue/test-utils'
+import EatFridgeItemModal from "@/components/EatFridgeItemModal.vue";
+
+const normalItem = {
+    "item":{
+        "id": "1",
+        "name":"purre",
+        "amount": {"quantity": "500","unit": "g"},
+        "image_url": "https://bilder.ngdata.no/7040512550818/meny/large.jpg"
+    },
+    "exp_date": "2222-02-22T00:00:00+00:00",
+    "amount": {"quantity": "500","unit": "g"}
+}
+
+const expiredItem = {
+    "item":{
+        "id": "1",
+        "name":"purre",
+        "amount": {"quantity": "500","unit": "g"},
+        "image_url": "https://bilder.ngdata.no/7040512550818/meny/large.jpg"
+    },
+    "exp_date": "2002-02-22T00:00:00+00:00",
+    "amount": {"quantity": "500","unit": "g"}
+}
+describe('Renders correctly', () => {
+    it('displays the name of the item', () => {
+        const wrapper = mount(EatFridgeItemModal, {
+            props: {
+                fridgeItem: normalItem,
+            },
+        });
+
+        const itemName = wrapper.find('h2')
+        expect(itemName.text()).toContain('purre')
+
+    });
+
+    it('displays the correct unit', () => {
+        const wrapper = mount(EatFridgeItemModal, {
+            props: {
+                fridgeItem: normalItem,
+            },
+        });
+
+        const sliderValueUnit = wrapper.find('#sliderDisplay')
+        expect(sliderValueUnit.text()).toContain('g')
+
+    });
+
+    it('Displays a message if item has expired', () => {
+        const wrapper = mount(EatFridgeItemModal, {
+            props: {
+                fridgeItem: expiredItem,
+            },
+        });
+
+        expect(wrapper.find('#itemHasExpiredMessage').exists()).toBe(true);
+        const expiredMsgBox = wrapper.find('#itemHasExpiredMessage')
+        expect(expiredMsgBox.isVisible()).toBe(true)
+
+    });
+
+    it('Does not display message if item has not expired', () => {
+        const wrapper = mount(EatFridgeItemModal, {
+            props: {
+                fridgeItem: normalItem,
+            },
+        });
+        expect(wrapper.find('#itemHasExpiredMessage').exists()).toBe(false);
+    });
+
+})
+
+describe('Behaves correctly', () => {
+    it('emits close when X is pressed', async () => {
+        const wrapper = mount(EatFridgeItemModal, {
+            props: {
+                fridgeItem: normalItem,
+            },
+        });
+
+        await wrapper.find('#exitBtn').trigger('click');
+        await wrapper.vm.$nextTick();
+        expect(wrapper.emitted().closeModal).toBeTruthy();
+
+    });
+})
\ No newline at end of file
diff --git a/src/components/__tests__/ItemSearch.spec.js b/src/components/__tests__/ItemSearch.spec.js
index 12d11205979606602bec04caa33de64cb4593454..49c6597c263c7f2161eeb11a6024b02cfa42864d 100644
--- a/src/components/__tests__/ItemSearch.spec.js
+++ b/src/components/__tests__/ItemSearch.spec.js
@@ -19,7 +19,7 @@ const SearchReturn = [
     }];
 
 describe('Behaves as expected', () => {
-    it('shows correct number of results', async () => {
+    it('shows correct number of results', () => {
         const wrapper = mount(ItemSearch, {
             data() {
                 return {
@@ -34,7 +34,7 @@ describe('Behaves as expected', () => {
         expect(wrapper.text()).toContain('(2)')
     });
 
-    it('When adding more items, the total ingredient amount is shown', async () => {
+    it('When adding more items, the total ingredient amount is shown', () => {
         const wrapper = mount(ItemSearch, {
             data() {
                 return {
@@ -51,7 +51,7 @@ describe('Behaves as expected', () => {
         expect(totalItemCount.text()).toContain('stk')
     });
 
-    it('Selected contains all items ', async () => {
+    it('Select contains all items ', () => {
         const wrapper = mount(ItemSearch, {
             data() {
                 return {
diff --git a/src/components/__tests__/Navbar.spec.js b/src/components/__tests__/Navbar.spec.js
index a212573ecee960d8a98e37d63d093b3b2b2a2066..86579bf2b896c4c3a22df76bf4eb7013a334acae 100644
--- a/src/components/__tests__/Navbar.spec.js
+++ b/src/components/__tests__/Navbar.spec.js
@@ -3,6 +3,8 @@ import { describe, it, expect } from 'vitest'
 import { mount } from '@vue/test-utils'
 import Navbar from "@/components/Navbar.vue";
 import { Icon } from '@iconify/vue';
+import { RouterLink } from 'vue-router';
+
 describe('Navbar', () => {
     it('contains 5 links', () => {
         const wrapper = mount(Navbar)
diff --git a/src/views/FridgeView.vue b/src/views/FridgeView.vue
index 958ffd6ceb5cdf5b04151a293748e417cf02d364..1428ae7c690a401bec629d49b4605e7ff9564a39 100644
--- a/src/views/FridgeView.vue
+++ b/src/views/FridgeView.vue
@@ -135,7 +135,4 @@ h1 {
   font-weight: bolder;
   font-size: 1.2em;
 }
-
-
-
 </style>
\ No newline at end of file
diff --git a/src/views/__tests__/FridgeView.spec.js b/src/views/__tests__/FridgeView.spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..4790f4ad2639935f3da4a5694dafcb3a27738181
--- /dev/null
+++ b/src/views/__tests__/FridgeView.spec.js
@@ -0,0 +1,70 @@
+import { describe, it, expect, vi } from 'vitest'
+import { createTestingPinia } from '@pinia/testing'
+import { mount } from '@vue/test-utils'
+import FridgeView from "@/views/FridgeView.vue";
+
+
+const fridgeIngredients = [
+    {
+        "item":{
+            "id": "1",
+            "name":"eple",
+            "amount": {"quantity": "4","unit": "stk"},
+            "image_url": "https://bilder.ngdata.no/7040512550818/meny/large.jpg"
+        },
+        "exp_date": "2222-02-22T00:00:00+00:00",
+        "amount": {"quantity": "6","unit": "stk"}
+    }];
+
+describe('Fridge', () => {
+    it('renders', () => {
+        const wrapper = mount(FridgeView, {
+            global: {
+                plugins: [createTestingPinia({
+                    createSpy: vi.fn,
+                })],
+            },
+        })
+        expect(wrapper.text()).toContain('Kjøleskap')
+    });
+
+    it('pressing the plus button makes search visible', async () => {
+        const wrapper = mount(FridgeView, {
+            global: {
+                plugins: [createTestingPinia({
+                    createSpy: vi.fn,
+                })],
+            },
+
+        })
+        expect(wrapper.find('ItemSearch').exists()).toBe(false);
+        await wrapper.find('#addItemBtn').trigger('click');
+
+        setTimeout(() => {
+            expect(wrapper.find('ItemSearch').exists()).toBe(true);
+        }, 1000);
+    });
+
+    it('when appleBtnEmit, the EatFridgeItemModal is displayed', () => {
+        const wrapper = mount(FridgeView, {
+            global: {
+                plugins: [createTestingPinia({
+                    createSpy: vi.fn,
+                })],
+            },
+            data() {
+                return {
+                    fridgeItems: fridgeIngredients,
+                };
+            },
+
+        })
+
+        expect(wrapper.find('eat-fridge-item-modal').exists()).toBe(false);
+
+        wrapper.find('#appleBtn').trigger('click');
+        setTimeout(() => {
+            expect(wrapper.find('eat-fridge-item-modal').exists()).toBe(true);
+        }, 1000);
+    })
+})
\ No newline at end of file