0.0.1-alpha.5.fix.1
This commit is contained in:
52
crates/knowledge-web-lib/unit_tests/assets.rs
Normal file
52
crates/knowledge-web-lib/unit_tests/assets.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
// file: crates/knowledge-web-lib/unit_tests/assets.rs
|
||||
// version: 1
|
||||
|
||||
//! Unit tests for Vite asset resolution.
|
||||
|
||||
#[test]
|
||||
fn development_assets_include_vite_client_before_main_entry() {
|
||||
let assets = match crate::ViteAssets::development("http://127.0.0.1:5173/") {
|
||||
Ok(value) => value,
|
||||
Err(error) => {
|
||||
assert!(error.is_empty(), "unexpected development asset error: {error}");
|
||||
return;
|
||||
},
|
||||
};
|
||||
assert_eq!(assets.scripts().len(), 2);
|
||||
assert_eq!(assets.scripts()[0], "http://127.0.0.1:5173/@vite/client");
|
||||
assert_eq!(assets.scripts()[1], "http://127.0.0.1:5173/src/main.ts");
|
||||
assert!(assets.stylesheets().is_empty());
|
||||
assert!(assets.static_assets_directory().is_none());
|
||||
assert!(assets.static_mount_path().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn production_manifest_resolves_hashes_and_asset_base() {
|
||||
let manifest = r#"{
|
||||
"src/main.ts": {
|
||||
"file": "assets/main-abc.js",
|
||||
"css": ["assets/main-def.css"],
|
||||
"isEntry": true
|
||||
}
|
||||
}"#;
|
||||
let assets = match crate::ViteAssets::from_manifest_text(manifest, "/", std::path::PathBuf::from("/tmp/knowledge-assets")) {
|
||||
Ok(value) => value,
|
||||
Err(error) => {
|
||||
assert!(error.is_empty(), "unexpected manifest error: {error}");
|
||||
return;
|
||||
},
|
||||
};
|
||||
assert_eq!(assets.scripts().len(), 1);
|
||||
assert_eq!(assets.scripts()[0], "/assets/main-abc.js");
|
||||
assert_eq!(assets.stylesheets().len(), 1);
|
||||
assert_eq!(assets.stylesheets()[0], "/assets/main-def.css");
|
||||
assert_eq!(assets.static_assets_directory(), Some(std::path::Path::new("/tmp/knowledge-assets")));
|
||||
assert_eq!(assets.static_mount_path(), Some("/assets"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn manifest_requires_the_stable_main_entry() {
|
||||
let manifest = r#"{"index.html": {"file": "assets/index.js", "isEntry": true}}"#;
|
||||
let result = crate::ViteAssets::from_manifest_text(manifest, "/", std::path::PathBuf::from("/tmp/knowledge-assets"));
|
||||
assert!(result.is_err());
|
||||
}
|
||||
Reference in New Issue
Block a user