@@ -201,61 +201,20 @@ describe('StateManager branch behavior with useBranchForIssues setting', functio
201201 credentialStore : { isAnyAuthenticated : ( ) => true , getCurrentUser : async ( ) => ( { login : 'testuser' } ) } ,
202202 } as any , mockContext ) ;
203203
204+ ( sm as any ) . _queries = [ { label : 'Test' , query : 'is:open assignee:@me repo:owner/repo' , groupBy : [ ] } ] ;
205+
204206 let changeEventCount = 0 ;
205207 sm . onDidChangeIssueData ( ( ) => changeEventCount ++ ) ;
206208
207209 await ( sm as any ) . setIssueData ( mockFolderManager ) ;
208210
209- // The event should have fired even though getIssues threw
210- assert . ok ( changeEventCount > 0 , 'onDidChangeIssueData should fire even when getIssues fails' ) ;
211-
212- // The promise in the collection should resolve to undefined issues (not reject)
211+ // setIssueData doesn't await setIssues - await the collection promises so the finally block fires
213212 const collection = sm . getIssueCollection ( mockUri ) ;
214213 const queryResult = await collection . get ( 'Test' ) ;
215- assert . strictEqual ( queryResult ?. issues , undefined , 'Issues should be undefined when getIssues fails' ) ;
216- } finally {
217- vscode . workspace . getConfiguration = originalGetConfiguration ;
218- }
219- } ) ;
220-
221- it ( 'should fire onDidChangeIssueData after setIssueData completes' , async function ( ) {
222- const mockUri = vscode . Uri . parse ( 'file:///test' ) ;
223- const mockFolderManager = {
224- repository : { rootUri : mockUri , state : { HEAD : { commit : 'abc123' } , remotes : [ ] } } ,
225- getIssues : async ( ) => {
226- return { items : [ ] , hasMorePages : false , hasUnsearchedRepositories : false , totalCount : 0 } ;
227- } ,
228- getMaxIssue : async ( ) => 0 ,
229- } ;
230214
231- const originalGetConfiguration = vscode . workspace . getConfiguration ;
232- vscode . workspace . getConfiguration = ( section ?: string ) => {
233- if ( section === ISSUES_SETTINGS_NAMESPACE ) {
234- return {
235- get : ( key : string , defaultValue ?: any ) => {
236- if ( key === 'queries' ) {
237- return [ { label : 'Test' , query : 'is:open assignee:@me repo:owner/repo' , groupBy : [ ] } ] ;
238- }
239- return defaultValue ;
240- } ,
241- } as any ;
242- }
243- return originalGetConfiguration ( section ) ;
244- } ;
245-
246- try {
247- const sm = new StateManager ( undefined as any , {
248- folderManagers : [ mockFolderManager ] ,
249- credentialStore : { isAnyAuthenticated : ( ) => true , getCurrentUser : async ( ) => ( { login : 'testuser' } ) } ,
250- } as any , mockContext ) ;
251-
252- let changeEventCount = 0 ;
253- sm . onDidChangeIssueData ( ( ) => changeEventCount ++ ) ;
254-
255- await ( sm as any ) . setIssueData ( mockFolderManager ) ;
256-
257- // The event should fire at least twice: once from setIssues (per-query) and once from setIssueData (final)
258- assert . strictEqual ( changeEventCount , 2 , `onDidChangeIssueData should fire exactly twice for a single query, but fired ${ changeEventCount } times` ) ;
215+ // The event should have fired even though getIssues threw
216+ assert . ok ( changeEventCount > 0 , 'onDidChangeIssueData should fire even when getIssues fails' ) ;
217+ assert . strictEqual ( queryResult ?. issues , undefined , 'Issues should be undefined when getIssues fails' ) ;
259218 } finally {
260219 vscode . workspace . getConfiguration = originalGetConfiguration ;
261220 }
0 commit comments