@@ -119,7 +119,7 @@ describe("Scheduled Task stop/restart cleanup", () => {
119119 { ...SUCCESS_RESPONSE } ,
120120 {
121121 ...SUCCESS_RESPONSE ,
122- stdout : "<Task><Settings><Enabled >true</Enabled ></Settings></Task>" ,
122+ stdout : "<Task><Settings><StartWhenAvailable >true</StartWhenAvailable ></Settings></Task>" ,
123123 } ,
124124 { ...SUCCESS_RESPONSE } ,
125125 ) ;
@@ -201,6 +201,28 @@ describe("Scheduled Task stop/restart cleanup", () => {
201201 } ) ;
202202 } ) ;
203203
204+ it ( "treats omitted Settings Enabled state as enabled" , async ( ) => {
205+ await withPreparedGatewayTask ( async ( { env } ) => {
206+ schtasksResponses . push (
207+ { ...SUCCESS_RESPONSE } ,
208+ {
209+ ...SUCCESS_RESPONSE ,
210+ stdout :
211+ "<Task><Triggers><LogonTrigger><Enabled>false</Enabled></LogonTrigger></Triggers><Settings><Hidden>false</Hidden></Settings></Task>" ,
212+ } ,
213+ { ...SUCCESS_RESPONSE } ,
214+ ) ;
215+
216+ await expect ( suspendScheduledTaskAutoStartForUpdate ( env ) ) . resolves . toBe ( true ) ;
217+
218+ expect ( schtasksCalls ) . toEqual ( [
219+ [ "/Query" ] ,
220+ [ "/Query" , "/TN" , "OpenClaw Gateway" , "/XML" ] ,
221+ [ "/Change" , "/TN" , "OpenClaw Gateway" , "/DISABLE" ] ,
222+ ] ) ;
223+ } ) ;
224+ } ) ;
225+
204226 it ( "reads NUL-separated Scheduled Task XML enabled state" , async ( ) => {
205227 await withPreparedGatewayTask ( async ( { env } ) => {
206228 const xml = "<Task><Settings><Enabled>true</Enabled></Settings></Task>" ;
0 commit comments