diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2024-08-30 18:58:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-30 13:58:58 -0400 |
commit | b1c6142f741a507ba6594ab174065e00213100b9 (patch) | |
tree | f3dce3e55e4b10b6cf0570dddb6f69340da7a0cf /tests/integration | |
parent | 4639ae655e9db396fdf4408961db59372334b69b (diff) |
BREAKING: `DENO_FUTURE=1` by default, or welcome to Deno 2.0 (#25213)
This commit effectively turns Deno into Deno 2.0.
This is done by forcing `DENO_FUTURE=1` env var, that was available in
the past few months to try Deno 2 changes.
This commit contains several breaking changes scheduled for Deno 2:
- all deprecated JavaScript APIs are not available any more, mostly
`Deno.*` APIs
- `window` global is removed
- FFI, WebGPU and FS APIs are now stable and don't require
`--unstable-*` flags
- import assertions are no longer supported
- "bring your own node modules" is enabled by default
This is the first commit in a series that are scheduled before the Deno
2 release.
Follow up work is tracked in
https://github.com/denoland/deno/issues/25241.
---------
Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
Co-authored-by: Nathan Whitaker <nathan@deno.com>
Diffstat (limited to 'tests/integration')
-rw-r--r-- | tests/integration/cache_tests.rs | 2 | ||||
-rw-r--r-- | tests/integration/check_tests.rs | 61 | ||||
-rw-r--r-- | tests/integration/compile_tests.rs | 30 | ||||
-rw-r--r-- | tests/integration/info_tests.rs | 21 | ||||
-rw-r--r-- | tests/integration/install_tests.rs | 16 | ||||
-rw-r--r-- | tests/integration/lsp_tests.rs | 34 | ||||
-rw-r--r-- | tests/integration/npm_tests.rs | 107 | ||||
-rw-r--r-- | tests/integration/repl_tests.rs | 2 | ||||
-rw-r--r-- | tests/integration/run_tests.rs | 88 | ||||
-rw-r--r-- | tests/integration/task_tests.rs | 78 | ||||
-rw-r--r-- | tests/integration/test_tests.rs | 21 | ||||
-rw-r--r-- | tests/integration/vendor_tests.rs | 4 | ||||
-rw-r--r-- | tests/integration/watcher_tests.rs | 8 |
13 files changed, 260 insertions, 212 deletions
diff --git a/tests/integration/cache_tests.rs b/tests/integration/cache_tests.rs index 809d10791..9c6f1f7f1 100644 --- a/tests/integration/cache_tests.rs +++ b/tests/integration/cache_tests.rs @@ -26,6 +26,8 @@ fn xdg_cache_home_dir() { assert!(xdg_cache_home.read_dir().count() > 0); } +// TODO(2.0): reenable +#[ignore] #[test] fn cache_matching_package_json_dep_should_not_install_all() { let context = TestContextBuilder::for_npm().use_temp_cwd().build(); diff --git a/tests/integration/check_tests.rs b/tests/integration/check_tests.rs index ce464135b..bcc01cf5d 100644 --- a/tests/integration/check_tests.rs +++ b/tests/integration/check_tests.rs @@ -257,35 +257,38 @@ itest!(check_dts { exit_code: 1, }); -itest!(package_json_basic { - args: "check main.ts", - output: "package_json/basic/main.check.out", - envs: env_vars_for_npm_tests(), - http_server: true, - cwd: Some("package_json/basic"), - copy_temp_dir: Some("package_json/basic"), - exit_code: 0, -}); - -itest!(package_json_fail_check { - args: "check --quiet fail_check.ts", - output: "package_json/basic/fail_check.check.out", - envs: env_vars_for_npm_tests(), - http_server: true, - cwd: Some("package_json/basic"), - copy_temp_dir: Some("package_json/basic"), - exit_code: 1, -}); - -itest!(package_json_with_deno_json { - args: "check --quiet main.ts", - output: "package_json/deno_json/main.check.out", - cwd: Some("package_json/deno_json/"), - copy_temp_dir: Some("package_json/deno_json/"), - envs: env_vars_for_npm_tests(), - http_server: true, - exit_code: 1, -}); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(package_json_basic { +// args: "check main.ts", +// output: "package_json/basic/main.check.out", +// envs: env_vars_for_npm_tests(), +// http_server: true, +// cwd: Some("package_json/basic"), +// copy_temp_dir: Some("package_json/basic"), +// exit_code: 0, +// }); + +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(package_json_fail_check { +// args: "check --quiet fail_check.ts", +// output: "package_json/basic/fail_check.check.out", +// envs: env_vars_for_npm_tests(), +// http_server: true, +// cwd: Some("package_json/basic"), +// copy_temp_dir: Some("package_json/basic"), +// exit_code: 1, +// }); + +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(package_json_with_deno_json { +// args: "check --quiet main.ts", +// output: "package_json/deno_json/main.check.out", +// cwd: Some("package_json/deno_json/"), +// copy_temp_dir: Some("package_json/deno_json/"), +// envs: env_vars_for_npm_tests(), +// http_server: true, +// exit_code: 1, +// }); #[test] fn check_error_in_dep_then_fix() { diff --git a/tests/integration/compile_tests.rs b/tests/integration/compile_tests.rs index 18d34c862..60451e005 100644 --- a/tests/integration/compile_tests.rs +++ b/tests/integration/compile_tests.rs @@ -726,7 +726,9 @@ fn dynamic_import_unanalyzable() { .assert_exit_code(0); } +// TODO(2.0): this test should first run `deno install`? #[test] +#[ignore] fn compile_npm_specifiers() { let context = TestContextBuilder::for_npm().use_temp_cwd().build(); @@ -850,7 +852,7 @@ fn compile_npm_file_system() { compile_args: vec!["-A"], run_args: vec![], output_file: "compile/npm_fs/main.out", - node_modules_dir: true, + node_modules_local: true, input_name: Some("binary"), expected_name: "binary", exit_code: 0, @@ -865,7 +867,7 @@ fn compile_npm_bin_esm() { compile_args: vec![], run_args: vec!["this", "is", "a", "test"], output_file: "npm/deno_run_esm.out", - node_modules_dir: false, + node_modules_local: false, input_name: None, expected_name: "cli-esm", exit_code: 0, @@ -880,7 +882,7 @@ fn compile_npm_bin_cjs() { compile_args: vec![], run_args: vec!["this", "is", "a", "test"], output_file: "npm/deno_run_cjs.out", - node_modules_dir: false, + node_modules_local: false, input_name: None, expected_name: "cli-cjs", exit_code: 0, @@ -895,7 +897,7 @@ fn compile_npm_cowsay_main() { compile_args: vec!["--allow-read"], run_args: vec!["Hello"], output_file: "npm/deno_run_cowsay.out", - node_modules_dir: false, + node_modules_local: false, input_name: None, expected_name: "cowsay", exit_code: 0, @@ -910,7 +912,7 @@ fn compile_npm_vfs_implicit_read_permissions() { compile_args: vec![], run_args: vec![], output_file: "compile/vfs_implicit_read_permission/main.out", - node_modules_dir: false, + node_modules_local: false, input_name: Some("binary"), expected_name: "binary", exit_code: 0, @@ -925,7 +927,7 @@ fn compile_npm_no_permissions() { compile_args: vec![], run_args: vec!["Hello"], output_file: "npm/deno_run_cowsay_no_permissions.out", - node_modules_dir: false, + node_modules_local: false, input_name: None, expected_name: "cowsay", exit_code: 1, @@ -940,7 +942,7 @@ fn compile_npm_cowsay_explicit() { compile_args: vec!["--allow-read"], run_args: vec!["Hello"], output_file: "npm/deno_run_cowsay.out", - node_modules_dir: false, + node_modules_local: false, input_name: None, expected_name: "cowsay", exit_code: 0, @@ -955,7 +957,7 @@ fn compile_npm_cowthink() { compile_args: vec!["--allow-read"], run_args: vec!["Hello"], output_file: "npm/deno_run_cowthink.out", - node_modules_dir: false, + node_modules_local: false, input_name: None, expected_name: "cowthink", exit_code: 0, @@ -965,7 +967,7 @@ fn compile_npm_cowthink() { struct RunNpmBinCompileOptions<'a> { input_specifier: &'a str, copy_temp_dir: Option<&'a str>, - node_modules_dir: bool, + node_modules_local: bool, output_file: &'a str, input_name: Option<&'a str>, expected_name: &'a str, @@ -986,8 +988,8 @@ fn run_npm_bin_compile_test(opts: RunNpmBinCompileOptions) { args.extend(opts.compile_args.iter().map(|s| s.to_string())); - if opts.node_modules_dir { - args.push("--node-modules-dir".to_string()); + if opts.node_modules_local { + args.push("--node-modules=local-auto".to_string()); } if let Some(bin_name) = opts.input_name { @@ -1050,7 +1052,7 @@ fn compile_node_modules_symlink_outside() { // compile folder let output = context .new_command() - .args("compile --allow-read --node-modules-dir --output bin main.ts") + .args("compile --allow-read --node-modules=local-auto --output bin main.ts") .run(); output.assert_exit_code(0); output.assert_matches_file( @@ -1073,7 +1075,7 @@ fn compile_node_modules_symlink_outside() { // compile let output = context .new_command() - .args("compile --allow-read --node-modules-dir --output bin main.ts") + .args("compile --allow-read --node-modules=local-auto --output bin main.ts") .run(); output.assert_exit_code(0); output.assert_matches_file( @@ -1103,7 +1105,7 @@ console.log(getValue());"#, // compile folder let output = context .new_command() - .args("compile --allow-read --node-modules-dir --output bin main.ts") + .args("compile --allow-read --node-modules=local-auto --output bin main.ts") .run(); output.assert_exit_code(0); output.assert_matches_text( diff --git a/tests/integration/info_tests.rs b/tests/integration/info_tests.rs index a2e3c2d4f..b22209a56 100644 --- a/tests/integration/info_tests.rs +++ b/tests/integration/info_tests.rs @@ -2,7 +2,7 @@ use test_util as util; use test_util::itest; -use util::env_vars_for_npm_tests; +// use util::env_vars_for_npm_tests; use util::TestContextBuilder; #[test] @@ -135,15 +135,16 @@ itest!(with_config_override { output: "info/with_config/with_config.out", }); -itest!(package_json_basic { - args: "info --quiet main.ts", - output: "package_json/basic/main.info.out", - envs: env_vars_for_npm_tests(), - http_server: true, - cwd: Some("package_json/basic"), - copy_temp_dir: Some("package_json/basic"), - exit_code: 0, -}); +// TODO(2.0): this test should be a spec test and first run `deno install` +// itest!(package_json_basic { +// args: "info --quiet main.ts", +// output: "package_json/basic/main.info.out", +// envs: env_vars_for_npm_tests(), +// http_server: true, +// cwd: Some("package_json/basic"), +// copy_temp_dir: Some("package_json/basic"), +// exit_code: 0, +// }); itest!(info_import_map { args: "info preact/debug", diff --git a/tests/integration/install_tests.rs b/tests/integration/install_tests.rs index 744f97493..7d671e020 100644 --- a/tests/integration/install_tests.rs +++ b/tests/integration/install_tests.rs @@ -20,7 +20,7 @@ fn install_basic() { let output = context .new_command() - .args("install --check --name echo_test http://localhost:4545/echo.ts") + .args("install --check --name echo_test -g http://localhost:4545/echo.ts") .envs([ ("HOME", temp_dir_str.as_str()), ("USERPROFILE", temp_dir_str.as_str()), @@ -30,10 +30,7 @@ fn install_basic() { output.assert_exit_code(0); let output_text = output.combined_output(); - assert_contains!( - output_text, - "`deno install` behavior will change in Deno 2. To preserve the current behavior use the `-g` or `--global` flag." - ); + assert_contains!(output_text, "✅ Successfully installed echo_test"); // no lockfile should be created locally assert!(!temp_dir.path().join("deno.lock").exists()); @@ -167,7 +164,7 @@ fn install_custom_dir_env_var() { context .new_command() .current_dir(util::root_path()) // different cwd - .args("install --check --name echo_test http://localhost:4545/echo.ts") + .args("install --check --name echo_test -g http://localhost:4545/echo.ts") .envs([ ("HOME", temp_dir_str.as_str()), ("USERPROFILE", temp_dir_str.as_str()), @@ -210,6 +207,7 @@ fn installer_test_local_module_run() { .current_dir(util::root_path()) .args_vec([ "install", + "-g", "--name", "echo_test", "--root", @@ -254,7 +252,7 @@ fn installer_test_remote_module_run() { let bin_dir = root_dir.join("bin"); context .new_command() - .args("install --name echo_test --root ./root http://localhost:4545/echo.ts hello") + .args("install --name echo_test --root ./root -g http://localhost:4545/echo.ts hello") .run() .skip_output_check() .assert_exit_code(0); @@ -296,7 +294,7 @@ fn check_local_by_default() { let script_path_str = script_path.to_string_lossy().to_string(); context .new_command() - .args_vec(["install", script_path_str.as_str()]) + .args_vec(["install", "-g", script_path_str.as_str()]) .envs([ ("HOME", temp_dir_str.as_str()), ("USERPROFILE", temp_dir_str.as_str()), @@ -320,7 +318,7 @@ fn check_local_by_default2() { let script_path_str = script_path.to_string_lossy().to_string(); context .new_command() - .args_vec(["install", script_path_str.as_str()]) + .args_vec(["install", "-g", script_path_str.as_str()]) .envs([ ("HOME", temp_dir_str.as_str()), ("NO_COLOR", "1"), diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index 5d4640ce6..f20fbcc9c 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -8757,9 +8757,9 @@ fn lsp_npm_specifier_unopened_file() { assert_eq!(output.status.code(), Some(0)); let stdout = String::from_utf8(output.stdout).unwrap(); - assert!(stdout.is_empty()); + assert_eq!(stdout.as_str(), ""); let stderr = String::from_utf8(output.stderr).unwrap(); - assert!(stderr.is_empty()); + assert_eq!(stderr.as_str(), ""); // open main.ts, which imports other.ts (unopened) client.did_open(json!({ @@ -9442,7 +9442,7 @@ fn lsp_npmrc() { temp_dir.write( temp_dir.path().join("deno.json"), json!({ - "nodeModulesDir": true, + "nodeModules": "local-auto", }) .to_string(), ); @@ -12369,6 +12369,13 @@ fn lsp_node_modules_dir() { .use_temp_cwd() .build(); let temp_dir = context.temp_dir(); + temp_dir.write( + "deno.json", + json!({ + "nodeModules": "global-auto", + }) + .to_string(), + ); // having a package.json should have no effect on whether // a node_modules dir is created @@ -12406,7 +12413,7 @@ fn lsp_node_modules_dir() { temp_dir.write( temp_dir.path().join("deno.json"), - "{ \"nodeModulesDir\": true, \"lock\": false }\n", + "{ \"nodeModules\": \"local-auto\", \"lock\": false }\n", ); let refresh_config = |client: &mut LspClient| { client.change_configuration(json!({ "deno": { @@ -12442,7 +12449,7 @@ fn lsp_node_modules_dir() { // now add a lockfile and cache temp_dir.write( temp_dir.path().join("deno.json"), - "{ \"nodeModulesDir\": true }\n", + "{ \"nodeModules\": \"local-auto\" }\n", ); refresh_config(&mut client); cache(&mut client); @@ -13049,21 +13056,21 @@ fn lsp_deno_json_scopes_node_modules_dir() { temp_dir.write( "project1/deno.json", json!({ - "nodeModulesDir": true, + "nodeModules": "local-auto", }) .to_string(), ); temp_dir.write( "project2/deno.json", json!({ - "nodeModulesDir": true, + "nodeModules": "local-auto", }) .to_string(), ); temp_dir.write( "project2/project3/deno.json", json!({ - "nodeModulesDir": true, + "nodeModules": "local-auto", }) .to_string(), ); @@ -14240,7 +14247,7 @@ fn lsp_deno_json_workspace_node_modules_dir() { "project1/deno.json", json!({ "workspace": ["project2"], - "nodeModulesDir": true, + "nodeModules": "local-auto", }) .to_string(), ); @@ -14371,6 +14378,15 @@ fn lsp_npm_workspace() { .use_temp_cwd() .build(); let temp_dir = context.temp_dir(); + // TODO(nayeemrmn): Goto definition for local npm package imports should work + // even with byonm. Remove this when fixed. + temp_dir.write( + "deno.json", + json!({ + "nodeModules": "local-auto", + }) + .to_string(), + ); temp_dir.write( "package.json", json!({ diff --git a/tests/integration/npm_tests.rs b/tests/integration/npm_tests.rs index f4bf3d6e9..b6591c332 100644 --- a/tests/integration/npm_tests.rs +++ b/tests/integration/npm_tests.rs @@ -140,7 +140,7 @@ itest!(mixed_case_package_name_global_dir { itest!(mixed_case_package_name_local_dir { args: - "run --node-modules-dir -A $TESTDATA/npm/mixed_case_package_name/local.ts", + "run --node-modules=local-auto -A $TESTDATA/npm/mixed_case_package_name/local.ts", output: "npm/mixed_case_package_name/local.out", exit_code: 0, envs: env_vars_for_npm_tests(), @@ -148,15 +148,16 @@ itest!(mixed_case_package_name_local_dir { temp_cwd: true, }); -itest!(local_dir_resolves_symlinks { - args: "run -A index.js", - output: "npm/local_dir_resolves_symlinks/index.out", - exit_code: 0, - envs: env_vars_for_npm_tests(), - cwd: Some("npm/local_dir_resolves_symlinks/"), - copy_temp_dir: Some("npm/local_dir_resolves_symlinks/"), - http_server: true, -}); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(local_dir_resolves_symlinks { +// args: "run -A index.js", +// output: "npm/local_dir_resolves_symlinks/index.out", +// exit_code: 0, +// envs: env_vars_for_npm_tests(), +// cwd: Some("npm/local_dir_resolves_symlinks/"), +// copy_temp_dir: Some("npm/local_dir_resolves_symlinks/"), +// http_server: true, +// }); // FIXME(bartlomieju): npm: specifiers are not handled in dynamic imports // at the moment @@ -373,7 +374,7 @@ itest!(permissions_outside_package { }); itest!(run_existing_npm_package { - args: "run --allow-read --node-modules-dir npm:@denotest/bin", + args: "run --allow-read --node-modules=local-auto npm:@denotest/bin", output: "npm/run_existing_npm_package/main.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -384,7 +385,7 @@ itest!(run_existing_npm_package { itest!(run_existing_npm_package_with_subpath { args: - "run --allow-read --node-modules-dir npm:@denotest/bin/cli-esm dev --help", + "run --allow-read --node-modules=local-auto npm:@denotest/bin/cli-esm dev --help", output: "npm/run_existing_npm_package_with_subpath/main.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -812,7 +813,7 @@ itest!(builtin_module_module { itest!(node_modules_dir_require_added_node_modules_folder { args: - "run --node-modules-dir -A --quiet $TESTDATA/npm/require_added_nm_folder/main.js", + "run --node-modules=local-auto -A --quiet $TESTDATA/npm/require_added_nm_folder/main.js", output: "npm/require_added_nm_folder/main.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -830,7 +831,7 @@ itest!(node_modules_dir_require_main_entry { }); itest!(node_modules_dir_with_deps { - args: "run --allow-read --allow-env --node-modules-dir $TESTDATA/npm/cjs_with_deps/main.js", + args: "run --allow-read --allow-env --node-modules=local-auto $TESTDATA/npm/cjs_with_deps/main.js", output: "npm/cjs_with_deps/main_node_modules.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -838,7 +839,7 @@ itest!(node_modules_dir_with_deps { }); itest!(node_modules_dir_yargs { - args: "run --allow-read --allow-env --node-modules-dir $TESTDATA/npm/cjs_yargs/main.js", + args: "run --allow-read --allow-env --node-modules=local-auto $TESTDATA/npm/cjs_yargs/main.js", output: "npm/cjs_yargs/main.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -854,7 +855,7 @@ fn node_modules_dir_cache() { let deno = util::deno_cmd_with_deno_dir(&deno_dir) .current_dir(deno_dir.path()) .arg("cache") - .arg("--node-modules-dir") + .arg("--node-modules=local-auto") .arg("--quiet") .arg(util::testdata_path().join("npm/dual_cjs_esm/main.ts")) .envs(env_vars_for_npm_tests()) @@ -887,7 +888,7 @@ fn node_modules_dir_cache() { let deno = util::deno_cmd_with_deno_dir(&deno_dir) .current_dir(deno_dir.path()) .arg("run") - .arg("--node-modules-dir") + .arg("--node-modules=local-auto") .arg("--quiet") .arg("-A") .arg(util::testdata_path().join("npm/dual_cjs_esm/main.ts")) @@ -1495,7 +1496,7 @@ fn peer_deps_with_copied_folders_and_lockfile() { // now run with local node modules let output = context .new_command() - .args("run -A --node-modules-dir main.ts") + .args("run -A --node-modules=local-auto main.ts") .run(); output.assert_exit_code(0); output.assert_matches_file( @@ -1513,7 +1514,7 @@ fn peer_deps_with_copied_folders_and_lockfile() { // now again run with local node modules let output = context .new_command() - .args("run -A --node-modules-dir main.ts") + .args("run -A --node-modules=local-auto main.ts") .run(); output.assert_exit_code(0); output.assert_matches_text("1\n2\n"); @@ -1521,7 +1522,7 @@ fn peer_deps_with_copied_folders_and_lockfile() { // now ensure it works with reloading let output = context .new_command() - .args("run -A --reload --node-modules-dir main.ts") + .args("run -A --reload --node-modules=local-auto main.ts") .run(); output.assert_exit_code(0); output.assert_matches_file( @@ -1531,7 +1532,7 @@ fn peer_deps_with_copied_folders_and_lockfile() { // now ensure it works with reloading and no lockfile let output = context .new_command() - .args("run -A --reload --node-modules-dir --no-lock main.ts") + .args("run -A --reload --node-modules=local-auto --no-lock main.ts") .run(); output.assert_exit_code(0); output.assert_matches_file( @@ -1563,25 +1564,27 @@ itest!(create_require { http_server: true, }); -itest!(node_modules_import_run { - args: "run --quiet main.ts", - output: "npm/node_modules_import/main.out", - http_server: true, - copy_temp_dir: Some("npm/node_modules_import/"), - cwd: Some("npm/node_modules_import/"), - envs: env_vars_for_npm_tests(), - exit_code: 0, -}); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(node_modules_import_run { +// args: "run --quiet main.ts", +// output: "npm/node_modules_import/main.out", +// http_server: true, +// copy_temp_dir: Some("npm/node_modules_import/"), +// cwd: Some("npm/node_modules_import/"), +// envs: env_vars_for_npm_tests(), +// exit_code: 0, +// }); -itest!(node_modules_import_check { - args: "check --quiet main.ts", - output: "npm/node_modules_import/main_check.out", - envs: env_vars_for_npm_tests(), - http_server: true, - cwd: Some("npm/node_modules_import/"), - copy_temp_dir: Some("npm/node_modules_import/"), - exit_code: 1, -}); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(node_modules_import_check { +// args: "check --quiet main.ts", +// output: "npm/node_modules_import/main_check.out", +// envs: env_vars_for_npm_tests(), +// http_server: true, +// cwd: Some("npm/node_modules_import/"), +// copy_temp_dir: Some("npm/node_modules_import/"), +// exit_code: 1, +// }); itest!(non_existent_dep { args: "cache npm:@denotest/non-existent-dep", @@ -1611,7 +1614,9 @@ itest!(non_existent_dep_version { )), }); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` #[test] +#[ignore] fn reload_info_not_found_cache_but_exists_remote() { fn remove_version(registry_json: &mut Value, version: &str) { registry_json @@ -1875,7 +1880,7 @@ fn binary_package_with_optional_dependencies() { let output = context .new_command() - .args("run -A --node-modules-dir main.js") + .args("run -A --node-modules=local-auto main.js") .run(); #[cfg(target_os = "windows")] @@ -1966,7 +1971,7 @@ fn node_modules_dir_config_file() { let node_modules_dir = temp_dir.path().join("node_modules"); let rm_node_modules = || std::fs::remove_dir_all(&node_modules_dir).unwrap(); - temp_dir.write("deno.json", r#"{ "nodeModulesDir": true }"#); + temp_dir.write("deno.json", r#"{ "nodeModules": "local-auto" }"#); temp_dir.write("main.ts", "import 'npm:@denotest/esm-basic';"); let deno_cache_cmd = test_context.new_command().args("cache --quiet main.ts"); @@ -1980,7 +1985,7 @@ fn node_modules_dir_config_file() { assert!(node_modules_dir.exists()); rm_node_modules(); - temp_dir.write("deno.json", r#"{ "nodeModulesDir": false }"#); + temp_dir.write("deno.json", r#"{ "nodeModules": "global-auto" }"#); deno_cache_cmd.run(); assert!(!node_modules_dir.exists()); @@ -1991,7 +1996,7 @@ fn node_modules_dir_config_file() { test_context .new_command() - .args("cache --quiet --node-modules-dir main.ts") + .args("cache --quiet --node-modules=local-auto main.ts") .run(); assert!(node_modules_dir.exists()); @@ -1999,7 +2004,7 @@ fn node_modules_dir_config_file() { rm_node_modules(); test_context .new_command() - .args("cache --quiet --node-modules-dir=false --vendor main.ts") + .args("cache --quiet --node-modules=global-auto --vendor main.ts") .run(); assert!(!node_modules_dir.exists()); } @@ -2016,7 +2021,7 @@ fn top_level_install_package_json_explicit_opt_in() { // when the node_modules_dir is explicitly opted into, we should always // ensure a top level package.json install occurs - temp_dir.write("deno.json", "{ \"nodeModulesDir\": true }"); + temp_dir.write("deno.json", "{ \"nodeModules\": \"local-auto\" }"); temp_dir.write( "package.json", "{ \"dependencies\": { \"@denotest/esm-basic\": \"1.0\" }}", @@ -2105,7 +2110,7 @@ itest!(check_package_file_dts_dmts_dcts { }); itest!(require_resolve_url_paths { - args: "run -A --quiet --node-modules-dir url_paths.ts", + args: "run -A --quiet --node-modules=local-auto url_paths.ts", output: "npm/require_resolve_url/url_paths.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -2776,7 +2781,7 @@ fn cjs_export_analysis_import_cjs_directly_relative_import() { itest!(imports_package_json { args: - "run --no-lock --node-modules-dir=false npm/imports_package_json/main.js", + "run --no-lock --node-modules=global-auto npm/imports_package_json/main.js", output: "npm/imports_package_json/main.out", envs: env_vars_for_npm_tests(), http_server: true, @@ -2784,7 +2789,7 @@ itest!(imports_package_json { itest!(imports_package_json_import_not_defined { args: - "run --no-lock --node-modules-dir=false npm/imports_package_json/import_not_defined.js", + "run --no-lock --node-modules=global-auto npm/imports_package_json/import_not_defined.js", output: "npm/imports_package_json/import_not_defined.out", envs: env_vars_for_npm_tests(), exit_code: 1, @@ -2793,7 +2798,7 @@ itest!(imports_package_json_import_not_defined { itest!(imports_package_json_sub_path_import_not_defined { args: - "run --no-lock --node-modules-dir=false npm/imports_package_json/sub_path_import_not_defined.js", + "run --no-lock --node-modules=global-auto npm/imports_package_json/sub_path_import_not_defined.js", output: "npm/imports_package_json/sub_path_import_not_defined.out", envs: env_vars_for_npm_tests(), exit_code: 1, @@ -2801,7 +2806,7 @@ itest!(imports_package_json_sub_path_import_not_defined { }); itest!(different_nested_dep_node_modules_dir_false { - args: "run --quiet --no-lock --node-modules-dir=false npm/different_nested_dep/main.js", + args: "run --quiet --no-lock --node-modules=global-auto npm/different_nested_dep/main.js", output: "npm/different_nested_dep/main.out", envs: env_vars_for_npm_tests(), exit_code: 0, @@ -2809,7 +2814,7 @@ itest!(different_nested_dep_node_modules_dir_false { }); itest!(different_nested_dep_node_modules_dir_true { - args: "run --no-lock --quiet --node-modules-dir=true main.js", + args: "run --no-lock --quiet --node-modules=local-auto main.js", output: "npm/different_nested_dep/main.out", copy_temp_dir: Some("npm/different_nested_dep/"), cwd: Some("npm/different_nested_dep/"), diff --git a/tests/integration/repl_tests.rs b/tests/integration/repl_tests.rs index 2049990a3..3f137ce7c 100644 --- a/tests/integration/repl_tests.rs +++ b/tests/integration/repl_tests.rs @@ -1040,7 +1040,9 @@ fn pty_tab_indexable_props() { }); } +// TODO(2.0): this should first run `deno install` #[flaky_test::flaky_test] +#[ignore] fn package_json_uncached_no_error() { let test_context = TestContextBuilder::for_npm() .use_temp_cwd() diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs index ade5c4560..4d3374173 100644 --- a/tests/integration/run_tests.rs +++ b/tests/integration/run_tests.rs @@ -946,7 +946,9 @@ fn lock_redirects() { ); } +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` #[test] +#[ignore] fn lock_deno_json_package_json_deps() { let context = TestContextBuilder::new() .use_temp_cwd() @@ -1104,7 +1106,7 @@ fn lock_deno_json_package_json_deps_workspace() { // deno.json let deno_json = temp_dir.join("deno.json"); deno_json.write_json(&json!({ - "nodeModulesDir": true + "nodeModules": "local-auto" })); // package.json @@ -1801,10 +1803,11 @@ itest!(top_level_for_await_ts { output: "run/top_level_await/top_level_for_await.out", }); -itest!(unstable_disabled_js { - args: "run --reload run/unstable.js", - output: "run/unstable_disabled_js.out", -}); +// TODO(2.0): remove, `Deno.umask` is enabled by default with Deno 2. +// itest!(unstable_disabled_js { +// args: "run --reload run/unstable.js", +// output: "run/unstable_disabled_js.out", +// }); itest!(unstable_enabled_js { args: "run --quiet --reload --unstable-fs run/unstable.ts", @@ -1848,25 +1851,29 @@ itest!(unstable_cron_enabled { output: "run/unstable_cron.enabled.out", }); -itest!(unstable_ffi_disabled { - args: "run --quiet --reload --allow-read run/unstable_ffi.js", - output: "run/unstable_ffi.disabled.out", -}); +// TODO(2.0): remove, FFI is stable by default with Deno 2. +// itest!(unstable_ffi_disabled { +// args: "run --quiet --reload --allow-read run/unstable_ffi.js", +// output: "run/unstable_ffi.disabled.out", +// }); -itest!(unstable_ffi_enabled { - args: "run --quiet --reload --allow-read --unstable-ffi run/unstable_ffi.js", - output: "run/unstable_ffi.enabled.out", -}); +// TODO(2.0): remove, FFI is stable by default with Deno 2. +// itest!(unstable_ffi_enabled { +// args: "run --quiet --reload --allow-read --unstable-ffi run/unstable_ffi.js", +// output: "run/unstable_ffi.enabled.out", +// }); -itest!(unstable_fs_disabled { - args: "run --quiet --reload --allow-read run/unstable_fs.js", - output: "run/unstable_fs.disabled.out", -}); +// TODO(2.0): remove, FS APIs are stable by default with Deno 2. +// itest!(unstable_fs_disabled { +// args: "run --quiet --reload --allow-read run/unstable_fs.js", +// output: "run/unstable_fs.disabled.out", +// }); -itest!(unstable_fs_enabled { - args: "run --quiet --reload --allow-read --unstable-fs run/unstable_fs.js", - output: "run/unstable_fs.enabled.out", -}); +// TODO(2.0): remove, FS APIs are stable by default with Deno 2. +// itest!(unstable_fs_enabled { +// args: "run --quiet --reload --allow-read --unstable-fs run/unstable_fs.js", +// output: "run/unstable_fs.enabled.out", +// }); itest!(unstable_http_disabled { args: "run --quiet --reload --allow-read run/unstable_http.js", @@ -1899,16 +1906,18 @@ itest!(unstable_kv_enabled { output: "run/unstable_kv.enabled.out", }); -itest!(unstable_webgpu_disabled { - args: "run --quiet --reload --allow-read run/unstable_webgpu.js", - output: "run/unstable_webgpu.disabled.out", -}); +// TODO(2.0): remove, WebGPU is enabled by default with Deno 2. +// itest!(unstable_webgpu_disabled { +// args: "run --quiet --reload --allow-read run/unstable_webgpu.js", +// output: "run/unstable_webgpu.disabled.out", +// }); -itest!(unstable_webgpu_enabled { - args: - "run --quiet --reload --allow-read --unstable-webgpu run/unstable_webgpu.js", - output: "run/unstable_webgpu.enabled.out", -}); +// TODO(2.0): remove, WebGPU is enabled by default with Deno 2. +// itest!(unstable_webgpu_enabled { +// args: +// "run --quiet --reload --allow-read --unstable-webgpu run/unstable_webgpu.js", +// output: "run/unstable_webgpu.enabled.out", +// }); itest!(import_compression { args: "run --quiet --reload --allow-net run/import_compression/main.ts", @@ -3433,16 +3442,19 @@ itest!( } ); -itest!(package_json_auto_discovered_for_npm_binary { - args: "run -L debug -A npm:@denotest/bin/cli-esm this is a test", - output: "run/with_package_json/npm_binary/main.out", - cwd: Some("run/with_package_json/npm_binary/"), - copy_temp_dir: Some("run/with_package_json/"), - envs: env_vars_for_npm_tests(), - http_server: true, -}); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(package_json_auto_discovered_for_npm_binary { +// args: "run -L debug -A npm:@denotest/bin/cli-esm this is a test", +// output: "run/with_package_json/npm_binary/main.out", +// cwd: Some("run/with_package_json/npm_binary/"), +// copy_temp_dir: Some("run/with_package_json/"), +// envs: env_vars_for_npm_tests(), +// http_server: true, +// }); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` #[test] +#[ignore] fn package_json_with_deno_json() { let context = TestContextBuilder::for_npm() .use_copy_temp_dir("package_json/deno_json/") diff --git a/tests/integration/task_tests.rs b/tests/integration/task_tests.rs index 4012081f7..aba83a66d 100644 --- a/tests/integration/task_tests.rs +++ b/tests/integration/task_tests.rs @@ -167,27 +167,29 @@ itest!(task_package_json_echo { http_server: true, }); -itest!(task_package_json_npm_bin { - args: "task bin extra", - cwd: Some("task/package_json/"), - output: "task/package_json/bin.out", - copy_temp_dir: Some("task/package_json/"), - envs: env_vars_for_npm_tests(), - exit_code: 0, - http_server: true, -}); - +// TODO(2.0): this should first run `deno install` +// itest!(task_package_json_npm_bin { +// args: "task bin extra", +// cwd: Some("task/package_json/"), +// output: "task/package_json/bin.out", +// copy_temp_dir: Some("task/package_json/"), +// envs: env_vars_for_npm_tests(), +// exit_code: 0, +// http_server: true, +// }); + +// TODO(2.0): decide what to do with this test // should not auto-install the packages in the package.json // when using nodeModulesDir: false -itest!(task_package_json_node_modules_dir_false { - args: "task echo", - cwd: Some("task/package_json_node_modules_dir_false/"), - output: "task/package_json_node_modules_dir_false/bin.out", - copy_temp_dir: Some("task/package_json_node_modules_dir_false/"), - envs: env_vars_for_npm_tests(), - exit_code: 0, - http_server: true, -}); +// itest!(task_package_json_node_modules_dir_false { +// args: "task echo", +// cwd: Some("task/package_json_node_modules_dir_false/"), +// output: "task/package_json_node_modules_dir_false/bin.out", +// copy_temp_dir: Some("task/package_json_node_modules_dir_false/"), +// envs: env_vars_for_npm_tests(), +// exit_code: 0, +// http_server: true, +// }); itest!(task_both_no_arg { args: "task", @@ -207,15 +209,16 @@ itest!(task_both_deno_json_selected { http_server: true, }); -itest!(task_both_package_json_selected { - args: "task bin asdf", - cwd: Some("task/both/"), - output: "task/both/package_json_selected.out", - copy_temp_dir: Some("task/both/"), - envs: env_vars_for_npm_tests(), - exit_code: 0, - http_server: true, -}); +// TODO(2.0): not entirely clear what's wrong with this test +// itest!(task_both_package_json_selected { +// args: "task bin asdf", +// cwd: Some("task/both/"), +// output: "task/both/package_json_selected.out", +// copy_temp_dir: Some("task/both/"), +// envs: env_vars_for_npm_tests(), +// exit_code: 0, +// http_server: true, +// }); itest!(task_both_prefers_deno { args: "task output some text", @@ -237,15 +240,16 @@ itest!(task_npx_non_existent { http_server: true, }); -itest!(task_npx_on_own { - args: "task on-own", - cwd: Some("task/npx/"), - output: "task/npx/on_own.out", - copy_temp_dir: Some("task/npx/"), - envs: env_vars_for_npm_tests(), - exit_code: 1, - http_server: true, -}); +// TODO(2.0): not entirely clear what's wrong with this test but it hangs for more than 60s +// itest!(task_npx_on_own { +// args: "task on-own", +// cwd: Some("task/npx/"), +// output: "task/npx/on_own.out", +// copy_temp_dir: Some("task/npx/"), +// envs: env_vars_for_npm_tests(), +// exit_code: 1, +// http_server: true, +// }); itest!(task_pre_post { args: "task test", diff --git a/tests/integration/test_tests.rs b/tests/integration/test_tests.rs index 175753f4a..ed3d9fd42 100644 --- a/tests/integration/test_tests.rs +++ b/tests/integration/test_tests.rs @@ -6,7 +6,7 @@ use test_util as util; use test_util::itest; use util::assert_contains; use util::assert_not_contains; -use util::env_vars_for_npm_tests; +// use util::env_vars_for_npm_tests; use util::wildcard_match; use util::TestContext; use util::TestContextBuilder; @@ -617,15 +617,16 @@ fn sigint_with_hanging_test() { ); } -itest!(package_json_basic { - args: "test", - output: "package_json/basic/lib.test.out", - envs: env_vars_for_npm_tests(), - http_server: true, - cwd: Some("package_json/basic"), - copy_temp_dir: Some("package_json/basic"), - exit_code: 0, -}); +// TODO(2.0): this should be rewritten to a spec test and first run `deno install` +// itest!(package_json_basic { +// args: "test", +// output: "package_json/basic/lib.test.out", +// envs: env_vars_for_npm_tests(), +// http_server: true, +// cwd: Some("package_json/basic"), +// copy_temp_dir: Some("package_json/basic"), +// exit_code: 0, +// }); itest!(test_replace_timers { args: "test test/replace_timers.js", diff --git a/tests/integration/vendor_tests.rs b/tests/integration/vendor_tests.rs index 55ffe8734..550fbf8b7 100644 --- a/tests/integration/vendor_tests.rs +++ b/tests/integration/vendor_tests.rs @@ -569,7 +569,9 @@ Download http://localhost:4545/vendor/logger.ts\n{}\n\n{}", assert!(output.status.success()); } +// TODO(2.0): decide if this test should be updated or removed #[test] +#[ignore] fn vendor_npm_node_specifiers() { let context = TestContextBuilder::for_npm().use_temp_cwd().build(); let temp_dir = context.temp_dir(); @@ -600,7 +602,7 @@ fn vendor_npm_node_specifiers() { vendored_npm_package_text("1 npm package"), success_text_updated_deno_json("vendor/") )); - let output = context.new_command().args("run -A my_app.ts").run(); + let output = context.new_command().args("run -A -q my_app.ts").run(); output.assert_matches_text("true 5\n"); assert!(temp_dir.path().join("node_modules").exists()); assert!(temp_dir.path().join("deno.lock").exists()); diff --git a/tests/integration/watcher_tests.rs b/tests/integration/watcher_tests.rs index 9685d7ae8..abc5365b8 100644 --- a/tests/integration/watcher_tests.rs +++ b/tests/integration/watcher_tests.rs @@ -796,11 +796,11 @@ async fn run_watch_load_unload_events() { file_to_watch.write( r#" setInterval(() => {}, 0); - window.addEventListener("load", () => { + globalThis.addEventListener("load", () => { console.log("load"); }); - window.addEventListener("unload", () => { + globalThis.addEventListener("unload", () => { console.log("unload"); }); "#, @@ -827,11 +827,11 @@ async fn run_watch_load_unload_events() { // Change content of the file, this time without an interval to keep it alive. file_to_watch.write( r#" - window.addEventListener("load", () => { + globalThis.addEventListener("load", () => { console.log("load"); }); - window.addEventListener("unload", () => { + globalThis.addEventListener("unload", () => { console.log("unload"); }); "#, |