@@ -6,19 +6,10 @@ import { ExtensionConfigManager } from '../../src/config/index.js'
66import { DEFAULT_CONFIG_VALUES , EXTENSION_ID } from '../../src/constants.js'
77import { log } from '../../src/utils/logger.js'
88
9+ import type { MockWorkspace } from 'jest-mock-vscode'
10+
911// Mock dependencies
10- vi . mock ( 'vscode' , ( ) => {
11- return {
12- workspace : {
13- getConfiguration : vi . fn ( ) ,
14- workspaceFolders : undefined ,
15- } ,
16- ConfigurationChangeEvent : vi . fn ( ) ,
17- WorkspaceFolder : vi . fn ( ) ,
18- EventEmitter : vi . fn ( ) ,
19- Disposable : vi . fn ( ) ,
20- }
21- } )
12+ vi . mock ( 'vscode' , async ( ) => import ( '../__mocks__/vscode.cjs' ) )
2213vi . mock ( '../../src/config/find.js' )
2314vi . mock ( '../../src/config/watcher.js' , ( ) => {
2415 return { }
@@ -180,9 +171,6 @@ describe('ExtensionConfigManager', () => {
180171
181172 describe ( 'initialize' , ( ) => {
182173 it ( 'should return empty array when no workspace folders' , async ( ) => {
183- // Setup
184- Object . defineProperty ( vscode . workspace , 'workspaceFolders' , { value : [ ] } )
185-
186174 // Execute
187175 const result = await configManager . initialize ( )
188176
@@ -194,12 +182,9 @@ describe('ExtensionConfigManager', () => {
194182
195183 it ( 'should initialize workspaces and find config files' , async ( ) => {
196184 // Setup
197- const mockWorkspaceFolder1 = { uri : { fsPath : '/workspace1' } } as vscode . WorkspaceFolder
198- const mockWorkspaceFolder2 = { uri : { fsPath : '/workspace2' } } as vscode . WorkspaceFolder
199-
200- Object . defineProperty ( vscode . workspace , 'workspaceFolders' , {
201- value : [ mockWorkspaceFolder1 , mockWorkspaceFolder2 ] ,
202- } )
185+ const mockWorkspaceFolder1 = { uri : vscode . Uri . file ( '/workspace1' ) } as vscode . WorkspaceFolder
186+ const mockWorkspaceFolder2 = { uri : vscode . Uri . file ( '/workspace2' ) } as vscode . WorkspaceFolder
187+ ; ( vscode . workspace as MockWorkspace ) . setWorkspaceFolders ( [ mockWorkspaceFolder1 , mockWorkspaceFolder2 ] )
203188
204189 const wdioConfigFiles1 = [ '/workspace1/wdio.conf.js' , '/workspace1/wdio.e2e.conf.js' ]
205190 const wdioConfigFiles2 = [ '/workspace2/wdio.conf.js' ]
@@ -229,8 +214,9 @@ describe('ExtensionConfigManager', () => {
229214
230215 it ( 'should handle workspaces with no config files' , async ( ) => {
231216 // Setup
232- const mockWorkspaceFolder = { uri : { fsPath : '/workspace' } } as vscode . WorkspaceFolder
233- Object . defineProperty ( vscode . workspace , 'workspaceFolders' , { value : [ mockWorkspaceFolder ] } )
217+ const mockWorkspaceFolder = { uri : vscode . Uri . file ( '/workspace' ) } as vscode . WorkspaceFolder
218+ ; ( vscode . workspace as MockWorkspace ) . setWorkspaceFolders ( [ mockWorkspaceFolder ] )
219+
234220 vi . mocked ( findWdioConfig ) . mockResolvedValueOnce ( [ ] )
235221
236222 // Execute
@@ -255,8 +241,8 @@ describe('ExtensionConfigManager', () => {
255241
256242 it ( 'should return all config paths after initialization' , async ( ) => {
257243 // Setup
258- const mockWorkspaceFolder = { uri : { fsPath : '/workspace' } } as vscode . WorkspaceFolder
259- Object . defineProperty ( vscode . workspace , 'workspaceFolders' , { value : [ mockWorkspaceFolder ] } )
244+ const mockWorkspaceFolder = { uri : vscode . Uri . file ( '/workspace' ) } as vscode . WorkspaceFolder
245+ ; ( vscode . workspace as MockWorkspace ) . setWorkspaceFolders ( [ mockWorkspaceFolder ] )
260246
261247 const wdioConfigFiles = [ '/workspace/wdio.conf.js' , '/workspace/wdio.e2e.conf.js' ]
262248 vi . mocked ( findWdioConfig ) . mockResolvedValueOnce ( wdioConfigFiles )
@@ -279,13 +265,6 @@ describe('ExtensionConfigManager', () => {
279265
280266 describe ( 'dispose' , ( ) => {
281267 it ( 'should clear workspaces data' , async ( ) => {
282- // Setup
283- const mockWorkspaceFolder = { uri : { fsPath : '/workspace' } } as vscode . WorkspaceFolder
284- Object . defineProperty ( vscode . workspace , 'workspaceFolders' , { value : [ mockWorkspaceFolder ] } )
285-
286- const wdioConfigFiles = [ '/workspace/wdio.conf.js' ]
287- vi . mocked ( findWdioConfig ) . mockResolvedValueOnce ( wdioConfigFiles )
288-
289268 await configManager . initialize ( )
290269 expect ( configManager . workspaces ) . toBeDefined ( )
291270
0 commit comments