mirror of
https://github.com/denoland/deno.git
synced 2024-11-22 15:06:54 -05:00
fix: emit when bundle contains single module (#4042)
Fixes #4031 When a bundle contains a single module, we were incorrectly determining the module name, resulting in a non-functional bundle. This PR corrects that determination.
This commit is contained in:
parent
742a16b506
commit
0e579ee9dc
3 changed files with 39 additions and 1 deletions
|
@ -306,7 +306,7 @@ export function normalizeString(
|
|||
export function commonPath(paths: string[], sep = "/"): string {
|
||||
const [first = "", ...remaining] = paths;
|
||||
if (first === "" || remaining.length === 0) {
|
||||
return "";
|
||||
return first.substring(0, first.lastIndexOf(sep) + 1);
|
||||
}
|
||||
const parts = first.split(sep);
|
||||
|
||||
|
|
|
@ -290,6 +290,42 @@ fn bundle_circular() {
|
|||
assert_eq!(output.stderr, b"");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bundle_single_module() {
|
||||
use tempfile::TempDir;
|
||||
|
||||
// First we have to generate a bundle of some module that has exports.
|
||||
let single_module =
|
||||
util::root_path().join("cli/tests/subdir/single_module.ts");
|
||||
assert!(single_module.is_file());
|
||||
let t = TempDir::new().expect("tempdir fail");
|
||||
let bundle = t.path().join("single_module.bundle.js");
|
||||
let mut deno = util::deno_cmd()
|
||||
.current_dir(util::root_path())
|
||||
.arg("bundle")
|
||||
.arg(single_module)
|
||||
.arg(&bundle)
|
||||
.spawn()
|
||||
.expect("failed to spawn script");
|
||||
let status = deno.wait().expect("failed to wait for the child process");
|
||||
assert!(status.success());
|
||||
assert!(bundle.is_file());
|
||||
|
||||
let output = util::deno_cmd()
|
||||
.current_dir(util::root_path())
|
||||
.arg("run")
|
||||
.arg("--reload")
|
||||
.arg(&bundle)
|
||||
.output()
|
||||
.expect("failed to spawn script");
|
||||
// check the output of the the bundle program.
|
||||
assert!(std::str::from_utf8(&output.stdout)
|
||||
.unwrap()
|
||||
.trim()
|
||||
.ends_with("Hello world!"));
|
||||
assert_eq!(output.stderr, b"");
|
||||
}
|
||||
|
||||
// TODO(#2933): Rewrite this test in rust.
|
||||
#[test]
|
||||
fn repl_test() {
|
||||
|
|
2
cli/tests/subdir/single_module.ts
Normal file
2
cli/tests/subdir/single_module.ts
Normal file
|
@ -0,0 +1,2 @@
|
|||
console.log("Hello world!");
|
||||
export {};
|
Loading…
Reference in a new issue