@@ -40,7 +40,6 @@ let mockExtensionState: {
4040 apiConfiguration : ProviderSettings
4141 currentTaskItem : { id : string } | null
4242 clineMessages : any [ ]
43- taskHeaderHighlightEnabled ?: boolean
4443} = {
4544 apiConfiguration : {
4645 apiProvider : "anthropic" ,
@@ -49,7 +48,6 @@ let mockExtensionState: {
4948 } as ProviderSettings ,
5049 currentTaskItem : { id : "test-task-id" } ,
5150 clineMessages : [ ] ,
52- taskHeaderHighlightEnabled : false ,
5351}
5452
5553// Mock the ExtensionStateContext
@@ -217,7 +215,6 @@ describe("TaskHeader", () => {
217215 } as ProviderSettings ,
218216 currentTaskItem : { id : "test-task-id" } ,
219217 clineMessages : [ ] ,
220- taskHeaderHighlightEnabled : false ,
221218 }
222219 } )
223220
@@ -426,175 +423,6 @@ describe("TaskHeader", () => {
426423 } )
427424 } )
428425
429- describe ( "Task header highlight" , ( ) => {
430- const completionMessages = [
431- {
432- type : "ask" ,
433- ask : "completion_result" ,
434- ts : Date . now ( ) ,
435- text : "Task completed!" ,
436- } ,
437- ]
438-
439- beforeEach ( ( ) => {
440- mockExtensionState = {
441- apiConfiguration : {
442- apiProvider : "anthropic" ,
443- apiKey : "test-api-key" ,
444- apiModelId : "claude-3-opus-20240229" ,
445- } as ProviderSettings ,
446- currentTaskItem : { id : "test-task-id" } ,
447- clineMessages : [ ] ,
448- taskHeaderHighlightEnabled : false ,
449- }
450- } )
451-
452- it ( "should apply green highlight class when task is complete and highlight is enabled" , ( ) => {
453- mockExtensionState = {
454- ...mockExtensionState ,
455- clineMessages : completionMessages ,
456- taskHeaderHighlightEnabled : true ,
457- }
458-
459- renderTaskHeader ( )
460-
461- const container = screen . getByTestId ( "task-header-container" )
462- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( true )
463- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( false )
464- } )
465-
466- it ( "should apply yellow highlight class when task needs user attention and highlight is enabled" , ( ) => {
467- mockExtensionState = {
468- ...mockExtensionState ,
469- clineMessages : [
470- {
471- type : "ask" ,
472- ask : "tool" ,
473- ts : Date . now ( ) ,
474- text : "Need permission to use tool" ,
475- } ,
476- ] ,
477- taskHeaderHighlightEnabled : true ,
478- }
479-
480- renderTaskHeader ( )
481-
482- const container = screen . getByTestId ( "task-header-container" )
483- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( true )
484- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( false )
485- } )
486-
487- it ( "should not apply highlight when highlight is disabled" , ( ) => {
488- mockExtensionState = {
489- ...mockExtensionState ,
490- clineMessages : completionMessages ,
491- taskHeaderHighlightEnabled : false ,
492- }
493-
494- renderTaskHeader ( )
495-
496- const container = screen . getByTestId ( "task-header-container" )
497- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( false )
498- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( false )
499- } )
500-
501- it ( "should not apply highlight when task is a subtask" , ( ) => {
502- mockExtensionState = {
503- ...mockExtensionState ,
504- clineMessages : completionMessages ,
505- taskHeaderHighlightEnabled : true ,
506- }
507-
508- renderTaskHeader ( { parentTaskId : "parent-task-123" } )
509-
510- const container = screen . getByTestId ( "task-header-container" )
511- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( false )
512- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( false )
513- } )
514-
515- it ( "should not apply highlight when last message is partial" , ( ) => {
516- mockExtensionState = {
517- ...mockExtensionState ,
518- clineMessages : [
519- {
520- type : "ask" ,
521- ask : "completion_result" ,
522- ts : Date . now ( ) ,
523- text : "Task completed!" ,
524- partial : true ,
525- } ,
526- ] ,
527- taskHeaderHighlightEnabled : true ,
528- }
529-
530- renderTaskHeader ( )
531-
532- const container = screen . getByTestId ( "task-header-container" )
533- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( false )
534- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( false )
535- } )
536-
537- it ( "should not apply highlight when no clineMessages exist" , ( ) => {
538- mockExtensionState = {
539- ...mockExtensionState ,
540- clineMessages : [ ] ,
541- taskHeaderHighlightEnabled : true ,
542- }
543-
544- renderTaskHeader ( )
545-
546- const container = screen . getByTestId ( "task-header-container" )
547- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( false )
548- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( false )
549- } )
550-
551- it ( "should not apply highlight when last relevant message has no ask type" , ( ) => {
552- mockExtensionState = {
553- ...mockExtensionState ,
554- clineMessages : [ { type : "say" , say : "text" , ts : Date . now ( ) , text : "Working..." } ] ,
555- taskHeaderHighlightEnabled : true ,
556- }
557-
558- renderTaskHeader ( )
559-
560- const container = screen . getByTestId ( "task-header-container" )
561- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( false )
562- expect ( container . classList . contains ( "task-header-highlight-yellow" ) ) . toBe ( false )
563- } )
564-
565- it ( "should apply green class when completion_result is followed by resume messages" , ( ) => {
566- mockExtensionState = {
567- ...mockExtensionState ,
568- clineMessages : [
569- {
570- type : "ask" ,
571- ask : "completion_result" ,
572- ts : Date . now ( ) - 2000 ,
573- text : "Task completed!" ,
574- } ,
575- {
576- type : "ask" ,
577- ask : "resume_completed_task" ,
578- ts : Date . now ( ) - 1000 ,
579- text : "Resume completed task?" ,
580- } ,
581- {
582- type : "ask" ,
583- ask : "resume_task" ,
584- ts : Date . now ( ) ,
585- text : "Resume task?" ,
586- } ,
587- ] ,
588- taskHeaderHighlightEnabled : true ,
589- }
590-
591- renderTaskHeader ( )
592-
593- const container = screen . getByTestId ( "task-header-container" )
594- expect ( container . classList . contains ( "task-header-highlight-green" ) ) . toBe ( true )
595- } )
596- } )
597-
598426 describe ( "Context window percentage calculation" , ( ) => {
599427 // The percentage should be calculated as:
600428 // contextTokens / (contextWindow - reservedForOutput) * 100
0 commit comments