diff options
Diffstat (limited to 'cli/tests/integration/run_tests.rs')
-rw-r--r-- | cli/tests/integration/run_tests.rs | 106 |
1 files changed, 103 insertions, 3 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 41711e678..9720f2577 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -96,11 +96,17 @@ itest!(_017_import_redirect { output: "run/017_import_redirect.ts.out", }); -itest!(_017_import_redirect_nocheck { - args: "run --quiet --reload --no-check run/017_import_redirect.ts", +itest!(_017_import_redirect_check { + args: "run --quiet --reload --check run/017_import_redirect.ts", output: "run/017_import_redirect.ts.out", }); +itest!(_017_import_redirect_deno_modules_dir { + args: "run --quiet --reload --deno-modules-dir --check $TESTDATA/run/017_import_redirect.ts", + output: "run/017_import_redirect.ts.out", + temp_cwd: true, +}); + itest!(_017_import_redirect_info { args: "info --quiet --reload run/017_import_redirect.ts", output: "run/017_import_redirect_info.out", @@ -156,6 +162,14 @@ itest!(_027_redirect_typescript { http_server: true, }); +itest!(_027_redirect_typescript_deno_modules_dir { + args: + "run --quiet --reload --deno-modules-dir $TESTDATA/run/027_redirect_typescript.ts", + output: "run/027_redirect_typescript.ts.out", + http_server: true, + temp_cwd: true, +}); + itest!(_028_args { args: "run --quiet --reload run/028_args.ts --arg1 val1 --arg2=val2 -- arg3 arg4", @@ -186,6 +200,14 @@ itest!(_033_import_map_remote { http_server: true, }); +itest!(_033_import_map_deno_modules_dir_remote { + args: + "run --quiet --reload --import-map=http://127.0.0.1:4545/import_maps/import_map_remote.json --deno-modules-dir --unstable $TESTDATA/import_maps/test_remote.ts", + output: "run/033_import_map_remote.out", + http_server: true, + temp_cwd: true, +}); + itest!(_033_import_map_data_uri { args: "run --quiet --reload --import-map=data:application/json;charset=utf-8;base64,ewogICJpbXBvcnRzIjogewogICAgInRlc3Rfc2VydmVyLyI6ICJodHRwOi8vbG9jYWxob3N0OjQ1NDUvIgogIH0KfQ== run/import_maps/test_data.ts", @@ -1653,6 +1675,14 @@ itest!(jsx_import_source_pragma_with_config_no_check { http_server: true, }); +itest!(jsx_import_source_pragma_with_config_deno_modules_dir { + args: "run --reload --config jsx/deno-jsx.jsonc --no-lock --deno-modules-dir $TESTDATA/run/jsx_import_source_pragma.tsx", + output: "run/jsx_import_source.out", + http_server: true, + temp_cwd: true, + copy_temp_dir: Some("jsx/"), +}); + itest!(jsx_import_source_no_pragma_no_check { args: "run --reload --config jsx/deno-jsx.jsonc --no-lock --no-check run/jsx_import_source_no_pragma.tsx", @@ -1706,6 +1736,13 @@ itest!(reference_types_error { exit_code: 1, }); +itest!(reference_types_error_deno_modules_dir { + args: + "run --config run/checkjs.tsconfig.json --check --deno-modules-dir $TESTDATA/run/reference_types_error.js", + output: "run/reference_types_error.js.out", + exit_code: 1, +}); + itest!(reference_types_error_no_check { args: "run --no-check run/reference_types_error.js", output_str: Some(""), @@ -3000,7 +3037,7 @@ itest!( args: "run -A main.js", output: "run/with_package_json/no_deno_json/sub_dir/main.out", cwd: Some("run/with_package_json/no_deno_json/sub_dir"), - copy_temp_dir: Some("run/with_package_json/"), + copy_temp_dir: Some("run/with_package_json/no_deno_json/"), envs: env_vars_for_npm_tests_no_sync_download(), http_server: true, } @@ -4424,3 +4461,66 @@ itest!(extension_dynamic_import { output: "run/extension_dynamic_import.ts.out", exit_code: 1, }); + +#[test] +pub fn deno_modules_dir_config_file() { + let test_context = TestContextBuilder::new() + .use_http_server() + .use_temp_cwd() + .build(); + let temp_dir = test_context.temp_dir(); + let deno_modules_dir = temp_dir.path().join("deno_modules"); + let rm_deno_modules = || std::fs::remove_dir_all(&deno_modules_dir).unwrap(); + + temp_dir.write("deno.json", r#"{ "denoModulesDir": true }"#); + temp_dir.write( + "main.ts", + r#"import { returnsHi } from 'http://localhost:4545/subdir/mod1.ts'; +console.log(returnsHi());"#, + ); + + let deno_run_cmd = test_context.new_command().args("run --quiet main.ts"); + deno_run_cmd.run().assert_matches_text("Hi\n"); + + assert!(deno_modules_dir.exists()); + rm_deno_modules(); + temp_dir.write("deno.json", r#"{ "denoModulesDir": false }"#); + + deno_run_cmd.run().assert_matches_text("Hi\n"); + assert!(!deno_modules_dir.exists()); + test_context + .new_command() + .args("cache --quiet --deno-modules-dir main.ts") + .run(); + assert!(deno_modules_dir.exists()); + rm_deno_modules(); + + temp_dir.write("deno.json", r#"{ "denoModulesDir": true }"#); + let cache_command = test_context.new_command().args("cache --quiet main.ts"); + cache_command.run(); + + assert!(deno_modules_dir.exists()); + let mod1_file = deno_modules_dir + .join("http_localhost_4545") + .join("subdir") + .join("mod1.ts"); + mod1_file.write("export function returnsHi() { return 'bye bye bye'; }"); + + // won't match the lockfile now + deno_run_cmd + .run() + .assert_matches_text(r#"error: The source code is invalid, as it does not match the expected hash in the lock file. + Specifier: http://localhost:4545/subdir/mod1.ts + Lock file: [WILDCARD]deno.lock +"#) + .assert_exit_code(10); + + // try updating by deleting the lockfile + let lockfile = temp_dir.path().join("deno.lock"); + lockfile.remove_file(); + cache_command.run(); + + // now it should run + deno_run_cmd.run().assert_matches_text("bye bye bye\n"); + assert!(lockfile.exists()); +} |