用户管理与数据操作
This commit is contained in:
1 parent
ed0f20b754
commit
51d3acfbb5
14 files changed
+256
-33
No files matched your search
@@ -0,0 +1,44 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
createSessionRow,
|
||||
findUserByApiToken,
|
||||
findUserById,
|
||||
getDb,
|
||||
insertUser,
|
||||
setUserApiToken,
|
||||
setUserDisabled
|
||||
} from './db'
|
||||
|
||||
describe('user disabled status', () => {
|
||||
it('blocks API tokens and revokes sessions until re-enabled', () => {
|
||||
const now = new Date().toISOString()
|
||||
const userId = insertUser({
|
||||
username: 'disabled-user',
|
||||
passwordHash: 'hash',
|
||||
role: 'user',
|
||||
createdAt: now
|
||||
})
|
||||
const token = 'disabled-user-token'
|
||||
const sessionId = 'disabled-user-session'
|
||||
setUserApiToken(userId, token)
|
||||
createSessionRow({
|
||||
id: sessionId,
|
||||
userId,
|
||||
tokenHash: 'hash',
|
||||
expiresAt: new Date(Date.now() + 60_000).toISOString(),
|
||||
createdAt: now
|
||||
})
|
||||
|
||||
setUserDisabled(userId, true)
|
||||
|
||||
expect(findUserById(userId)?.disabled_at).not.toBeNull()
|
||||
expect(findUserByApiToken(token)).toBeNull()
|
||||
expect(getDb().prepare('SELECT 1 FROM sessions WHERE id = ?').get(sessionId))
|
||||
.toBeUndefined()
|
||||
|
||||
setUserDisabled(userId, false)
|
||||
|
||||
expect(findUserById(userId)?.disabled_at).toBeNull()
|
||||
expect(findUserByApiToken(token)?.id).toBe(userId)
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user