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

61 lines
2.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);