summaryrefslogtreecommitdiff
path: root/cli/tests/integration/run_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/integration/run_tests.rs')
-rw-r--r--cli/tests/integration/run_tests.rs68
1 files changed, 68 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index b3bd98098..4e0bbdfd2 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -4735,3 +4735,71 @@ itest!(unsafe_proto_flag {
http_server: false,
exit_code: 0,
});
+
+#[test]
+fn test_unstable_sloppy_imports() {
+ let context = TestContextBuilder::new().use_temp_cwd().build();
+ let temp_dir = context.temp_dir();
+ temp_dir.write("deno.json", r#"{ "unstable": ["sloppy-imports"] }"#);
+ temp_dir.write("a.ts", "export class A {}");
+ temp_dir.write("b.js", "export class B {}");
+ temp_dir.write("c.mts", "export class C {}");
+ temp_dir.write("d.mjs", "export class D {}");
+ temp_dir.write("e.tsx", "export class E {}");
+ temp_dir.write("f.jsx", "export class F {}");
+ let dir = temp_dir.path().join("dir");
+ dir.create_dir_all();
+ dir.join("index.tsx").write("export class G {}");
+ temp_dir.write(
+ "main.ts",
+ r#"import * as a from "./a.js";
+import * as b from "./b";
+import * as c from "./c";
+import * as d from "./d";
+import * as e from "./e";
+import * as e2 from "./e.js";
+import * as f from "./f";
+import * as g from "./dir";
+console.log(a.A);
+console.log(b.B);
+console.log(c.C);
+console.log(d.D);
+console.log(e.E);
+console.log(e2.E);
+console.log(f.F);
+console.log(g.G);
+"#,
+ );
+
+ context
+ .new_command()
+ .args("run main.ts")
+ .run()
+ .assert_matches_text(
+ "Warning Sloppy import resolution (hint: update .js extension to .ts)
+ at file:///[WILDCARD]/main.ts:1:20
+Warning Sloppy import resolution (hint: add .js extension)
+ at file:///[WILDCARD]/main.ts:2:20
+Warning Sloppy import resolution (hint: add .mts extension)
+ at file:///[WILDCARD]/main.ts:3:20
+Warning Sloppy import resolution (hint: add .mjs extension)
+ at file:///[WILDCARD]/main.ts:4:20
+Warning Sloppy import resolution (hint: add .tsx extension)
+ at file:///[WILDCARD]/main.ts:5:20
+Warning Sloppy import resolution (hint: update .js extension to .tsx)
+ at file:///[WILDCARD]/main.ts:6:21
+Warning Sloppy import resolution (hint: add .jsx extension)
+ at file:///[WILDCARD]/main.ts:7:20
+Warning Sloppy import resolution (hint: specify path to index.tsx file in directory instead)
+ at file:///[WILDCARD]/main.ts:8:20
+[class A]
+[class B]
+[class C]
+[class D]
+[class E]
+[class E]
+[class F]
+[class G]
+",
+ );
+}