summaryrefslogtreecommitdiff
path: root/cli/tests/integration/cert_tests.rs
diff options
context:
space:
mode:
authorAndreu Botella <andreu@andreubotella.com>2023-01-17 16:18:24 -0800
committerGitHub <noreply@github.com>2023-01-18 01:18:24 +0100
commit69ec45eac76c63ea973c68479ea4f0bbf58b29e9 (patch)
tree6e58f2eecc903f91981c695430dc64dca98fe7b6 /cli/tests/integration/cert_tests.rs
parent1a792f8805d835257302baf538505451b149d84c (diff)
refactor(cli): Integrate standalone mode cert handling into `Flags` (#17419)
The way the standalone mode handles the `--cert` flag is different to all other modes. This is because `--cert` takes a path to the certificate file, which is directly added to the root cert store; except for compile mode, where its byte contents are stored in the standalone metadata, and they are added to the root cert store after the `ProcState` is created. This change instead changes `Flags::ca_file` (an `Option<String>`) into `Flags::ca_data`, which can represent a `String` file path or a `Vec<u8>` with the certificate contents. That way, standalone mode can create a `ProcState` whose root cert store alreay contains the certificate. This change also adds a tests for certificates in standalone mode, since there weren't any before. This refactor will help with implementing web workers in standalone mode in the future.
Diffstat (limited to 'cli/tests/integration/cert_tests.rs')
-rw-r--r--cli/tests/integration/cert_tests.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/cli/tests/integration/cert_tests.rs b/cli/tests/integration/cert_tests.rs
index 0a403c39a..9e0e810b0 100644
--- a/cli/tests/integration/cert_tests.rs
+++ b/cli/tests/integration/cert_tests.rs
@@ -112,6 +112,40 @@ fn cafile_fetch() {
assert_eq!(out, "");
}
+#[test]
+fn cafile_compile() {
+ let _g = util::http_server();
+ let dir = TempDir::new();
+ let exe = if cfg!(windows) {
+ dir.path().join("cert.exe")
+ } else {
+ dir.path().join("cert")
+ };
+ let output = util::deno_cmd()
+ .current_dir(util::testdata_path())
+ .arg("compile")
+ .arg("--cert")
+ .arg("./tls/RootCA.pem")
+ .arg("--allow-net")
+ .arg("--output")
+ .arg(&exe)
+ .arg("./cert/cafile_ts_fetch.ts")
+ .stdout(std::process::Stdio::piped())
+ .spawn()
+ .unwrap()
+ .wait_with_output()
+ .unwrap();
+ assert!(output.status.success());
+ let output = Command::new(exe)
+ .stdout(std::process::Stdio::piped())
+ .spawn()
+ .unwrap()
+ .wait_with_output()
+ .unwrap();
+ assert!(output.status.success());
+ assert_eq!(output.stdout, b"[WILDCARD]\nHello\n")
+}
+
#[flaky_test::flaky_test]
fn cafile_install_remote_module() {
let _g = util::http_server();