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