From 7a2014027af88ad54473d63f03352a0e7ccf8880 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Wed, 11 Mar 2026 13:07:45 +0100 Subject: [PATCH] test(pack): add missing-wasm and missing-ui-entry check_package tests --- crates/weft-pack/src/main.rs | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/crates/weft-pack/src/main.rs b/crates/weft-pack/src/main.rs index 12461e3..92fe791 100644 --- a/crates/weft-pack/src/main.rs +++ b/crates/weft-pack/src/main.rs @@ -327,6 +327,61 @@ mod tests { let _ = std::fs::remove_dir_all(&tmp); } + #[test] + fn check_package_missing_wasm() { + use std::fs; + let tmp = std::env::temp_dir().join("weft_pack_test_no_wasm"); + let ui_dir = tmp.join("ui"); + let _ = fs::create_dir_all(&ui_dir); + fs::write(ui_dir.join("index.html"), b"").unwrap(); + fs::write( + tmp.join("wapp.toml"), + r#" +[package] +id = "com.example.nowasm" +name = "No Wasm" +version = "0.1.0" + +[runtime] +module = "app.wasm" + +[ui] +entry = "ui/index.html" +"#, + ) + .unwrap(); + let result = check_package(&tmp); + assert!(result.is_err()); + let _ = fs::remove_dir_all(&tmp); + } + + #[test] + fn check_package_missing_ui_entry() { + use std::fs; + let tmp = std::env::temp_dir().join("weft_pack_test_no_ui"); + let _ = fs::create_dir_all(&tmp); + fs::write(tmp.join("app.wasm"), b"\0asm\x01\0\0\0").unwrap(); + fs::write( + tmp.join("wapp.toml"), + r#" +[package] +id = "com.example.noui" +name = "No UI" +version = "0.1.0" + +[runtime] +module = "app.wasm" + +[ui] +entry = "ui/index.html" +"#, + ) + .unwrap(); + let result = check_package(&tmp); + assert!(result.is_err()); + let _ = fs::remove_dir_all(&tmp); + } + #[test] fn check_package_valid() { use std::fs;