| #![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(()) |
| } |