Files
ftb-project-management/apps/web/lib/auth-user.test.ts
2026-06-26 11:18:00 +08:00

58 lines
1.5 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { resolveAuthUserFromMembers, toAuthUser, type AuthUser } from './auth-user';
import type { Member } from './members';
const member: Member = {
id: 'm-8',
name: '超级管理员',
departmentId: 'dept-1',
roleId: 'role-admin',
phone: '13200132008',
email: 'admin@company.com',
password: 'Ftb@2024',
createdAt: '2024-01-01',
};
test('toAuthUser removes password and keeps stable member identity', () => {
assert.deepEqual(toAuthUser(member), {
id: 'm-8',
name: '超级管理员',
departmentId: 'dept-1',
roleId: 'role-admin',
phone: '13200132008',
email: 'admin@company.com',
});
});
test('resolveAuthUserFromMembers refreshes stale display names by member id', () => {
const staleUser: AuthUser = {
id: 'm-8',
name: '陈十',
departmentId: 'dept-1',
roleId: 'role-admin',
phone: '13200132008',
email: 'old@company.com',
};
const resolved = resolveAuthUserFromMembers(staleUser, [member]);
assert.equal(resolved?.id, 'm-8');
assert.equal(resolved?.name, '超级管理员');
assert.equal(resolved?.email, 'admin@company.com');
});
test('resolveAuthUserFromMembers returns null when the account no longer exists', () => {
const staleUser: AuthUser = {
id: 'm-9',
name: '离职用户',
departmentId: 'dept-2',
roleId: 'role-dev',
phone: '13900139000',
email: 'old@company.com',
};
assert.equal(resolveAuthUserFromMembers(staleUser, [member]), null);
});