61 lines
2.2 KiB
JavaScript
61 lines
2.2 KiB
JavaScript
|
|
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);
|