fix frontend test debt
This commit is contained in:
@@ -1,8 +1,19 @@
|
|||||||
import { describe, it, expect, beforeEach } from 'vitest'
|
import { describe, it, expect, beforeEach } from 'vitest'
|
||||||
|
import { setActivePinia, createPinia } from 'pinia'
|
||||||
import { mount } from '@vue/test-utils'
|
import { mount } from '@vue/test-utils'
|
||||||
import { createRouter, createMemoryHistory } from 'vue-router'
|
import { createRouter, createMemoryHistory } from 'vue-router'
|
||||||
import MainLayout from '../MainLayout.vue'
|
import MainLayout from '../MainLayout.vue'
|
||||||
|
|
||||||
|
Object.defineProperty(window, 'matchMedia', {
|
||||||
|
writable: true,
|
||||||
|
value: (query: string) => ({
|
||||||
|
matches: false, media: query, onchange: null,
|
||||||
|
addListener: () => {}, removeListener: () => {},
|
||||||
|
addEventListener: () => {}, removeEventListener: () => {},
|
||||||
|
dispatchEvent: () => false,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
|
||||||
function createTestRouter() {
|
function createTestRouter() {
|
||||||
return createRouter({
|
return createRouter({
|
||||||
history: createMemoryHistory(),
|
history: createMemoryHistory(),
|
||||||
@@ -17,6 +28,7 @@ function createTestRouter() {
|
|||||||
|
|
||||||
describe('MainLayout', () => {
|
describe('MainLayout', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
setActivePinia(createPinia())
|
||||||
localStorage.clear()
|
localStorage.clear()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ describe('useUserStore', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('restores token from localStorage', () => {
|
it('restores token from localStorage', () => {
|
||||||
localStorage.setItem('access_token', 'saved-token')
|
localStorage.setItem('access_token', 'header.payload.signature')
|
||||||
localStorage.setItem('refresh_token', 'saved-refresh')
|
localStorage.setItem('refresh_token', 'rh.rp.rs')
|
||||||
|
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
|
|
||||||
expect(store.token).toBe('saved-token')
|
expect(store.token).toBe('header.payload.signature')
|
||||||
expect(store.refreshToken).toBe('saved-refresh')
|
expect(store.refreshToken).toBe('rh.rp.rs')
|
||||||
expect(store.isLoggedIn).toBe(true)
|
expect(store.isLoggedIn).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -63,12 +63,12 @@ describe('useUserStore', () => {
|
|||||||
it('sets tokens in store and localStorage', () => {
|
it('sets tokens in store and localStorage', () => {
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
|
|
||||||
store.setToken('new-access', 'new-refresh')
|
store.setToken('header.payload.signature', 'rh.rp.rs')
|
||||||
|
|
||||||
expect(store.token).toBe('new-access')
|
expect(store.token).toBe('header.payload.signature')
|
||||||
expect(store.refreshToken).toBe('new-refresh')
|
expect(store.refreshToken).toBe('rh.rp.rs')
|
||||||
expect(localStorage.getItem('access_token')).toBe('new-access')
|
expect(localStorage.getItem('access_token')).toBe('header.payload.signature')
|
||||||
expect(localStorage.getItem('refresh_token')).toBe('new-refresh')
|
expect(localStorage.getItem('refresh_token')).toBe('rh.rp.rs')
|
||||||
expect(store.isLoggedIn).toBe(true)
|
expect(store.isLoggedIn).toBe(true)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -90,7 +90,7 @@ describe('useUserStore', () => {
|
|||||||
describe('logout', () => {
|
describe('logout', () => {
|
||||||
it('clears all state and localStorage', () => {
|
it('clears all state and localStorage', () => {
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
store.setToken('tok', 'ref')
|
store.setToken('h.p.s', 'r.p.s')
|
||||||
store.setUser({ id: 1, username: 'a', email: 'a@a.com', role: 'admin', status: 1 })
|
store.setUser({ id: 1, username: 'a', email: 'a@a.com', role: 'admin', status: 1 })
|
||||||
|
|
||||||
store.logout()
|
store.logout()
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ describe('request utils', () => {
|
|||||||
vi.restoreAllMocks()
|
vi.restoreAllMocks()
|
||||||
// Mock window.location
|
// Mock window.location
|
||||||
Object.defineProperty(window, 'location', {
|
Object.defineProperty(window, 'location', {
|
||||||
value: { href: '' },
|
value: { href: '', pathname: '/', search: '' },
|
||||||
writable: true,
|
writable: true,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -95,7 +95,7 @@ describe('request utils', () => {
|
|||||||
expect(localStorage.getItem('access_token')).toBeNull()
|
expect(localStorage.getItem('access_token')).toBeNull()
|
||||||
expect(localStorage.getItem('refresh_token')).toBeNull()
|
expect(localStorage.getItem('refresh_token')).toBeNull()
|
||||||
expect(localStorage.getItem('user')).toBeNull()
|
expect(localStorage.getItem('user')).toBeNull()
|
||||||
expect(window.location.href).toBe('/login')
|
expect(window.location.href).toBe('/login?redirect=%2F')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user