LLM-test/test/sql/2-sql测试-1/mock/test-debug.js

61 lines
2.2 KiB
JavaScript
Raw Normal View History

const { SeedManager } = require('./src/database/seed-orders');
const UsersGenerator = require('./src/mock-generators/users');
const OrdersGenerator = require('./src/mock-generators/orders');
async function test() {
console.log('Testing dependency resolution...');
const seedManager = new SeedManager();
// 生成 users
const usersGen = new UsersGenerator();
usersGen.setSeedManager(seedManager);
const usersData = usersGen.generate(10);
// 注册生成的 users 数据
seedManager.registerGeneratedData('users', usersData);
// 模拟插入 users分配数据库 ID
const insertedUsersData = usersData.map((record, index) => ({
...record,
id: index + 1000 // 模拟数据库 ID
}));
// 注册插入后的 users 数据
seedManager.registerInsertedData('users', insertedUsersData);
// 注册 ID 映射
usersData.forEach((record, index) => {
if (record.temp_id && insertedUsersData[index].id) {
seedManager.registerIdMapping('users', record.temp_id, insertedUsersData[index].id);
}
});
console.log('\nUsers generated and inserted.');
console.log('Users data sample:', JSON.stringify(insertedUsersData[0], null, 2));
// 生成 orders
const ordersGen = new OrdersGenerator();
ordersGen.setSeedManager(seedManager);
const ordersData = ordersGen.generate(5);
console.log('\nOrders generated:');
ordersData.forEach((order, index) => {
console.log(`Order ${index + 1}: user_id = ${order.user_id}, shipping_addr_id = ${order.shipping_addr_id}, billing_addr_id = ${order.billing_addr_id}`);
});
// 检查是否能够获取随机用户 ID
const randomUserId = ordersGen.getRandomIdFromTable('users');
console.log(`\nRandom user ID from getRandomIdFromTable: ${randomUserId}`);
// 解析依赖
const ordersConfig = seedManager.getSeedConfig('orders');
const resolvedOrders = seedManager.resolveDependencies(ordersData, ordersConfig.dependencies);
console.log('\nResolved orders:');
resolvedOrders.forEach((order, index) => {
console.log(`Order ${index + 1}: user_id = ${order.user_id}, shipping_addr_id = ${order.shipping_addr_id}, billing_addr_id = ${order.billing_addr_id}`);
});
}
test().catch(console.error);