From d342c0df71bd3da75330af3dbf2949e8dab36c2b Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 14 Nov 2023 11:58:06 -0500 Subject: chore: switch compile tests over to the TestBuilder (#21180) --- test_util/src/builders.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'test_util/src/builders.rs') diff --git a/test_util/src/builders.rs b/test_util/src/builders.rs index 36b61ca1b..b340a8674 100644 --- a/test_util/src/builders.rs +++ b/test_util/src/builders.rs @@ -2,6 +2,7 @@ use std::cell::RefCell; use std::collections::HashMap; +use std::collections::HashSet; use std::ffi::OsStr; use std::io::Read; use std::io::Write; @@ -200,6 +201,7 @@ impl TestContext { args_vec: Default::default(), stdin: Default::default(), envs: Default::default(), + envs_remove: Default::default(), env_clear: Default::default(), cwd: Default::default(), split_output: false, @@ -229,6 +231,7 @@ pub struct TestCommandBuilder { args_vec: Vec, stdin: Option, envs: HashMap, + envs_remove: HashSet, env_clear: bool, cwd: Option, split_output: bool, @@ -280,6 +283,13 @@ impl TestCommandBuilder { self } + pub fn env_remove(mut self, key: impl AsRef) -> Self { + self + .envs_remove + .insert(key.as_ref().to_string_lossy().to_string()); + self + } + pub fn envs>( self, envs: impl IntoIterator, @@ -355,6 +365,13 @@ impl TestCommandBuilder { fn build_envs(&self) -> HashMap { let mut envs = self.context.envs.clone(); + envs.insert( + "DENO_DIR".to_string(), + self.context.deno_dir.path().to_string(), + ); + for key in &self.envs_remove { + envs.remove(key); + } for (key, value) in &self.envs { envs.insert(key.to_string(), value.to_string()); } @@ -419,7 +436,6 @@ impl TestCommandBuilder { if self.env_clear { command.env_clear(); } - command.env("DENO_DIR", self.context.deno_dir.path()); let mut envs = self.build_envs(); if !envs.contains_key("NPM_CONFIG_REGISTRY") { envs.insert("NPM_CONFIG_REGISTRY".to_string(), npm_registry_unset_url()); @@ -561,8 +577,9 @@ impl TestCommandOutput { self } - pub fn skip_exit_code_check(&self) { + pub fn skip_exit_code_check(&self) -> &Self { *self.asserted_exit_code.borrow_mut() = true; + self } pub fn exit_code(&self) -> Option { -- cgit v1.2.3