From b1b557e397faa511805d676e4f2c233d217de441 Mon Sep 17 00:00:00 2001
From: henrikburmann <haburmann@gmail.com>
Date: Thu, 5 May 2022 15:32:47 +0200
Subject: [PATCH] Delete user

---
 .../UserProfileComponents/UserProfile.vue     | 10 ++-
 src/services/user.service.js                  | 10 +++
 .../__snapshots__/user-items.spec.js.snap     | 83 +++++++++++++++++++
 .../user-component-tests/user-items.spec.js   | 33 +++++---
 4 files changed, 120 insertions(+), 16 deletions(-)

diff --git a/src/components/UserProfileComponents/UserProfile.vue b/src/components/UserProfileComponents/UserProfile.vue
index 142f3e6..28f59e1 100644
--- a/src/components/UserProfileComponents/UserProfile.vue
+++ b/src/components/UserProfileComponents/UserProfile.vue
@@ -68,10 +68,10 @@
             >
           </li>
           <li>
-            <router-link
-              to=""
+            <button
+              @click="deleteUser"
               class="block py-2 px-4 text-sm text-error-dark hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
-              >Slett bruker</router-link
+              >Slett bruker</button
             >
           </li>
         </ul>
@@ -158,6 +158,10 @@ export default {
         this.renterRating = ratingAsRenter;
       }
     },
+    async deleteUser(){
+      await UserService.deleteUser();
+      this.logout();
+    },
     logout() {
       this.$store.commit("logout");
       this.$router.push("/");
diff --git a/src/services/user.service.js b/src/services/user.service.js
index 44b6159..dbbe296 100644
--- a/src/services/user.service.js
+++ b/src/services/user.service.js
@@ -100,5 +100,15 @@ class UserService {
       })
       .catch((err) => console.error(err));
   }
+
+  async deleteUser(){
+    return await axios
+    .delete(API_URL + "user/delete",{
+     headers: tokenHeader()})
+     .then((res) => {
+       return res.data;
+     })
+     .catch((err) => console.log(err))
+  }
 }
 export default new UserService();
diff --git a/tests/unit/component-tests/user-component-tests/__snapshots__/user-items.spec.js.snap b/tests/unit/component-tests/user-component-tests/__snapshots__/user-items.spec.js.snap
index 2e9d433..3b43fca 100644
--- a/tests/unit/component-tests/user-component-tests/__snapshots__/user-items.spec.js.snap
+++ b/tests/unit/component-tests/user-component-tests/__snapshots__/user-items.spec.js.snap
@@ -52,6 +52,89 @@ exports[`UserItems component renders correctly 1`] = `
         class="grid grid-flow-row-dense grid-cols-2 md:grid-cols-4 lg:grid-cols-5 w-full"
       >
         
+        <div
+          class="cardContainer"
+          id="item"
+        >
+          <div
+            class="mt-5 ItemCard w-fit h-fit"
+            id="ItemCardPage"
+          >
+            <div
+              class="w-4/5 rounded bg-gray-200 h-full overflow-hidden display:inline-block correct-size"
+            >
+              <img
+                alt="Item image"
+                class="h-3/4"
+                src=""
+              />
+              <div
+                class="p-1 m-1 bottom-0"
+              >
+                <p
+                  class="text-gray-700 text-xs font-bold"
+                  id="adress"
+                >
+                  Veien
+                </p>
+                <p
+                  class="font-bold text-sm"
+                  id="title"
+                >
+                  Matboks
+                </p>
+                <p
+                  class="text-gray-700 text-xs"
+                  id="price"
+                >
+                  50 kr 
+                </p>
+              </div>
+            </div>
+          </div>
+          <button
+            class="w-10 h-10 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg float-right text-sm p-1.5 DotButton"
+            data-dropdown-toggle="dropdown"
+            id="dropdownDefault"
+            type="button"
+          >
+            <svg
+              class="w-6 h-6"
+              fill="currentColor"
+              viewBox="0 0 20 20"
+              xmlns="http://www.w3.org/2000/svg"
+            >
+              <path
+                d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"
+              />
+            </svg>
+          </button>
+          <div
+            class="options z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700"
+            style="display: none;"
+          >
+            <ul
+              aria-labelledby="dropdownDefault"
+              class="py-1 absolute bg-white ring-1 ring-gray-300 rounded-xl"
+            >
+              <li>
+                <button
+                  class="block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
+                  to="/user/userItems"
+                >
+                   Rediger gjenstand 
+                </button>
+              </li>
+              <li>
+                <button
+                  class="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"
+                >
+                   Slett gjenstand 
+                </button>
+              </li>
+            </ul>
+          </div>
+        </div>
         
         
         <!-- Main modal -->
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 c3def71..876740d 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
@@ -6,18 +6,23 @@ describe("UserItems component", () => {
 
     beforeEach(() => {
         wrapper = mount(UserItems, {
-            props: {
-                ItemCard: {
-                    item: {
-                        listingID: 1,
-                        img: "",
-                        address: "Veien",
-                        title: "Matboks",
-                        pricePerDay: 50,
-                        toggle: false,
-                    }
+            data() {
+                return {
+                    items: [
+                        {
+                            listingID: 1,
+                            img: "",
+                            address: "Veien",
+                            title: "Matboks",
+                            pricePerDay: 50,
+                            toggle: false,
+                        }
+                    ]
                 }
             }
+
+
+
         });
     });
 
@@ -29,9 +34,11 @@ describe("UserItems component", () => {
         expect(wrapper.exists()).toBeTruthy();
     });
 
-    it("Check information", () => {
-        const byID = wrapper.find("#ItemCardPage");
-        expect(byID.item.title.)
+    it("Check headline", () => {
+        expect(wrapper.find("#headline").text()).toMatch("Mine gjenstander");
+    });
+    it("Check Itemcard title", () =>{
+        expect(wrapper.findAll("ItemCard").length).toBe(1)
     })
 
 });
-- 
GitLab