Skip to content

Commit c14acc3

Browse files
no tempdir
1 parent 19f2406 commit c14acc3

File tree

1 file changed

+24
-49
lines changed

1 file changed

+24
-49
lines changed

codex-rs/tui/src/lib.rs

Lines changed: 24 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -559,9 +559,9 @@ mod tests {
559559
use codex_core::token_data::IdTokenInfo;
560560
use codex_core::token_data::TokenData;
561561
use pretty_assertions::assert_eq;
562+
use std::path::PathBuf;
562563
use std::sync::atomic::AtomicUsize;
563564
use std::sync::atomic::Ordering;
564-
use tempdir::TempDir;
565565

566566
fn get_next_codex_home() -> PathBuf {
567567
static NEXT_CODEX_HOME_ID: AtomicUsize = AtomicUsize::new(0);
@@ -670,12 +670,20 @@ mod tests {
670670
));
671671
}
672672

673+
fn fake_workspace_path(component: &str) -> PathBuf {
674+
if cfg!(windows) {
675+
let mut path = PathBuf::from(r"C:\workspace");
676+
path.push(component);
677+
path
678+
} else {
679+
PathBuf::from(format!("/workspace/{component}"))
680+
}
681+
}
682+
673683
#[test]
674684
fn trust_path_respects_workspace_write_from_config() {
675-
let tmp = TempDir::new().expect("create temp dir");
676-
let project_dir = tmp.path().join("proj");
677-
std::fs::create_dir_all(&project_dir).expect("create project dir");
678-
let extra_root = tmp.path().join("extra-root");
685+
let project_dir = fake_workspace_path("proj");
686+
let extra_root = fake_workspace_path("extra-root");
679687

680688
let mut projects = std::collections::HashMap::new();
681689
projects.insert(
@@ -695,41 +703,24 @@ mod tests {
695703
..Default::default()
696704
};
697705

698-
// Build a Config instance and set its cwd to the trusted project dir
699-
let mut cfg = Config::load_from_base_config_with_overrides(
700-
config_toml.clone(),
701-
ConfigOverrides::default(),
702-
tmp.path().to_path_buf(),
703-
)
704-
.expect("load default config");
706+
let mut cfg = make_config();
705707
cfg.cwd = project_dir.clone();
708+
let mut expected_cfg = cfg.clone();
706709

707710
let show_trust = determine_repo_trust_state(&mut cfg, &config_toml, None, None, None)
708711
.expect("determine trust state");
709712
assert!(!show_trust);
710713

711-
// expected config should have updated approval and sandbox mode:
712-
// default isread-only, should now be workspace-write with
713-
// workspace-write policy preserved
714-
let expected_cfg = Config::load_from_base_config_with_overrides(
715-
config_toml.clone(),
716-
ConfigOverrides {
717-
cwd: Some(project_dir.clone()),
718-
sandbox_mode: Some(SandboxMode::WorkspaceWrite),
719-
approval_policy: Some(codex_core::protocol::AskForApproval::OnRequest),
720-
..Default::default()
721-
},
722-
tmp.path().to_path_buf(),
723-
)
724-
.expect("load expected config");
714+
expected_cfg.approval_policy = AskForApproval::OnRequest;
715+
expected_cfg.sandbox_policy =
716+
config_toml.derive_sandbox_policy(Some(SandboxMode::WorkspaceWrite));
717+
725718
assert_eq!(cfg, expected_cfg);
726719
}
727720

728721
#[test]
729722
fn trust_path_defaults_to_workspace_write_defaults() {
730-
let tmp = TempDir::new().expect("create temp dir");
731-
let project_dir = tmp.path().join("proj");
732-
std::fs::create_dir_all(&project_dir).expect("create project dir");
723+
let project_dir = fake_workspace_path("proj");
733724

734725
let mut projects = std::collections::HashMap::new();
735726
projects.insert(
@@ -743,31 +734,15 @@ mod tests {
743734
..Default::default()
744735
};
745736

746-
let mut cfg = Config::load_from_base_config_with_overrides(
747-
config_toml.clone(),
748-
ConfigOverrides {
749-
cwd: Some(project_dir.clone()),
750-
..Default::default()
751-
},
752-
tmp.path().to_path_buf(),
753-
)
754-
.expect("load default config");
737+
let mut cfg = make_config();
738+
cfg.cwd = project_dir.clone();
739+
let mut expected_cfg = cfg.clone();
755740

756741
let show_trust = determine_repo_trust_state(&mut cfg, &config_toml, None, None, None)
757742
.expect("determine trust state");
758743
assert!(!show_trust);
759744

760-
// expected config should match defaults, with the default workspace-write policy
761-
let mut expected_cfg = Config::load_from_base_config_with_overrides(
762-
config_toml.clone(),
763-
ConfigOverrides {
764-
cwd: Some(project_dir.clone()),
765-
approval_policy: Some(codex_core::protocol::AskForApproval::OnRequest),
766-
..Default::default()
767-
},
768-
tmp.path().to_path_buf(),
769-
)
770-
.expect("load expected config");
745+
expected_cfg.approval_policy = AskForApproval::OnRequest;
771746
expected_cfg.sandbox_policy = SandboxPolicy::new_workspace_write_policy();
772747

773748
assert_eq!(cfg, expected_cfg);

0 commit comments

Comments
 (0)