fix frontend test debt

This commit is contained in:
2026-03-18 16:03:54 +08:00
parent 5ead63c160
commit 9cba09d731
3 changed files with 24 additions and 12 deletions
@@ -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()
}) })
+10 -10
View File
@@ -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()
+2 -2
View File
@@ -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')
}) })
}) })