diff options
Diffstat (limited to 'cli/tests/integration/check_tests.rs')
-rw-r--r-- | cli/tests/integration/check_tests.rs | 108 |
1 files changed, 99 insertions, 9 deletions
diff --git a/cli/tests/integration/check_tests.rs b/cli/tests/integration/check_tests.rs index 5ceaffe51..ab96670ef 100644 --- a/cli/tests/integration/check_tests.rs +++ b/cli/tests/integration/check_tests.rs @@ -1,50 +1,52 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. +use std::process::Command; use std::process::Stdio; use crate::itest; use test_util as util; +use util::TempDir; itest!(_095_check_with_bare_import { - args: "check 095_cache_with_bare_import.ts", - output: "095_cache_with_bare_import.ts.out", + args: "check cache/095_cache_with_bare_import.ts", + output: "cache/095_cache_with_bare_import.ts.out", exit_code: 1, }); itest!(check_extensionless { args: "check --reload http://localhost:4545/subdir/no_js_ext", - output: "cache_extensionless.out", + output: "cache/cache_extensionless.out", http_server: true, }); itest!(check_random_extension { args: "check --reload http://localhost:4545/subdir/no_js_ext@1.0.0", - output: "cache_random_extension.out", + output: "cache/cache_random_extension.out", http_server: true, }); itest!(check_all { - args: "check --quiet --remote check_all.ts", - output: "check_all.out", + args: "check --quiet --remote check/check_all.ts", + output: "check/check_all.out", http_server: true, exit_code: 1, }); itest!(check_all_local { - args: "check --quiet check_all.ts", + args: "check --quiet check/check_all.ts", output_str: Some(""), http_server: true, }); itest!(module_detection_force { - args: "check --quiet module_detection_force.ts", + args: "check --quiet check/module_detection_force/main.ts", output_str: Some(""), }); // Regression test for https://github.com/denoland/deno/issues/14937. itest!(declaration_header_file_with_no_exports { - args: "check --quiet declaration_header_file_with_no_exports.ts", + args: "check --quiet check/declaration_header_file_with_no_exports.ts", output_str: Some(""), }); @@ -106,3 +108,91 @@ fn reload_flag() { stderr.contains("Check") } } + +#[test] +fn typecheck_declarations_ns() { + let output = util::deno_cmd() + .arg("test") + .arg("--doc") + .arg(util::root_path().join("cli/dts/lib.deno.ns.d.ts")) + .output() + .unwrap(); + println!("stdout: {}", String::from_utf8(output.stdout).unwrap()); + println!("stderr: {}", String::from_utf8(output.stderr).unwrap()); + assert!(output.status.success()); +} + +#[test] +fn typecheck_declarations_unstable() { + let output = util::deno_cmd() + .arg("test") + .arg("--doc") + .arg("--unstable") + .arg(util::root_path().join("cli/dts/lib.deno.unstable.d.ts")) + .output() + .unwrap(); + println!("stdout: {}", String::from_utf8(output.stdout).unwrap()); + println!("stderr: {}", String::from_utf8(output.stderr).unwrap()); + assert!(output.status.success()); +} + +#[test] +fn typecheck_core() { + let deno_dir = TempDir::new(); + let test_file = deno_dir.path().join("test_deno_core_types.ts"); + std::fs::write( + &test_file, + format!( + "import \"{}\";", + deno_core::resolve_path( + util::root_path() + .join("core/lib.deno_core.d.ts") + .to_str() + .unwrap() + ) + .unwrap() + ), + ) + .unwrap(); + let output = util::deno_cmd_with_deno_dir(&deno_dir) + .arg("run") + .arg(test_file.to_str().unwrap()) + .output() + .unwrap(); + println!("stdout: {}", String::from_utf8(output.stdout).unwrap()); + println!("stderr: {}", String::from_utf8(output.stderr).unwrap()); + assert!(output.status.success()); +} + +#[test] +fn ts_no_recheck_on_redirect() { + let deno_dir = util::new_deno_dir(); + let e = util::deno_exe_path(); + + let redirect_ts = util::testdata_path().join("run/017_import_redirect.ts"); + assert!(redirect_ts.is_file()); + let mut cmd = Command::new(e.clone()); + cmd.env("DENO_DIR", deno_dir.path()); + let mut initial = cmd + .current_dir(util::testdata_path()) + .arg("run") + .arg("--check") + .arg(redirect_ts.clone()) + .spawn() + .expect("failed to span script"); + let status_initial = + initial.wait().expect("failed to wait for child process"); + assert!(status_initial.success()); + + let mut cmd = Command::new(e); + cmd.env("DENO_DIR", deno_dir.path()); + let output = cmd + .current_dir(util::testdata_path()) + .arg("run") + .arg("--check") + .arg(redirect_ts) + .output() + .expect("failed to spawn script"); + + assert!(std::str::from_utf8(&output.stderr).unwrap().is_empty()); +} |