diff options
Diffstat (limited to 'cli/tests/integration/run_tests.rs')
-rw-r--r-- | cli/tests/integration/run_tests.rs | 68 |
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] +", + ); +} |