From 5f0256e7d087bb848c9d96b5fb02dc10c0813f86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Trygve=20J=C3=B8rgensen?= <trygjor@stud.ntnu.no>
Date: Tue, 30 Apr 2024 14:14:50 +0200
Subject: [PATCH] chore: test cleanup

---
 src/components/NavBarComponent.vue          |   2 +-
 src/components/__tests__/NavBarTest.spec.ts | 123 --------------------
 src/router/index.ts                         |   4 +
 src/stores/userStore.ts                     |  21 ++--
 src/views/HomeView.vue                      |   2 -
 5 files changed, 14 insertions(+), 138 deletions(-)
 delete mode 100644 src/components/__tests__/NavBarTest.spec.ts

diff --git a/src/components/NavBarComponent.vue b/src/components/NavBarComponent.vue
index d801c73..0cbf7b7 100644
--- a/src/components/NavBarComponent.vue
+++ b/src/components/NavBarComponent.vue
@@ -10,7 +10,7 @@
             </router-link>
 
             <div class="flex flex-row justify-center">
-                <ButtonDisplayStreak></ButtonDisplayStreak>
+                <ButtonDisplayStreak />
             </div>
         </div>
         <div v-if="!isHamburger" class="flex flex-row gap-10">
diff --git a/src/components/__tests__/NavBarTest.spec.ts b/src/components/__tests__/NavBarTest.spec.ts
deleted file mode 100644
index 909005b..0000000
--- a/src/components/__tests__/NavBarTest.spec.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { mount, VueWrapper } from '@vue/test-utils'
-import NavBar from '@/components/NavBarComponent.vue'
-import router from '@/router'
-import { createPinia, setActivePinia } from 'pinia'
-import { beforeEach, describe, expect, it, vi } from 'vitest'
-import { nextTick } from 'vue'
-
-vi.stubGlobal('scrollTo', vi.fn())
-// Mocking Axios correctly using `importOriginal`
-const mocks = vi.hoisted(() => ({
-    get: vi.fn(),
-    post: vi.fn()
-}))
-
-vi.mock('axios', async (importActual) => {
-    const actual = await importActual<typeof import('axios')>()
-
-    return {
-        default: {
-            ...actual.default,
-            create: vi.fn(() => ({
-                ...actual.default.create(),
-                get: mocks.get,
-                post: mocks.post
-            }))
-        }
-    }
-})
-
-describe('NavBar Routing', () => {
-    let wrapper: VueWrapper<any>
-
-    beforeEach(async () => {
-        const pinia = createPinia()
-        setActivePinia(pinia)
-
-        wrapper = mount(NavBar, {
-            global: {
-                plugins: [router, pinia]
-            }
-        })
-
-        await router.push({ name: 'start' })
-        await router.isReady()
-        await nextTick()
-    })
-
-    it('renders without errors', () => {
-        expect(wrapper.exists()).toBe(true)
-    })
-
-    it('displays correct active route for home link on full screen', async () => {
-        global.innerWidth = 1200
-        await router.push('/hjem')
-        await router.isReady()
-
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for goals link on full screen', async () => {
-        global.innerWidth = 1200
-
-        await router.push('/sparemaal')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for challenges link on full screen', async () => {
-        global.innerWidth = 1200
-
-        await router.push('/spareutfordringer')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for profile link on full screen', async () => {
-        global.innerWidth = 1200
-
-        await router.push('/profil')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for home link when the hamburger menu is open', async () => {
-        global.innerWidth = 1000
-        wrapper.vm.hamburgerOpen = true
-        await wrapper.vm.$nextTick()
-
-        await router.push('/hjem')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for goals link when the hamburger menu is open', async () => {
-        global.innerWidth = 1000
-        wrapper.vm.hamburgerOpen = true
-        await wrapper.vm.$nextTick()
-
-        await router.push('/sparemaal')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for challenges link when the hamburger menu is open', async () => {
-        global.innerWidth = 1000
-        wrapper.vm.hamburgerOpen = true
-        await wrapper.vm.$nextTick()
-
-        await router.push('/spareutfordringer')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-
-    it('displays correct active route for profile link when the hamburger menu is open', async () => {
-        global.innerWidth = 1000
-        wrapper.vm.hamburgerOpen = true
-        await wrapper.vm.$nextTick()
-
-        await router.push('/profil')
-        await router.isReady()
-        expect(wrapper.find('.router-link-exact-active').exists()).toBe(true)
-    })
-})
diff --git a/src/router/index.ts b/src/router/index.ts
index 9f30616..a83c4ce 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -179,6 +179,10 @@ router.beforeEach(async (to, from, next) => {
         return next({ name: 'home' })
     }
 
+    if (!authRequired) {
+        await router.replace({ name: 'home' })
+        return next({ name: 'home' })
+    }
     return next()
 })
 
diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts
index dd6bc42..94669a3 100644
--- a/src/stores/userStore.ts
+++ b/src/stores/userStore.ts
@@ -84,22 +84,19 @@ export const useUserStore = defineStore('user', () => {
         sessionStorage.removeItem('accessToken')
         localStorage.removeItem('refreshToken')
         user.value = defaultUser
+        console.log(user.value)
         router.push({ name: 'login' })
     }
-    const getUserStreak = async () => {
-        try {
-            const response = await authInterceptor('/profile/streak')
-            if (response.data) {
+
+    const getUserStreak = () => {
+        authInterceptor('/profile/streak')
+            .then((response) => {
                 streak.value = response.data
-                console.log('Fetched Challenges:', streak.value)
-            } else {
+            })
+            .catch((error) => {
+                console.error('Error fetching challenges:', error)
                 streak.value = undefined
-                console.error('No challenge content found:', response.data)
-            }
-        } catch (error) {
-            console.error('Error fetching challenges:', error)
-            streak.value = undefined // Ensure challenges is always an array
-        }
+            })
     }
 
     const bioRegister = async () => {
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index b7c9f94..6cd0397 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -17,7 +17,6 @@
         </div>
         <savings-path :challenges="challenges" :goal="goal"></savings-path>
     </div>
-    <GeneratedChallengesModal v-if="showModal" />
 </template>
 
 <script setup lang="ts">
@@ -29,7 +28,6 @@ import type { Goal } from '@/types/goal'
 import { useGoalStore } from '@/stores/goalStore'
 import { useChallengeStore } from '@/stores/challengeStore'
 import SavingsPath from '@/components/SavingsPath.vue'
-import GeneratedChallengesModal from '@/components/GeneratedChallengesModal.vue'
 
 const showModal = ref(true)
 
-- 
GitLab