@@ -85,7 +85,7 @@ describe("AutoApproveMenu", () => {
8585 } )
8686
8787 describe ( "Master checkbox behavior" , ( ) => {
88- it ( "should show 'None selected' when no sub-options are selected" , ( ) => {
88+ it ( "should show all icons with none highlighted when no sub-options are selected" , ( ) => {
8989 ; ( useExtensionState as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
9090 ...defaultExtensionState ,
9191 autoApprovalEnabled : false ,
@@ -98,11 +98,23 @@ describe("AutoApproveMenu", () => {
9898
9999 render ( < AutoApproveMenu /> )
100100
101- // Check that the text shows "None selected"
102- expect ( screen . getByText ( "None selected" ) ) . toBeInTheDocument ( )
101+ const container = screen . getByText ( "Auto-approve" ) . parentElement ?. parentElement
102+
103+ // All primary icons are rendered
104+ expect ( container ?. querySelector ( ".codicon-eye" ) ) . toBeInTheDocument ( )
105+ expect ( container ?. querySelector ( ".codicon-edit" ) ) . toBeInTheDocument ( )
106+ expect ( container ?. querySelector ( ".codicon-terminal" ) ) . toBeInTheDocument ( )
107+
108+ // None are active
109+ expect ( container ?. querySelector ( ".codicon-eye" ) ?. getAttribute ( "data-active" ) ) . toBe ( "false" )
110+ expect ( container ?. querySelector ( ".codicon-edit" ) ?. getAttribute ( "data-active" ) ) . toBe ( "false" )
111+ expect ( container ?. querySelector ( ".codicon-terminal" ) ?. getAttribute ( "data-active" ) ) . toBe ( "false" )
112+
113+ // "None selected" helper text is not shown anymore
114+ expect ( screen . queryByText ( "None selected" ) ) . not . toBeInTheDocument ( )
103115 } )
104116
105- it ( "should show enabled options when sub-options are selected" , ( ) => {
117+ it ( "should highlight the enabled icons when sub-options are selected" , ( ) => {
106118 ; ( useExtensionState as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
107119 ...defaultExtensionState ,
108120 autoApprovalEnabled : true ,
@@ -112,9 +124,15 @@ describe("AutoApproveMenu", () => {
112124
113125 render ( < AutoApproveMenu /> )
114126
115- // Check that the icon for read-only operations is shown
116- const container = screen . getByText ( "Auto-approve" ) . parentElement ?. parentElement
117- expect ( container ?. querySelector ( ".codicon-eye" ) ) . toBeInTheDocument ( )
127+ const container = screen . getByText ( "Auto-approve" ) . parentElement ?. parentElement as HTMLElement
128+ const eyeIcon = container . querySelector ( ".codicon-eye" ) as HTMLElement
129+ const editIcon = container . querySelector ( ".codicon-edit" ) as HTMLElement
130+
131+ expect ( eyeIcon ) . toBeInTheDocument ( )
132+ expect ( editIcon ) . toBeInTheDocument ( )
133+
134+ expect ( eyeIcon . getAttribute ( "data-active" ) ) . toBe ( "true" )
135+ expect ( editIcon . getAttribute ( "data-active" ) ) . toBe ( "false" )
118136 } )
119137
120138 it ( "should not allow toggling master checkbox when no options are selected" , ( ) => {
@@ -213,7 +231,7 @@ describe("AutoApproveMenu", () => {
213231 } )
214232
215233 describe ( "Complex scenarios" , ( ) => {
216- it ( "should display multiple enabled options in summary text " , ( ) => {
234+ it ( "should highlight multiple enabled icons in collapsed view " , ( ) => {
217235 ; ( useExtensionState as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
218236 ...defaultExtensionState ,
219237 autoApprovalEnabled : true ,
@@ -224,11 +242,10 @@ describe("AutoApproveMenu", () => {
224242
225243 render ( < AutoApproveMenu /> )
226244
227- // Should show icons for all enabled options
228- const container = screen . getByText ( "Auto-approve" ) . parentElement ?. parentElement
229- expect ( container ?. querySelector ( ".codicon-eye" ) ) . toBeInTheDocument ( ) // Read
230- expect ( container ?. querySelector ( ".codicon-edit" ) ) . toBeInTheDocument ( ) // Write
231- expect ( container ?. querySelector ( ".codicon-terminal" ) ) . toBeInTheDocument ( ) // Execute
245+ const container = screen . getByText ( "Auto-approve" ) . parentElement ?. parentElement as HTMLElement
246+ expect ( container . querySelector ( ".codicon-eye" ) ?. getAttribute ( "data-active" ) ) . toBe ( "true" ) // Read
247+ expect ( container . querySelector ( ".codicon-edit" ) ?. getAttribute ( "data-active" ) ) . toBe ( "true" ) // Write
248+ expect ( container . querySelector ( ".codicon-terminal" ) ?. getAttribute ( "data-active" ) ) . toBe ( "true" ) // Execute
232249 } )
233250
234251 it ( "should display tooltips on icons in collapsed view" , async ( ) => {
0 commit comments