authSlice.test.ts
1.18 KB
import { describe, it, expect } from 'vitest'
import { configureStore } from '@reduxjs/toolkit'
import authReducer, { setCredentials, clearCredentials, UserInfoVO } from '../store/slices/authSlice'
function makeStore() {
return configureStore({ reducer: { auth: authReducer } })
}
const sampleUserInfo: UserInfoVO = {
userId: 'u1',
username: 'admin',
userType: '普通用户',
language: '中文',
brandId: 'b1'
}
describe('authSlice', () => {
it('setCredentials_updatesAllStateFields', () => {
const store = makeStore()
store.dispatch(setCredentials({ accessToken: 't1', refreshToken: 'r1', userInfo: sampleUserInfo }))
const state = store.getState().auth
expect(state.accessToken).toBe('t1')
expect(state.refreshToken).toBe('r1')
expect(state.userInfo?.userId).toBe('u1')
})
it('clearCredentials_resetsToNull', () => {
const store = makeStore()
store.dispatch(setCredentials({ accessToken: 't1', refreshToken: 'r1', userInfo: sampleUserInfo }))
store.dispatch(clearCredentials())
const state = store.getState().auth
expect(state.accessToken).toBeNull()
expect(state.refreshToken).toBeNull()
expect(state.userInfo).toBeNull()
})
})