1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#![cfg(feature = "wat")]
use anyhow::Result;
use wit_parser::Resolve;
/// Ensure that parse_wit_from_path works with directories
#[test]
fn parse_wit_dir() -> Result<()> {
drop(env_logger::try_init());
let mut resolver = Resolve::default();
let (package_id, _) = resolver.push_path("tests/wit/parse-dir/wit")?;
assert!(resolver
.select_world(package_id, "foo-world".into())
.is_ok());
Ok(())
}
/// Ensure that parse_wit_from_path works for a single file
#[test]
fn parse_wit_file() -> Result<()> {
drop(env_logger::try_init());
let mut resolver = Resolve::default();
let (package_id, _) = resolver.push_path("tests/wit/parse-dir/wit/deps/bar/bar.wit")?;
resolver.select_world(package_id, "bar-world".into())?;
assert!(resolver
.interfaces
.iter()
.any(|(_, iface)| iface.name == Some("bar".into())));
Ok(())
}
/// Ensure that parse_with_from_path fails for missing paths
#[test]
fn parse_wit_missing_path() -> Result<()> {
drop(env_logger::try_init());
let mut resolver = Resolve::default();
assert!(resolver.push_path("tests/nonexistent/path").is_err());
Ok(())
}
|