summaryrefslogtreecommitdiff
path: root/tests/integration/run_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/run_tests.rs')
-rw-r--r--tests/integration/run_tests.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs
index 1d46cd249..59163bfe8 100644
--- a/tests/integration/run_tests.rs
+++ b/tests/integration/run_tests.rs
@@ -5137,3 +5137,36 @@ console.log(add(3, 4));
let output = test_context.new_command().args("run main.ts").run();
output.assert_matches_text("[WILDCARD]5\n7\n");
}
+
+#[test]
+fn run_etag_delete_source_cache() {
+ let test_context = TestContextBuilder::new()
+ .use_temp_cwd()
+ .use_http_server()
+ .build();
+ test_context
+ .temp_dir()
+ .write("main.ts", "import 'http://localhost:4545/etag_script.ts'");
+ test_context
+ .new_command()
+ .args("cache main.ts")
+ .run()
+ .skip_output_check();
+
+ // The cache is currently stored unideally in two files where one file has the headers
+ // and the other contains the body. An issue can happen with the etag header where the
+ // headers file exists, but the body was deleted. We need to get the cache to gracefully
+ // handle this scenario.
+ let deno_dir = test_context.deno_dir().path();
+ let etag_script_path = deno_dir.join("deps/http/localhost_PORT4545/26110db7d42c9bad32386735cbc05c301f83e4393963deb8da14fec3b4202a13");
+ assert!(etag_script_path.exists());
+ etag_script_path.remove_file();
+
+ test_context
+ .new_command()
+ .args("cache --reload --log-level=debug main.ts")
+ .run()
+ .assert_matches_text(
+ "[WILDCARD]Cache body not found. Trying again without etag.[WILDCARD]",
+ );
+}