@@ -58,7 +58,7 @@ describe("query-history", () => {
5858 > ;
5959 const doCompareCallback = jest . fn ( ) ;
6060
61- let queryHistoryManager : QueryHistoryManager | undefined ;
61+ let queryHistoryManager : QueryHistoryManager ;
6262
6363 let localQueriesResultsViewStub : ResultsView ;
6464 let remoteQueriesManagerStub : RemoteQueriesManager ;
@@ -177,7 +177,6 @@ describe("query-history", () => {
177177 afterEach ( async ( ) => {
178178 if ( queryHistoryManager ) {
179179 queryHistoryManager . dispose ( ) ;
180- queryHistoryManager = undefined ;
181180 }
182181 } ) ;
183182
@@ -390,77 +389,297 @@ describe("query-history", () => {
390389 } ) ;
391390
392391 describe ( "handleRemoveHistoryItem" , ( ) => {
393- it ( "should remove an item and not select a new one" , async ( ) => {
394- queryHistoryManager = await createMockQueryHistory ( localQueryHistory ) ;
395- // initialize the selection
396- await queryHistoryManager . treeView . reveal ( localQueryHistory [ 0 ] , {
397- select : true ,
392+ describe ( "when the item is a local query" , ( ) => {
393+ describe ( "when the item being removed is not selected" , ( ) => {
394+ // deleting the first item when a different item is selected
395+ // will not change the selection
396+ let toDelete : LocalQueryInfo ;
397+ let selected : LocalQueryInfo ;
398+
399+ beforeEach ( async ( ) => {
400+ toDelete = localQueryHistory [ 1 ] ;
401+ selected = localQueryHistory [ 3 ] ;
402+
403+ queryHistoryManager = await createMockQueryHistory (
404+ localQueryHistory ,
405+ ) ;
406+ // initialize the selection
407+ await queryHistoryManager . treeView . reveal ( localQueryHistory [ 0 ] , {
408+ select : true ,
409+ } ) ;
410+
411+ // select the item we want
412+ await queryHistoryManager . treeView . reveal ( selected , {
413+ select : true ,
414+ } ) ;
415+
416+ // should be selected
417+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
418+ selected ,
419+ ) ;
420+
421+ // remove an item
422+ await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [
423+ toDelete ,
424+ ] ) ;
425+ } ) ;
426+
427+ it ( "should remove the item" , ( ) => {
428+ expect ( toDelete . completedQuery ! . dispose ) . toBeCalledTimes ( 1 ) ;
429+ expect ( queryHistoryManager . treeDataProvider . allHistory ) . toEqual (
430+ expect . not . arrayContaining ( [ toDelete ] ) ,
431+ ) ;
432+ } ) ;
433+
434+ it ( "should not change the selection" , ( ) => {
435+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
436+ selected ,
437+ ) ;
438+
439+ expect (
440+ localQueriesResultsViewStub . showResults ,
441+ ) . toHaveBeenCalledTimes ( 1 ) ;
442+ expect (
443+ localQueriesResultsViewStub . showResults ,
444+ ) . toHaveBeenCalledWith ( selected , WebviewReveal . Forced , false ) ;
445+ } ) ;
398446 } ) ;
399447
400- // deleting the first item when a different item is selected
401- // will not change the selection
402- const toDelete = localQueryHistory [ 1 ] ;
403- const selected = localQueryHistory [ 3 ] ;
448+ describe ( "when the item being removed is selected" , ( ) => {
449+ // deleting the selected item automatically selects next item
450+ let toDelete : LocalQueryInfo ;
451+ let newSelected : LocalQueryInfo ;
404452
405- // select the item we want
406- await queryHistoryManager . treeView . reveal ( selected , { select : true } ) ;
453+ beforeEach ( async ( ) => {
454+ toDelete = localQueryHistory [ 1 ] ;
455+ newSelected = localQueryHistory [ 2 ] ;
407456
408- // should be selected
409- expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
410- selected ,
411- ) ;
457+ queryHistoryManager = await createMockQueryHistory (
458+ localQueryHistory ,
459+ ) ;
412460
413- // remove an item
414- await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [ toDelete ] ) ;
461+ // select the item we want
462+ await queryHistoryManager . treeView . reveal ( toDelete , {
463+ select : true ,
464+ } ) ;
465+ await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [
466+ toDelete ,
467+ ] ) ;
468+ } ) ;
415469
416- expect ( toDelete . completedQuery ! . dispose ) . toBeCalledTimes ( 1 ) ;
417- expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
418- selected ,
419- ) ;
420- expect ( queryHistoryManager . treeDataProvider . allHistory ) . toEqual (
421- expect . not . arrayContaining ( [ toDelete ] ) ,
422- ) ;
470+ it ( "should remove the item" , ( ) => {
471+ expect ( toDelete . completedQuery ! . dispose ) . toBeCalledTimes ( 1 ) ;
472+ expect ( queryHistoryManager . treeDataProvider . allHistory ) . toEqual (
473+ expect . not . arrayContaining ( [ toDelete ] ) ,
474+ ) ;
475+ } ) ;
423476
424- // the same item should be selected
425- expect ( localQueriesResultsViewStub . showResults ) . toHaveBeenCalledTimes (
426- 1 ,
427- ) ;
428- expect ( localQueriesResultsViewStub . showResults ) . toHaveBeenCalledWith (
429- selected ,
430- WebviewReveal . Forced ,
431- false ,
432- ) ;
477+ it ( "should change the selection" , ( ) => {
478+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toBe (
479+ newSelected ,
480+ ) ;
481+
482+ expect (
483+ localQueriesResultsViewStub . showResults ,
484+ ) . toHaveBeenCalledTimes ( 1 ) ;
485+ expect (
486+ localQueriesResultsViewStub . showResults ,
487+ ) . toHaveBeenCalledWith ( newSelected , WebviewReveal . Forced , false ) ;
488+ } ) ;
489+ } ) ;
433490 } ) ;
434491
435- it ( "should remove an item and select a new one" , async ( ) => {
436- queryHistoryManager = await createMockQueryHistory ( localQueryHistory ) ;
492+ describe ( "when the item is a remote query" , ( ) => {
493+ describe ( "when the item being removed is not selected" , ( ) => {
494+ let toDelete : RemoteQueryHistoryItem ;
495+ let selected : RemoteQueryHistoryItem ;
437496
438- // deleting the selected item automatically selects next item
439- const toDelete = localQueryHistory [ 1 ] ;
440- const newSelected = localQueryHistory [ 2 ] ;
441- // avoid triggering the callback by setting the field directly
497+ beforeEach ( async ( ) => {
498+ // deleting the first item when a different item is selected
499+ // will not change the selection
500+ toDelete = remoteQueryHistory [ 1 ] ;
501+ selected = remoteQueryHistory [ 3 ] ;
442502
443- // select the item we want
444- await queryHistoryManager . treeView . reveal ( toDelete , { select : true } ) ;
445- await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [ toDelete ] ) ;
503+ queryHistoryManager = await createMockQueryHistory ( allHistory ) ;
446504
447- expect ( toDelete . completedQuery ! . dispose ) . toBeCalledTimes ( 1 ) ;
448- expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toBe (
449- newSelected ,
450- ) ;
451- expect ( queryHistoryManager . treeDataProvider . allHistory ) . toEqual (
452- expect . not . arrayContaining ( [ toDelete ] ) ,
453- ) ;
505+ // initialize the selection
506+ await queryHistoryManager . treeView . reveal ( remoteQueryHistory [ 0 ] , {
507+ select : true ,
508+ } ) ;
454509
455- // the current item should have been selected
456- expect ( localQueriesResultsViewStub . showResults ) . toHaveBeenCalledTimes (
457- 1 ,
458- ) ;
459- expect ( localQueriesResultsViewStub . showResults ) . toHaveBeenCalledWith (
460- newSelected ,
461- WebviewReveal . Forced ,
462- false ,
463- ) ;
510+ // select the item we want
511+ await queryHistoryManager . treeView . reveal ( selected , {
512+ select : true ,
513+ } ) ;
514+
515+ // should be selected
516+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
517+ selected ,
518+ ) ;
519+
520+ // remove an item
521+ await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [
522+ toDelete ,
523+ ] ) ;
524+ } ) ;
525+
526+ it ( "should remove the item" , ( ) => {
527+ expect (
528+ remoteQueriesManagerStub . removeRemoteQuery ,
529+ ) . toHaveBeenCalledWith ( toDelete . queryId ) ;
530+ expect (
531+ queryHistoryManager . treeDataProvider . allHistory ,
532+ ) . not . toContain ( toDelete ) ;
533+ } ) ;
534+
535+ it ( "should not change the selection" , ( ) => {
536+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
537+ selected ,
538+ ) ;
539+
540+ expect (
541+ remoteQueriesManagerStub . openRemoteQueryResults ,
542+ ) . toHaveBeenCalledWith ( selected . queryId ) ;
543+ } ) ;
544+ } ) ;
545+
546+ describe ( "when the item being removed is selected" , ( ) => {
547+ let toDelete : RemoteQueryHistoryItem ;
548+ let newSelected : RemoteQueryHistoryItem ;
549+
550+ beforeEach ( async ( ) => {
551+ // deleting the selected item automatically selects next item
552+ toDelete = remoteQueryHistory [ 1 ] ;
553+ newSelected = remoteQueryHistory [ 2 ] ;
554+
555+ queryHistoryManager = await createMockQueryHistory (
556+ remoteQueryHistory ,
557+ ) ;
558+
559+ // select the item we want
560+ await queryHistoryManager . treeView . reveal ( toDelete , {
561+ select : true ,
562+ } ) ;
563+ await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [
564+ toDelete ,
565+ ] ) ;
566+ } ) ;
567+
568+ it ( "should remove the item" , ( ) => {
569+ expect (
570+ remoteQueriesManagerStub . removeRemoteQuery ,
571+ ) . toHaveBeenCalledWith ( toDelete . queryId ) ;
572+ expect (
573+ queryHistoryManager . treeDataProvider . allHistory ,
574+ ) . not . toContain ( toDelete ) ;
575+ } ) ;
576+
577+ it ( "should change the selection" , ( ) => {
578+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
579+ newSelected ,
580+ ) ;
581+ expect (
582+ remoteQueriesManagerStub . openRemoteQueryResults ,
583+ ) . toHaveBeenCalledWith ( newSelected . queryId ) ;
584+ } ) ;
585+ } ) ;
586+ } ) ;
587+
588+ describe ( "when the item is a variant analysis" , ( ) => {
589+ describe ( "when the item being removed is not selected" , ( ) => {
590+ let toDelete : VariantAnalysisHistoryItem ;
591+ let selected : VariantAnalysisHistoryItem ;
592+
593+ beforeEach ( async ( ) => {
594+ // deleting the first item when a different item is selected
595+ // will not change the selection
596+ toDelete = variantAnalysisHistory [ 1 ] ;
597+ selected = variantAnalysisHistory [ 3 ] ;
598+
599+ queryHistoryManager = await createMockQueryHistory ( allHistory ) ;
600+ // initialize the selection
601+ await queryHistoryManager . treeView . reveal (
602+ variantAnalysisHistory [ 0 ] ,
603+ {
604+ select : true ,
605+ } ,
606+ ) ;
607+
608+ // select the item we want
609+ await queryHistoryManager . treeView . reveal ( selected , {
610+ select : true ,
611+ } ) ;
612+
613+ // should be selected
614+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
615+ selected ,
616+ ) ;
617+
618+ // remove an item
619+ await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [
620+ toDelete ,
621+ ] ) ;
622+ } ) ;
623+
624+ it ( "should remove the item" , ( ) => {
625+ expect (
626+ variantAnalysisManagerStub . removeVariantAnalysis ,
627+ ) . toHaveBeenCalledWith ( toDelete . variantAnalysis ) ;
628+ expect (
629+ queryHistoryManager . treeDataProvider . allHistory ,
630+ ) . not . toContain ( toDelete ) ;
631+ } ) ;
632+
633+ it ( "should not change the selection" , ( ) => {
634+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
635+ selected ,
636+ ) ;
637+ expect ( variantAnalysisManagerStub . showView ) . toHaveBeenCalledWith (
638+ selected . variantAnalysis . id ,
639+ ) ;
640+ } ) ;
641+ } ) ;
642+
643+ describe ( "when the item being removed is selected" , ( ) => {
644+ let toDelete : VariantAnalysisHistoryItem ;
645+ let newSelected : VariantAnalysisHistoryItem ;
646+
647+ beforeEach ( async ( ) => {
648+ // deleting the selected item automatically selects next item
649+ toDelete = variantAnalysisHistory [ 1 ] ;
650+ newSelected = variantAnalysisHistory [ 2 ] ;
651+
652+ queryHistoryManager = await createMockQueryHistory (
653+ variantAnalysisHistory ,
654+ ) ;
655+
656+ // select the item we want
657+ await queryHistoryManager . treeView . reveal ( toDelete , {
658+ select : true ,
659+ } ) ;
660+ await queryHistoryManager . handleRemoveHistoryItem ( toDelete , [
661+ toDelete ,
662+ ] ) ;
663+ } ) ;
664+
665+ it ( "should remove the item" , ( ) => {
666+ expect (
667+ variantAnalysisManagerStub . removeVariantAnalysis ,
668+ ) . toHaveBeenCalledWith ( toDelete . variantAnalysis ) ;
669+ expect (
670+ queryHistoryManager . treeDataProvider . allHistory ,
671+ ) . not . toContain ( toDelete ) ;
672+ } ) ;
673+
674+ it . skip ( "should change the selection" , ( ) => {
675+ expect ( queryHistoryManager . treeDataProvider . getCurrent ( ) ) . toEqual (
676+ newSelected ,
677+ ) ;
678+ expect ( variantAnalysisManagerStub . showView ) . toHaveBeenCalledWith (
679+ newSelected . variantAnalysis . id ,
680+ ) ;
681+ } ) ;
682+ } ) ;
464683 } ) ;
465684 } ) ;
466685
0 commit comments