@@ -85,23 +85,29 @@ describe('mc_sync', () => {
8585
8686 await mc_sync . execute ( { name : 'test-job' } , mockContext ) ;
8787
88- expect ( mockSyncWorktree ) . toHaveBeenCalledWith ( '/tmp/mc-worktrees/test-job' , 'rebase' ) ;
88+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
89+ '/tmp/mc-worktrees/test-job' , 'rebase' , undefined , undefined ,
90+ ) ;
8991 } ) ;
9092
9193 it ( 'should use specified rebase strategy' , async ( ) => {
9294 mockSyncWorktree . mockResolvedValue ( { success : true } ) ;
9395
9496 await mc_sync . execute ( { name : 'test-job' , strategy : 'rebase' } , mockContext ) ;
9597
96- expect ( mockSyncWorktree ) . toHaveBeenCalledWith ( '/tmp/mc-worktrees/test-job' , 'rebase' ) ;
98+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
99+ '/tmp/mc-worktrees/test-job' , 'rebase' , undefined , undefined ,
100+ ) ;
97101 } ) ;
98102
99103 it ( 'should use specified merge strategy' , async ( ) => {
100104 mockSyncWorktree . mockResolvedValue ( { success : true } ) ;
101105
102106 await mc_sync . execute ( { name : 'test-job' , strategy : 'merge' } , mockContext ) ;
103107
104- expect ( mockSyncWorktree ) . toHaveBeenCalledWith ( '/tmp/mc-worktrees/test-job' , 'merge' ) ;
108+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
109+ '/tmp/mc-worktrees/test-job' , 'merge' , undefined , undefined ,
110+ ) ;
105111 } ) ;
106112 } ) ;
107113
@@ -187,6 +193,53 @@ describe('mc_sync', () => {
187193 } ) ;
188194 } ) ;
189195
196+ describe ( 'source parameter' , ( ) => {
197+ beforeEach ( ( ) => {
198+ mockGetJobByName . mockResolvedValue ( createMockJob ( ) ) ;
199+ mockSyncWorktree . mockResolvedValue ( { success : true } ) ;
200+ } ) ;
201+
202+ it ( 'should have optional arg: source' , ( ) => {
203+ expect ( mc_sync . args . source ) . toBeDefined ( ) ;
204+ } ) ;
205+
206+ it ( 'should pass source=local to syncWorktree' , async ( ) => {
207+ await mc_sync . execute ( { name : 'test-job' , source : 'local' } , mockContext ) ;
208+
209+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
210+ '/tmp/mc-worktrees/test-job' , 'rebase' , undefined , 'local' ,
211+ ) ;
212+ } ) ;
213+
214+ it ( 'should pass source=origin to syncWorktree' , async ( ) => {
215+ await mc_sync . execute ( { name : 'test-job' , source : 'origin' } , mockContext ) ;
216+
217+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
218+ '/tmp/mc-worktrees/test-job' , 'rebase' , undefined , 'origin' ,
219+ ) ;
220+ } ) ;
221+
222+ it ( 'should pass baseBranch from job along with source' , async ( ) => {
223+ mockGetJobByName . mockResolvedValue ( createMockJob ( { baseBranch : 'develop' } ) ) ;
224+
225+ await mc_sync . execute ( { name : 'test-job' , source : 'local' } , mockContext ) ;
226+
227+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
228+ '/tmp/mc-worktrees/test-job' , 'rebase' , 'develop' , 'local' ,
229+ ) ;
230+ } ) ;
231+
232+ it ( 'should pass baseBranch without source' , async ( ) => {
233+ mockGetJobByName . mockResolvedValue ( createMockJob ( { baseBranch : 'develop' } ) ) ;
234+
235+ await mc_sync . execute ( { name : 'test-job' } , mockContext ) ;
236+
237+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith (
238+ '/tmp/mc-worktrees/test-job' , 'rebase' , 'develop' , undefined ,
239+ ) ;
240+ } ) ;
241+ } ) ;
242+
190243 describe ( 'different job names' , ( ) => {
191244 it ( 'should work with different job names' , async ( ) => {
192245 mockGetJobByName . mockResolvedValue ( createMockJob ( { name : 'feature-branch' } ) ) ;
@@ -217,7 +270,7 @@ describe('mc_sync', () => {
217270
218271 await mc_sync . execute ( { name : 'test-job' } , mockContext ) ;
219272
220- expect ( mockSyncWorktree ) . toHaveBeenCalledWith ( worktreePath , 'rebase' ) ;
273+ expect ( mockSyncWorktree ) . toHaveBeenCalledWith ( worktreePath , 'rebase' , undefined , undefined ) ;
221274 } ) ;
222275 } ) ;
223276} ) ;
0 commit comments