@@ -692,6 +692,49 @@ mod tests_branches {
692692
693693 assert ! ( get_branch_remote( repo_path, "foo" ) . is_err( ) ) ;
694694 }
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+ }
695738}
696739
697740#[ cfg( test) ]
0 commit comments