summaryrefslogtreecommitdiff
path: root/cli/tools/vendor/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/vendor/build.rs')
-rw-r--r--cli/tools/vendor/build.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/cli/tools/vendor/build.rs b/cli/tools/vendor/build.rs
index 341ef8684..f56204c77 100644
--- a/cli/tools/vendor/build.rs
+++ b/cli/tools/vendor/build.rs
@@ -68,6 +68,14 @@ pub fn build(
graph.lock()?;
graph.valid()?;
+ let graph_errors = graph.errors();
+ if !graph_errors.is_empty() {
+ for err in &graph_errors {
+ log::error!("{}", err);
+ }
+ bail!("failed vendoring");
+ }
+
// figure out how to map remote modules to local
let all_modules = graph.modules();
let remote_modules = all_modules
@@ -1003,6 +1011,26 @@ mod test {
);
}
+ #[tokio::test]
+ async fn vendor_file_fails_loading_dynamic_import() {
+ let mut builder = VendorTestBuilder::with_default_setup();
+ let err = builder
+ .with_loader(|loader| {
+ loader.add("/mod.ts", "import 'https://localhost/mod.ts';");
+ loader.add("https://localhost/mod.ts", "await import('./test.ts');");
+ loader.add_failure(
+ "https://localhost/test.ts",
+ "500 Internal Server Error",
+ );
+ })
+ .build()
+ .await
+ .err()
+ .unwrap();
+
+ assert_eq!(err.to_string(), "failed vendoring");
+ }
+
fn to_file_vec(items: &[(&str, &str)]) -> Vec<(String, String)> {
items
.iter()