@@ -692,6 +692,49 @@ mod tests_branches {
692
692
693
693
assert ! ( get_branch_remote( repo_path, "foo" ) . is_err( ) ) ;
694
694
}
695
+
696
+ #[ test]
697
+ fn test_branch_no_upstream_merge_config ( ) {
698
+ let ( _r, repo) = repo_init ( ) . unwrap ( ) ;
699
+ let root = repo. path ( ) . parent ( ) . unwrap ( ) ;
700
+ let repo_path: & RepoPath =
701
+ & root. as_os_str ( ) . to_str ( ) . unwrap ( ) . into ( ) ;
702
+
703
+ let upstream_merge_res =
704
+ get_branch_upstream_merge ( & repo_path, "master" ) ;
705
+ assert ! (
706
+ upstream_merge_res. is_ok_and( |v| v. as_ref( ) . is_none( ) )
707
+ ) ;
708
+ }
709
+
710
+ #[ test]
711
+ fn test_branch_with_upstream_merge_config ( ) {
712
+ let ( _r, repo) = repo_init ( ) . unwrap ( ) ;
713
+ let root = repo. path ( ) . parent ( ) . unwrap ( ) ;
714
+ let repo_path: & RepoPath =
715
+ & root. as_os_str ( ) . to_str ( ) . unwrap ( ) . into ( ) ;
716
+
717
+ let branch_name = "master" ;
718
+ let upstrem_merge = "refs/heads/master" ;
719
+
720
+ let mut config = repo. config ( ) . unwrap ( ) ;
721
+ config
722
+ . set_str (
723
+ & format ! ( "branch.{branch_name}.merge" ) ,
724
+ & upstrem_merge,
725
+ )
726
+ . expect ( "fail set branch merge config" ) ;
727
+
728
+ let upstream_merge_res =
729
+ get_branch_upstream_merge ( & repo_path, & branch_name) ;
730
+ assert ! ( upstream_merge_res
731
+ . as_ref( )
732
+ . is_ok_and( |v| v. as_ref( ) . is_some( ) ) ) ;
733
+ assert_eq ! (
734
+ & upstream_merge_res. unwrap( ) . unwrap( ) ,
735
+ upstrem_merge
736
+ ) ;
737
+ }
695
738
}
696
739
697
740
#[ cfg( test) ]
0 commit comments