@@ -35,12 +35,14 @@ vi.mock("../context/providers/FileContextProvider", () => ({
3535 } ) ) ,
3636} ) ) ;
3737
38- vi . mock ( "../context/providers/ProblemsContextProvider" , ( ) => ( {
39- default : vi . fn ( ) . mockImplementation ( ( options ) => ( {
38+ vi . mock ( "../context/providers/ProblemsContextProvider" , ( ) => {
39+ const MockProblemsContextProvider = vi . fn ( ) . mockImplementation ( ( options ) => ( {
4040 description : { title : "problems" } ,
4141 options,
42- } ) ) ,
43- } ) ) ;
42+ } ) ) ;
43+ ( MockProblemsContextProvider as any ) . description = { title : "problems" } ;
44+ return { default : MockProblemsContextProvider } ;
45+ } ) ;
4446
4547vi . mock ( "../context/providers/RulesContextProvider" , ( ) => ( {
4648 default : vi . fn ( ) . mockImplementation ( ( options ) => ( {
@@ -49,12 +51,14 @@ vi.mock("../context/providers/RulesContextProvider", () => ({
4951 } ) ) ,
5052} ) ) ;
5153
52- vi . mock ( "../context/providers/TerminalContextProvider" , ( ) => ( {
53- default : vi . fn ( ) . mockImplementation ( ( options ) => ( {
54+ vi . mock ( "../context/providers/TerminalContextProvider" , ( ) => {
55+ const MockTerminalContextProvider = vi . fn ( ) . mockImplementation ( ( options ) => ( {
5456 description : { title : "terminal" } ,
5557 options,
56- } ) ) ,
57- } ) ) ;
58+ } ) ) ;
59+ ( MockTerminalContextProvider as any ) . description = { title : "terminal" } ;
60+ return { default : MockTerminalContextProvider } ;
61+ } ) ;
5862
5963const mockedContextProviderClassFromName =
6064 contextProviderClassFromName as MockedFunction <
@@ -68,7 +72,7 @@ beforeEach(() => {
6872describe ( "loadConfigContextProviders" , ( ) => {
6973 describe ( "with empty or undefined config" , ( ) => {
7074 it ( "should return only default providers when config is undefined" , ( ) => {
71- const result = loadConfigContextProviders ( undefined , false ) ;
75+ const result = loadConfigContextProviders ( undefined , false , "vscode" ) ;
7276
7377 expect ( result . errors ) . toEqual ( [ ] ) ;
7478 expect ( result . providers ) . toHaveLength ( 6 ) ;
@@ -88,7 +92,7 @@ describe("loadConfigContextProviders", () => {
8892 } ) ;
8993
9094 it ( "should return only default providers when config is empty array" , ( ) => {
91- const result = loadConfigContextProviders ( [ ] , false ) ;
95+ const result = loadConfigContextProviders ( [ ] , false , "vscode" ) ;
9296
9397 expect ( result . errors ) . toEqual ( [ ] ) ;
9498 expect ( result . providers ) . toHaveLength ( 6 ) ;
@@ -105,10 +109,22 @@ describe("loadConfigContextProviders", () => {
105109 ] ) ,
106110 ) ;
107111 } ) ;
112+
113+ it ( "should exclude problems and terminal in jetbrains" , ( ) => {
114+ const result = loadConfigContextProviders ( [ ] , false , "jetbrains" ) ;
115+
116+ expect ( result . errors ) . toEqual ( [ ] ) ;
117+ expect ( result . providers ) . toHaveLength ( 4 ) ;
118+
119+ const providerTitles = result . providers . map ( ( p ) => p . description . title ) ;
120+ expect ( providerTitles ) . toEqual (
121+ expect . arrayContaining ( [ "file" , "current-file" , "diff" , "rules" ] ) ,
122+ ) ;
123+ } ) ;
108124 } ) ;
109125
110126 it ( "should return default + docs when has docs is true" , ( ) => {
111- const result = loadConfigContextProviders ( [ ] , true ) ;
127+ const result = loadConfigContextProviders ( [ ] , true , "vscode" ) ;
112128
113129 expect ( result . errors ) . toEqual ( [ ] ) ;
114130 expect ( result . providers ) . toHaveLength ( 7 ) ;
@@ -139,7 +155,7 @@ describe("with valid config", () => {
139155
140156 const config = [
141157 {
142- provider : "custom-provider" as any ,
158+ provider : "custom-provider" ,
143159 name : "my-custom-provider" ,
144160 params : {
145161 apiKey : "test-key" ,
@@ -148,7 +164,7 @@ describe("with valid config", () => {
148164 } ,
149165 ] ;
150166
151- const result = loadConfigContextProviders ( config , false ) ;
167+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
152168
153169 expect ( result . errors ) . toEqual ( [ ] ) ;
154170 expect ( mockedContextProviderClassFromName ) . toHaveBeenCalledWith (
@@ -191,18 +207,18 @@ describe("with valid config", () => {
191207
192208 const config = [
193209 {
194- provider : "provider-1" as any ,
210+ provider : "provider-1" ,
195211 name : "first-provider" ,
196212 params : { setting1 : "value1" } ,
197213 } ,
198214 {
199- provider : "provider-2" as any ,
215+ provider : "provider-2" ,
200216 name : "second-provider" ,
201217 params : { setting2 : "value2" } ,
202218 } ,
203219 ] ;
204220
205- const result = loadConfigContextProviders ( config , false ) ;
221+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
206222
207223 expect ( result . errors ) . toEqual ( [ ] ) ;
208224 expect ( result . providers ) . toHaveLength ( 8 ) ; // 2 custom + 6 defaults
@@ -228,13 +244,13 @@ describe("with valid config", () => {
228244
229245 const config = [
230246 {
231- provider : "no-params-provider" as any ,
247+ provider : "no-params-provider" ,
232248 name : "simple-provider" ,
233249 params : { } ,
234250 } ,
235251 ] ;
236252
237- const result = loadConfigContextProviders ( config , false ) ;
253+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
238254
239255 expect ( result . errors ) . toEqual ( [ ] ) ;
240256 expect ( mockProvider ) . toHaveBeenCalledWith ( {
@@ -252,12 +268,12 @@ describe("with valid config", () => {
252268
253269 const config = [
254270 {
255- provider : "provider-without-params" as any ,
271+ provider : "provider-without-params" ,
256272 name : "minimal-provider" ,
257273 } as any , // Cast to bypass type checking for test
258274 ] ;
259275
260- const result = loadConfigContextProviders ( config , false ) ;
276+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
261277
262278 expect ( result . errors ) . toEqual ( [ ] ) ;
263279 expect ( mockProvider ) . toHaveBeenCalledWith ( {
@@ -272,13 +288,13 @@ describe("error handling", () => {
272288
273289 const config = [
274290 {
275- provider : "unknown-provider" as any ,
291+ provider : "unknown-provider" ,
276292 name : "test-provider" ,
277293 params : { } ,
278294 } ,
279295 ] ;
280296
281- const result = loadConfigContextProviders ( config , false ) ;
297+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
282298
283299 expect ( result . errors ) . toEqual ( [
284300 {
@@ -299,18 +315,18 @@ describe("error handling", () => {
299315
300316 const config = [
301317 {
302- provider : "unknown-1" as any ,
318+ provider : "unknown-1" ,
303319 name : "test-1" ,
304320 params : { } ,
305321 } ,
306322 {
307- provider : "unknown-2" as any ,
323+ provider : "unknown-2" ,
308324 name : "test-2" ,
309325 params : { } ,
310326 } ,
311327 ] ;
312328
313- const result = loadConfigContextProviders ( config , false ) ;
329+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
314330
315331 expect ( result . errors ) . toEqual ( [
316332 {
@@ -338,18 +354,18 @@ describe("error handling", () => {
338354
339355 const config = [
340356 {
341- provider : "valid-provider" as any ,
357+ provider : "valid-provider" ,
342358 name : "valid" ,
343359 params : { key : "value" } ,
344360 } ,
345361 {
346- provider : "invalid-provider" as any ,
362+ provider : "invalid-provider" ,
347363 name : "invalid" ,
348364 params : { } ,
349365 } ,
350366 ] ;
351367
352- const result = loadConfigContextProviders ( config , false ) ;
368+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
353369
354370 expect ( result . errors ) . toEqual ( [
355371 {
@@ -374,13 +390,13 @@ describe("default provider merging", () => {
374390
375391 const config = [
376392 {
377- provider : "file" as any ,
393+ provider : "file" ,
378394 name : "custom-file-provider" ,
379395 params : { maxFiles : 100 } ,
380396 } ,
381397 ] ;
382398
383- const result = loadConfigContextProviders ( config , false ) ;
399+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
384400
385401 expect ( result . errors ) . toEqual ( [ ] ) ;
386402
@@ -409,13 +425,13 @@ describe("default provider merging", () => {
409425
410426 const config = [
411427 {
412- provider : "custom-only" as any ,
428+ provider : "custom-only" ,
413429 name : "custom" ,
414430 params : { } ,
415431 } ,
416432 ] ;
417433
418- const result = loadConfigContextProviders ( config , false ) ;
434+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
419435
420436 expect ( result . errors ) . toEqual ( [ ] ) ;
421437 expect ( result . providers ) . toHaveLength ( 7 ) ; // 1 custom + 6 defaults
@@ -445,13 +461,13 @@ describe("default provider merging", () => {
445461
446462 const config = [
447463 {
448- provider : "custom-provider" as any ,
464+ provider : "custom-provider" ,
449465 name : "custom" ,
450466 params : { } ,
451467 } ,
452468 ] ;
453469
454- const result = loadConfigContextProviders ( config , false ) ;
470+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
455471
456472 expect ( result . providers [ 0 ] . description . title ) . toBe ( "custom-provider" ) ;
457473
@@ -480,29 +496,29 @@ describe("edge cases", () => {
480496
481497 const config = [
482498 {
483- provider : "failing-provider" as any ,
499+ provider : "failing-provider" ,
484500 name : "failing" ,
485501 params : { } ,
486502 } ,
487503 ] ;
488504
489- expect ( ( ) => loadConfigContextProviders ( config , false ) ) . toThrow (
505+ expect ( ( ) => loadConfigContextProviders ( config , false , "vscode" ) ) . toThrow (
490506 "Provider construction failed" ,
491507 ) ;
492508 } ) ;
493509
494510 it ( "should handle null provider class" , ( ) => {
495- mockedContextProviderClassFromName . mockReturnValue ( null as any ) ;
511+ mockedContextProviderClassFromName . mockReturnValue ( undefined ) ;
496512
497513 const config = [
498514 {
499- provider : "null-provider" as any ,
515+ provider : "null-provider" ,
500516 name : "null" ,
501517 params : { } ,
502518 } ,
503519 ] ;
504520
505- const result = loadConfigContextProviders ( config , false ) ;
521+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
506522
507523 expect ( result . errors ) . toEqual ( [
508524 {
@@ -524,13 +540,13 @@ describe("edge cases", () => {
524540
525541 const config = [
526542 {
527- provider : "custom-file" as any ,
543+ provider : "custom-file" ,
528544 name : "my-file-provider" ,
529545 params : { customParam : "value" } ,
530546 } ,
531547 ] ;
532548
533- const result = loadConfigContextProviders ( config , false ) ;
549+ const result = loadConfigContextProviders ( config , false , "vscode" ) ;
534550
535551 expect ( result . errors ) . toEqual ( [ ] ) ;
536552
@@ -551,7 +567,7 @@ describe("edge cases", () => {
551567
552568describe ( "provider instantiation" , ( ) => {
553569 it ( "should call default provider constructors with empty options" , ( ) => {
554- loadConfigContextProviders ( [ ] , false ) ;
570+ loadConfigContextProviders ( [ ] , false , "vscode" ) ;
555571
556572 expect ( FileContextProvider ) . toHaveBeenCalledWith ( { } ) ;
557573 expect ( CurrentFileContextProvider ) . toHaveBeenCalledWith ( { } ) ;
@@ -562,7 +578,7 @@ describe("provider instantiation", () => {
562578 } ) ;
563579
564580 it ( "should call provider constructors exactly once per provider" , ( ) => {
565- loadConfigContextProviders ( [ ] , false ) ;
581+ loadConfigContextProviders ( [ ] , false , "vscode" ) ;
566582
567583 expect ( FileContextProvider ) . toHaveBeenCalledTimes ( 1 ) ;
568584 expect ( CurrentFileContextProvider ) . toHaveBeenCalledTimes ( 1 ) ;
0 commit comments