@@ -35,6 +35,8 @@ jest.mock("@/i18n/TranslationContext", () => ({
3535} ) )
3636
3737// Mock vscode utilities - this is necessary since we're not in a VSCode environment
38+ import { vscode } from "@/utils/vscode"
39+
3840jest . mock ( "@/utils/vscode" , ( ) => ( {
3941 vscode : {
4042 postMessage : jest . fn ( ) ,
@@ -175,9 +177,21 @@ describe("ContextManagementSettings", () => {
175177 render ( < ContextManagementSettings { ...propsWithAutoCondense } /> )
176178
177179 // Should render the auto condense section
178- expect ( screen . getByText ( "settings:experimental.autoCondenseContextPercent.label" ) ) . toBeInTheDocument ( )
179- expect ( screen . getByText ( "settings:experimental.condensingApiConfiguration.label" ) ) . toBeInTheDocument ( )
180- expect ( screen . getByText ( "settings:experimental.customCondensingPrompt.label" ) ) . toBeInTheDocument ( )
180+ // Should render the auto condense section
181+ const autoCondenseCheckbox = screen . getByTestId ( "auto-condense-context-checkbox" )
182+ expect ( autoCondenseCheckbox ) . toBeInTheDocument ( )
183+
184+ // Should render the slider with correct value
185+ const slider = screen . getByTestId ( "auto-condense-percent-slider" )
186+ expect ( slider ) . toBeInTheDocument ( )
187+
188+ // Should render the API config select
189+ const apiSelect = screen . getByRole ( "combobox" )
190+ expect ( apiSelect ) . toBeInTheDocument ( )
191+
192+ // Should render the custom prompt textarea
193+ const textarea = screen . getByRole ( "textbox" )
194+ expect ( textarea ) . toBeInTheDocument ( )
181195 } )
182196
183197 describe ( "Auto Condense Context functionality" , ( ) => {
@@ -199,12 +213,11 @@ describe("ContextManagementSettings", () => {
199213 render ( < ContextManagementSettings { ...props } /> )
200214
201215 // Find the auto condense percent slider
202- const sliders = screen . getAllByRole ( "slider" )
203- const autoCondenseSlider = sliders [ 0 ] // First slider should be auto condense
216+ const slider = screen . getByTestId ( "auto-condense-percent-slider" )
204217
205218 // Test slider interaction
206- autoCondenseSlider . focus ( )
207- fireEvent . keyDown ( autoCondenseSlider , { key : "ArrowRight" } )
219+ slider . focus ( )
220+ fireEvent . keyDown ( slider , { key : "ArrowRight" } )
208221
209222 expect ( mockSetCachedStateField ) . toHaveBeenCalledWith ( "autoCondenseContextPercent" , 76 )
210223 } )
@@ -217,16 +230,15 @@ describe("ContextManagementSettings", () => {
217230 it ( "updates condensing API configuration" , ( ) => {
218231 const mockSetCachedStateField = jest . fn ( )
219232 const mockPostMessage = jest . fn ( )
220- require ( "@/utils/vscode" ) . vscode . postMessage = mockPostMessage
233+ const postMessageSpy = jest . spyOn ( vscode , "postMessage" )
234+ postMessageSpy . mockImplementation ( mockPostMessage )
221235
222236 const props = { ...autoCondenseProps , setCachedStateField : mockSetCachedStateField }
223237 render ( < ContextManagementSettings { ...props } /> )
224238
225- // Find and click the select trigger
226- const selectTrigger = screen . getByRole ( "combobox" )
227- fireEvent . click ( selectTrigger )
239+ const apiSelect = screen . getByRole ( "combobox" )
240+ fireEvent . click ( apiSelect )
228241
229- // Select a different config
230242 const configOption = screen . getByText ( "Config 1" )
231243 fireEvent . click ( configOption )
232244
@@ -240,17 +252,18 @@ describe("ContextManagementSettings", () => {
240252 it ( "handles selecting default config option" , ( ) => {
241253 const mockSetCachedStateField = jest . fn ( )
242254 const mockPostMessage = jest . fn ( )
243- require ( "@/utils/vscode" ) . vscode . postMessage = mockPostMessage
255+ const postMessageSpy = jest . spyOn ( vscode , "postMessage" )
256+ postMessageSpy . mockImplementation ( mockPostMessage )
244257
245258 const props = { ...autoCondenseProps , setCachedStateField : mockSetCachedStateField }
246259 render ( < ContextManagementSettings { ...props } /> )
247260
248- // Find and click the select trigger
249- const selectTrigger = screen . getByRole ( "combobox" )
250- fireEvent . click ( selectTrigger )
251-
252- // Select the default option (use current config)
253- const defaultOption = screen . getByText ( "settings:experimental.condensingApiConfiguration.useCurrentConfig" )
261+ // Test selecting default config
262+ const apiSelect = screen . getByRole ( "combobox" )
263+ fireEvent . click ( apiSelect )
264+ const defaultOption = screen . getByText (
265+ "settings:contextManagement.condensingApiConfiguration.useCurrentConfig" ,
266+ )
254267 fireEvent . click ( defaultOption )
255268
256269 expect ( mockSetCachedStateField ) . toHaveBeenCalledWith ( "condensingApiConfigId" , "" )
@@ -263,7 +276,8 @@ describe("ContextManagementSettings", () => {
263276 it ( "updates custom condensing prompt" , ( ) => {
264277 const mockSetCachedStateField = jest . fn ( )
265278 const mockPostMessage = jest . fn ( )
266- require ( "@/utils/vscode" ) . vscode . postMessage = mockPostMessage
279+ const postMessageSpy = jest . spyOn ( vscode , "postMessage" )
280+ postMessageSpy . mockImplementation ( mockPostMessage )
267281
268282 const props = { ...autoCondenseProps , setCachedStateField : mockSetCachedStateField }
269283 render ( < ContextManagementSettings { ...props } /> )
@@ -282,12 +296,15 @@ describe("ContextManagementSettings", () => {
282296 it ( "resets custom condensing prompt to default" , ( ) => {
283297 const mockSetCachedStateField = jest . fn ( )
284298 const mockPostMessage = jest . fn ( )
285- require ( "@/utils/vscode" ) . vscode . postMessage = mockPostMessage
299+ const postMessageSpy = jest . spyOn ( vscode , "postMessage" )
300+ postMessageSpy . mockImplementation ( mockPostMessage )
286301
287302 const props = { ...autoCondenseProps , setCachedStateField : mockSetCachedStateField }
288303 render ( < ContextManagementSettings { ...props } /> )
289304
290- const resetButton = screen . getByText ( "settings:experimental.customCondensingPrompt.reset" )
305+ const resetButton = screen . getByRole ( "button" , {
306+ name : "settings:contextManagement.customCondensingPrompt.reset" ,
307+ } )
291308 fireEvent . click ( resetButton )
292309
293310 // Should reset to the default SUMMARY_PROMPT
0 commit comments