auth_user_info.test.js
1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { describe, expect, it, vi } from 'vitest'
import { applyUserInfoAuth } from '../auth_user_info'
const createStorage = () => {
const store = {}
return {
store,
setItem: vi.fn((key, value) => {
store[key] = value
}),
getItem: vi.fn((key) => store[key] ?? null),
removeItem: vi.fn((key) => {
delete store[key]
}),
clear: vi.fn(() => {
Object.keys(store).forEach((key) => delete store[key])
})
}
}
describe('applyUserInfoAuth', () => {
it('从 response.data.user_info 写入鉴权与缓存', () => {
const storage = createStorage()
const set_auth_headers = vi.fn()
const response = {
data: {
user_info: {
user_id: '100',
HTTP_USER_TOKEN: 'token-xxx',
user_name: '张三'
}
}
}
const ok = applyUserInfoAuth(response, { storage, set_auth_headers })
expect(ok).toBe(true)
expect(set_auth_headers).toHaveBeenCalledTimes(1)
expect(set_auth_headers).toHaveBeenCalledWith('100', 'token-xxx')
expect(storage.setItem).toHaveBeenCalledTimes(1)
expect(storage.setItem).toHaveBeenCalledWith('user_info', JSON.stringify(response.data.user_info))
})
it('缺少 user_id 或 HTTP_USER_TOKEN 时不做任何写入', () => {
const storage = createStorage()
const set_auth_headers = vi.fn()
const ok = applyUserInfoAuth({ user_id: '100' }, { storage, set_auth_headers })
expect(ok).toBe(false)
expect(set_auth_headers).not.toHaveBeenCalled()
expect(storage.setItem).not.toHaveBeenCalled()
})
it('支持直接传入 user_info 对象', () => {
const storage = createStorage()
const set_auth_headers = vi.fn()
const user_info = { user_id: 1, HTTP_USER_TOKEN: 't' }
const ok = applyUserInfoAuth(user_info, { storage, set_auth_headers })
expect(ok).toBe(true)
expect(set_auth_headers).toHaveBeenCalledWith(1, 't')
expect(storage.setItem).toHaveBeenCalledWith('user_info', JSON.stringify(user_info))
})
})