@@ -29,6 +29,11 @@ public class ClaudeExecTests
2929 private const string ExampleBaseUrl = "https://example.invalid" ;
3030 private const string FeatureABeta = "feature-a" ;
3131 private const string FeatureBBeta = "feature-b" ;
32+ private const string EffortFlag = "--effort" ;
33+ private const string EffortLow = "low" ;
34+ private const string EffortMedium = "medium" ;
35+ private const string EffortHigh = "high" ;
36+ private const string EffortAuto = "auto" ;
3237 private const string FlagNotFoundMessagePrefix = "Flag '" ;
3338 private const string FlagNotFoundMessageSuffix = "' was not found." ;
3439 private const string HealthCheckInput = "Health check" ;
@@ -206,6 +211,75 @@ public async Task BuildCommandArgs_WithReservedAdditionalCliFlag_Throws()
206211 await Assert . That ( exception ! . Message ) . Contains ( ReservedOutputFormatFlag ) ;
207212 }
208213
214+ [ Test ]
215+ public async Task BuildCommandArgs_WithEffortLow_SetsEffortFlag ( )
216+ {
217+ var exec = new ClaudeExec ( executablePath : TestConstants . ClaudeExecutablePath ) ;
218+
219+ var commandArgs = exec . BuildCommandArgs ( new ClaudeExecArgs
220+ {
221+ Input = SummarizeInput ,
222+ Effort = EffortLevel . Low ,
223+ } ) ;
224+
225+ await Assert . That ( GetRequiredFlagValue ( commandArgs , EffortFlag ) ) . IsEqualTo ( EffortLow ) ;
226+ }
227+
228+ [ Test ]
229+ public async Task BuildCommandArgs_WithEffortMedium_SetsEffortFlag ( )
230+ {
231+ var exec = new ClaudeExec ( executablePath : TestConstants . ClaudeExecutablePath ) ;
232+
233+ var commandArgs = exec . BuildCommandArgs ( new ClaudeExecArgs
234+ {
235+ Input = SummarizeInput ,
236+ Effort = EffortLevel . Medium ,
237+ } ) ;
238+
239+ await Assert . That ( GetRequiredFlagValue ( commandArgs , EffortFlag ) ) . IsEqualTo ( EffortMedium ) ;
240+ }
241+
242+ [ Test ]
243+ public async Task BuildCommandArgs_WithEffortHigh_SetsEffortFlag ( )
244+ {
245+ var exec = new ClaudeExec ( executablePath : TestConstants . ClaudeExecutablePath ) ;
246+
247+ var commandArgs = exec . BuildCommandArgs ( new ClaudeExecArgs
248+ {
249+ Input = SummarizeInput ,
250+ Effort = EffortLevel . High ,
251+ } ) ;
252+
253+ await Assert . That ( GetRequiredFlagValue ( commandArgs , EffortFlag ) ) . IsEqualTo ( EffortHigh ) ;
254+ }
255+
256+ [ Test ]
257+ public async Task BuildCommandArgs_WithEffortAuto_SetsEffortFlag ( )
258+ {
259+ var exec = new ClaudeExec ( executablePath : TestConstants . ClaudeExecutablePath ) ;
260+
261+ var commandArgs = exec . BuildCommandArgs ( new ClaudeExecArgs
262+ {
263+ Input = SummarizeInput ,
264+ Effort = EffortLevel . Auto ,
265+ } ) ;
266+
267+ await Assert . That ( GetRequiredFlagValue ( commandArgs , EffortFlag ) ) . IsEqualTo ( EffortAuto ) ;
268+ }
269+
270+ [ Test ]
271+ public async Task BuildCommandArgs_WithoutEffort_OmitsEffortFlag ( )
272+ {
273+ var exec = new ClaudeExec ( executablePath : TestConstants . ClaudeExecutablePath ) ;
274+
275+ var commandArgs = exec . BuildCommandArgs ( new ClaudeExecArgs
276+ {
277+ Input = SummarizeInput ,
278+ } ) ;
279+
280+ await Assert . That ( commandArgs . Contains ( EffortFlag ) ) . IsFalse ( ) ;
281+ }
282+
209283 private static JsonObject CreateBaseSettings ( )
210284 {
211285 return new JsonObject
0 commit comments