#![cfg(feature = "openapi")]
use std::fs::File;
use openapiv3::OpenAPI;
use anyhow::Result;
use sqldiff::{Schema, Options};
const OPENAPI_YAML_FILEPATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/spec/openapi.yaml");
#[test]
pub fn test_run_sql_migration() -> Result<()> {
let yaml = File::open(OPENAPI_YAML_FILEPATH)?;
let spec: OpenAPI = serde_yaml::from_reader(yaml)?;
let current = Schema::new();
let desired = Schema::try_from(spec)?;
let migration = current.migrate_to(desired, &Options { debug: false })?;
assert_eq!(migration.statements.len(), 5);
for statement in migration.statements {
let statement = statement.prepare("public");
assert!(statement.starts_with(r#"CREATE TABLE "public".""#));
}
Ok(())
}