@@ -559,9 +559,9 @@ mod tests {
559
559
use codex_core:: token_data:: IdTokenInfo ;
560
560
use codex_core:: token_data:: TokenData ;
561
561
use pretty_assertions:: assert_eq;
562
+ use std:: path:: PathBuf ;
562
563
use std:: sync:: atomic:: AtomicUsize ;
563
564
use std:: sync:: atomic:: Ordering ;
564
- use tempdir:: TempDir ;
565
565
566
566
fn get_next_codex_home ( ) -> PathBuf {
567
567
static NEXT_CODEX_HOME_ID : AtomicUsize = AtomicUsize :: new ( 0 ) ;
@@ -670,12 +670,20 @@ mod tests {
670
670
) ) ;
671
671
}
672
672
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
+
673
683
#[ test]
674
684
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" ) ;
679
687
680
688
let mut projects = std:: collections:: HashMap :: new ( ) ;
681
689
projects. insert (
@@ -695,41 +703,24 @@ mod tests {
695
703
..Default :: default ( )
696
704
} ;
697
705
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 ( ) ;
705
707
cfg. cwd = project_dir. clone ( ) ;
708
+ let mut expected_cfg = cfg. clone ( ) ;
706
709
707
710
let show_trust = determine_repo_trust_state ( & mut cfg, & config_toml, None , None , None )
708
711
. expect ( "determine trust state" ) ;
709
712
assert ! ( !show_trust) ;
710
713
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
+
725
718
assert_eq ! ( cfg, expected_cfg) ;
726
719
}
727
720
728
721
#[ test]
729
722
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" ) ;
733
724
734
725
let mut projects = std:: collections:: HashMap :: new ( ) ;
735
726
projects. insert (
@@ -743,31 +734,15 @@ mod tests {
743
734
..Default :: default ( )
744
735
} ;
745
736
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 ( ) ;
755
740
756
741
let show_trust = determine_repo_trust_state ( & mut cfg, & config_toml, None , None , None )
757
742
. expect ( "determine trust state" ) ;
758
743
assert ! ( !show_trust) ;
759
744
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 ;
771
746
expected_cfg. sandbox_policy = SandboxPolicy :: new_workspace_write_policy ( ) ;
772
747
773
748
assert_eq ! ( cfg, expected_cfg) ;
0 commit comments