@@ -6,13 +6,13 @@ const mocks = vi.hoisted(() => ({
66 createScheduleJob : vi . fn ( ) ,
77 createScheduleRun : vi . fn ( ) ,
88 deleteScheduleJob : vi . fn ( ) ,
9- deleteScheduleJobsByRepo : vi . fn ( ) ,
109 cleanupOrphanedSchedules : vi . fn ( ) ,
1110 getScheduleJobById : vi . fn ( ) ,
1211 getRunningScheduleRunByJob : vi . fn ( ) ,
1312 getScheduleRunById : vi . fn ( ) ,
1413 listEnabledScheduleJobs : vi . fn ( ) ,
1514 listRunningScheduleRuns : vi . fn ( ) ,
15+ listScheduleJobIdsByRepo : vi . fn ( ) ,
1616 listScheduleJobsByRepo : vi . fn ( ) ,
1717 listScheduleRunsByJob : vi . fn ( ) ,
1818 updateScheduleJob : vi . fn ( ) ,
@@ -37,13 +37,13 @@ vi.mock('../../src/db/schedules', () => ({
3737 createScheduleJob : mocks . createScheduleJob ,
3838 createScheduleRun : mocks . createScheduleRun ,
3939 deleteScheduleJob : mocks . deleteScheduleJob ,
40- deleteScheduleJobsByRepo : mocks . deleteScheduleJobsByRepo ,
4140 cleanupOrphanedSchedules : mocks . cleanupOrphanedSchedules ,
4241 getScheduleJobById : mocks . getScheduleJobById ,
4342 getRunningScheduleRunByJob : mocks . getRunningScheduleRunByJob ,
4443 getScheduleRunById : mocks . getScheduleRunById ,
4544 listEnabledScheduleJobs : mocks . listEnabledScheduleJobs ,
4645 listRunningScheduleRuns : mocks . listRunningScheduleRuns ,
46+ listScheduleJobIdsByRepo : mocks . listScheduleJobIdsByRepo ,
4747 listScheduleJobsByRepo : mocks . listScheduleJobsByRepo ,
4848 listScheduleRunsByJob : mocks . listScheduleRunsByJob ,
4949 updateScheduleJob : mocks . updateScheduleJob ,
@@ -728,6 +728,20 @@ describe('ScheduleService', () => {
728728 expect ( ( ) => service . getRun ( 42 , 7 , 5 ) ) . toThrow ( 'Run not found' )
729729 } )
730730
731+ it ( 'prepares repo deletion by unregistering repo jobs without deleting records' , ( ) => {
732+ const service = new ScheduleService ( { } as never , createOpenCodeClientStub ( ) )
733+ const onJobChange = vi . fn ( )
734+ service . setJobChangeHandler ( onJobChange )
735+ mocks . listScheduleJobIdsByRepo . mockReturnValue ( [ 7 , 8 ] )
736+
737+ service . prepareRepoDelete ( 42 )
738+
739+ expect ( mocks . listScheduleJobIdsByRepo ) . toHaveBeenCalledWith ( expect . anything ( ) , 42 )
740+ expect ( onJobChange ) . toHaveBeenCalledWith ( null , 7 )
741+ expect ( onJobChange ) . toHaveBeenCalledWith ( null , 8 )
742+ expect ( onJobChange ) . toHaveBeenCalledTimes ( 2 )
743+ } )
744+
731745 it ( 'cancels by finalizing the run when the assistant already completed' , async ( ) => {
732746 const service = new ScheduleService ( { } as never , createOpenCodeClientStub ( ) )
733747 const runningRun : ScheduleRun = {
0 commit comments