summaryrefslogtreecommitdiff
path: root/cli/tests/integration/check_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/integration/check_tests.rs')
-rw-r--r--cli/tests/integration/check_tests.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/cli/tests/integration/check_tests.rs b/cli/tests/integration/check_tests.rs
index 8000ddc9d..5ceaffe51 100644
--- a/cli/tests/integration/check_tests.rs
+++ b/cli/tests/integration/check_tests.rs
@@ -1,7 +1,11 @@
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
+use std::process::Stdio;
+
use crate::itest;
+use test_util as util;
+
itest!(_095_check_with_bare_import {
args: "check 095_cache_with_bare_import.ts",
output: "095_cache_with_bare_import.ts.out",
@@ -43,3 +47,62 @@ itest!(declaration_header_file_with_no_exports {
args: "check --quiet declaration_header_file_with_no_exports.ts",
output_str: Some(""),
});
+
+#[test]
+fn cache_switching_config_then_no_config() {
+ let deno_dir = util::new_deno_dir();
+ assert!(does_type_checking(&deno_dir, true));
+ assert!(does_type_checking(&deno_dir, false));
+
+ // should now not do type checking even when it changes
+ // configs because it previously did
+ assert!(!does_type_checking(&deno_dir, true));
+ assert!(!does_type_checking(&deno_dir, false));
+
+ fn does_type_checking(deno_dir: &util::TempDir, with_config: bool) -> bool {
+ let mut cmd = util::deno_cmd_with_deno_dir(deno_dir);
+ cmd
+ .current_dir(util::testdata_path())
+ .stderr(Stdio::piped())
+ .arg("check")
+ .arg("check/cache_config_on_off/main.ts");
+ if with_config {
+ cmd
+ .arg("--config")
+ .arg("check/cache_config_on_off/deno.json");
+ }
+ let output = cmd.spawn().unwrap().wait_with_output().unwrap();
+ assert!(output.status.success());
+
+ let stderr = std::str::from_utf8(&output.stderr).unwrap();
+ stderr.contains("Check")
+ }
+}
+
+#[test]
+fn reload_flag() {
+ // should do type checking whenever someone specifies --reload
+ let deno_dir = util::new_deno_dir();
+ assert!(does_type_checking(&deno_dir, false));
+ assert!(!does_type_checking(&deno_dir, false));
+ assert!(does_type_checking(&deno_dir, true));
+ assert!(does_type_checking(&deno_dir, true));
+ assert!(!does_type_checking(&deno_dir, false));
+
+ fn does_type_checking(deno_dir: &util::TempDir, reload: bool) -> bool {
+ let mut cmd = util::deno_cmd_with_deno_dir(deno_dir);
+ cmd
+ .current_dir(util::testdata_path())
+ .stderr(Stdio::piped())
+ .arg("check")
+ .arg("check/cache_config_on_off/main.ts");
+ if reload {
+ cmd.arg("--reload");
+ }
+ let output = cmd.spawn().unwrap().wait_with_output().unwrap();
+ assert!(output.status.success());
+
+ let stderr = std::str::from_utf8(&output.stderr).unwrap();
+ stderr.contains("Check")
+ }
+}