@@ -120,6 +120,70 @@ suite('Utils Test Suite', () => {
120120 }
121121 } )
122122
123+ test ( 'detectIdeClient' , async ( ) => {
124+ const originalEnv = process . env
125+
126+ const testCases = [
127+ {
128+ env : {
129+ PATH : '' ,
130+ __CFBundleIdentifier : 'com.microsoft.VSCode' ,
131+ } ,
132+ expected : 'vscode' ,
133+ name : 'VSCode via bundle ID 1' ,
134+ } ,
135+ {
136+ env : {
137+ PATH : '' ,
138+ __CFBundleIdentifier : 'com.microsoft.VSCodeInsiders' ,
139+ } ,
140+ expected : 'vscode-insiders' ,
141+ name : 'VSCode via bundle ID 2' ,
142+ } ,
143+ {
144+ env : {
145+ PATH : '/usr/bin:/path/to/.vscode/abc/remote-cli' ,
146+ __CFBundleIdentifier : '' ,
147+ } ,
148+ expected : 'vscode' ,
149+ name : 'VSCode via PATH 1' ,
150+ } ,
151+ {
152+ env : {
153+ PATH : '' ,
154+ __CFBundleIdentifier : 'com.todesktop.230313mzl4w4u92' ,
155+ } ,
156+ expected : 'cursor' ,
157+ name : 'Cursor via bundle ID 1' ,
158+ } ,
159+ {
160+ env : {
161+ PATH : '/usr/bin:/path/to/.cursor/abc/remote-cli' ,
162+ __CFBundleIdentifier : '' ,
163+ } ,
164+ expected : 'cursor' ,
165+ name : 'Cursor via PATH' ,
166+ } ,
167+ {
168+ env : {
169+ PATH : '/usr/bin:/bin:/usr/local/bin' ,
170+ __CFBundleIdentifier : '' ,
171+ } ,
172+ expected : 'unknown' ,
173+ name : 'Unknown IDE' ,
174+ } ,
175+ ]
176+
177+ for ( const testCase of testCases ) {
178+ process . env = { ...testCase . env }
179+ const result = detectIdeClient ( )
180+ assert . strictEqual ( result , testCase . expected )
181+ }
182+
183+ // Restore original environment
184+ process . env = originalEnv
185+ } )
186+
123187 test ( 'detectIdeClient with different environments' , async ( ) => {
124188 const processEnv = process . env
125189
0 commit comments