forked from datawhale/whale-town-end
95 lines
3.2 KiB
TypeScript
95 lines
3.2 KiB
TypeScript
/**
|
||
* 用户功能测试脚本
|
||
*
|
||
* 使用方法:npx ts-node test-users-functionality.ts
|
||
*/
|
||
|
||
import 'reflect-metadata';
|
||
import { NestFactory } from '@nestjs/core';
|
||
import { AppModule } from './src/app.module';
|
||
import { UsersService } from './src/core/db/users/users.service';
|
||
import { CreateUserDto } from './src/core/db/users/users.dto';
|
||
|
||
async function testUsersFunctionality() {
|
||
console.log('🚀 启动用户功能测试...\n');
|
||
|
||
try {
|
||
// 创建NestJS应用
|
||
const app = await NestFactory.createApplicationContext(AppModule, {
|
||
logger: false, // 禁用日志以保持输出清洁
|
||
});
|
||
|
||
// 获取用户服务
|
||
const usersService = app.get(UsersService);
|
||
console.log('✅ 成功获取UsersService实例');
|
||
|
||
// 测试数据
|
||
const testUserDto: CreateUserDto = {
|
||
username: `testuser_${Date.now()}`,
|
||
email: `test_${Date.now()}@example.com`,
|
||
phone: `+86138${Date.now().toString().slice(-8)}`,
|
||
password_hash: 'hashed_password_123',
|
||
nickname: '功能测试用户',
|
||
github_id: `github_${Date.now()}`,
|
||
avatar_url: 'https://example.com/avatar.jpg',
|
||
role: 1
|
||
};
|
||
|
||
console.log('\n📝 测试创建用户...');
|
||
const createdUser = await usersService.create(testUserDto);
|
||
console.log('✅ 用户创建成功:', {
|
||
id: createdUser.id.toString(),
|
||
username: createdUser.username,
|
||
nickname: createdUser.nickname,
|
||
email: createdUser.email
|
||
});
|
||
|
||
console.log('\n🔍 测试查询用户...');
|
||
const foundUser = await usersService.findOne(createdUser.id);
|
||
console.log('✅ 用户查询成功:', foundUser.username);
|
||
|
||
console.log('\n📊 测试用户统计...');
|
||
const userCount = await usersService.count();
|
||
console.log('✅ 当前用户总数:', userCount);
|
||
|
||
console.log('\n🔍 测试根据用户名查询...');
|
||
const userByUsername = await usersService.findByUsername(createdUser.username);
|
||
console.log('✅ 根据用户名查询成功:', userByUsername?.nickname);
|
||
|
||
console.log('\n✏️ 测试更新用户...');
|
||
const updatedUser = await usersService.update(createdUser.id, {
|
||
nickname: '更新后的昵称'
|
||
});
|
||
console.log('✅ 用户更新成功:', updatedUser.nickname);
|
||
|
||
console.log('\n📋 测试查询所有用户...');
|
||
const allUsers = await usersService.findAll(5); // 限制5个
|
||
console.log('✅ 查询到用户数量:', allUsers.length);
|
||
|
||
console.log('\n🔍 测试搜索功能...');
|
||
const searchResults = await usersService.search('测试');
|
||
console.log('✅ 搜索结果数量:', searchResults.length);
|
||
|
||
console.log('\n🗑️ 测试删除用户...');
|
||
const deleteResult = await usersService.remove(createdUser.id);
|
||
console.log('✅ 用户删除成功:', deleteResult.message);
|
||
|
||
// 验证删除
|
||
console.log('\n✅ 验证删除结果...');
|
||
try {
|
||
await usersService.findOne(createdUser.id);
|
||
console.log('❌ 删除验证失败:用户仍然存在');
|
||
} catch (error) {
|
||
console.log('✅ 删除验证成功:用户已不存在');
|
||
}
|
||
|
||
await app.close();
|
||
console.log('\n🎉 所有功能测试通过!');
|
||
|
||
} catch (error) {
|
||
console.error('❌ 测试失败:', error);
|
||
process.exit(1);
|
||
}
|
||
}
|
||
|
||
testUsersFunctionality(); |