Files
AIclinicalresearch/backend/scripts/create-test-user-for-asl.ts
HaHafeng 2e8699c217 feat(asl): Week 2 Day 2 - Excel import with template download and intelligent dedup
Features:
- feat: Excel template generation and download (with examples)
- feat: Excel file parsing in memory (cloud-native, no disk write)
- feat: Field validation (title + abstract required)
- feat: Smart deduplication (DOI priority + Title fallback)
- feat: Literature preview table with statistics
- feat: Complete submission flow (create project + import literatures)

Components:
- feat: Create excelUtils.ts with full Excel processing toolkit
- feat: Enhance TitleScreeningSettings page with upload/preview/submit
- feat: Update API interface signatures and export unified aslApi object

Dependencies:
- chore: Add xlsx library for Excel file processing

Ref: Week 2 Frontend Development - Day 2
Scope: ASL Module MVP - Title Abstract Screening
Cloud-Native: Memory parsing, no file persistence
2025-11-19 10:24:47 +08:00

61 lines
1.4 KiB
TypeScript

/**
* 为ASL测试创建测试用户
*/
import { prisma } from '../src/config/database.js';
async function createTestUser() {
try {
console.log('🔍 检查测试用户是否存在...\n');
const testUserId = 'asl-test-user-001';
// 检查用户是否已存在
const existingUser = await prisma.user.findUnique({
where: { id: testUserId },
});
if (existingUser) {
console.log('✅ 测试用户已存在:');
console.log(' ID:', existingUser.id);
console.log(' 邮箱:', existingUser.email);
console.log(' 姓名:', existingUser.name);
return existingUser;
}
// 创建测试用户
const user = await prisma.user.create({
data: {
id: testUserId,
email: 'asl-test@example.com',
password: 'test-password-hash',
name: 'ASL测试用户',
role: 'user',
status: 'active',
kbQuota: 10,
kbUsed: 0,
isTrial: true,
},
});
console.log('✅ 测试用户创建成功:');
console.log(' ID:', user.id);
console.log(' 邮箱:', user.email);
console.log(' 姓名:', user.name);
console.log('\n💡 在测试脚本中使用此用户ID进行测试');
return user;
} catch (error) {
console.error('❌ 创建测试用户失败:', error);
throw error;
} finally {
await prisma.$disconnect();
}
}
createTestUser();