#![cfg(any(feature = "sqlite", feature = "postgresql", feature = "mysql"))]
pub mod _test_common;
define_test_user_for_fk!(VerifyUser, "verify_fk_users_1");
define_test_role_for_fk!(VerifyRole, "verify_fk_roles_1", VerifyUser);
async fn test_foreign_key_sql_generation_impl(
config: &_test_common::DbConfig,
) -> Result<(), Box<dyn std::error::Error>> {
let sql = ormer::model::generate_create_table_sql::<VerifyRole>(config.0)?;
println!("Generated SQL:\n{}", sql);
assert!(
sql.contains("FOREIGN KEY"),
"SQL should contain FOREIGN KEY constraint"
);
assert!(
sql.contains("verify_fk_users_1"),
"SQL should reference the correct table"
);
assert!(
sql.contains("id"),
"SQL should reference the correct column"
);
assert!(
sql.contains("FOREIGN KEY (user_id) REFERENCES verify_fk_users_1 (id)"),
"SQL should contain the complete foreign key constraint"
);
println!("Foreign key SQL generation test passed!");
Ok(())
}
test_on_all_dbs_result!(test_foreign_key_sql_generation_impl);