@@ -1670,7 +1670,7 @@ class OutputPeekTree extends Disposable {
1670
1670
taskChildrenToUpdate . clear ( ) ;
1671
1671
} , 300 ) ) ;
1672
1672
1673
- const handleNewResults = ( result : LiveTestResult ) => {
1673
+ const attachToResults = ( result : LiveTestResult ) => {
1674
1674
const resultNode = cc . get ( result ) ! as TestResultElement ;
1675
1675
const disposable = new DisposableStore ( ) ;
1676
1676
disposable . add ( result . onNewTask ( ( ) => {
@@ -1713,7 +1713,7 @@ class OutputPeekTree extends Disposable {
1713
1713
disposable . dispose ( ) ;
1714
1714
} ) ) ;
1715
1715
1716
- this . tree . expand ( resultNode , true ) ;
1716
+ return resultNode ;
1717
1717
} ;
1718
1718
1719
1719
this . _register ( results . onResultsChanged ( e => {
@@ -1737,7 +1737,7 @@ class OutputPeekTree extends Disposable {
1737
1737
this . tree . collapse ( child . element , false ) ;
1738
1738
}
1739
1739
1740
- handleNewResults ( e . started ) ;
1740
+ this . tree . expand ( attachToResults ( e . started ) , true ) ;
1741
1741
}
1742
1742
} ) ) ;
1743
1743
@@ -1749,7 +1749,7 @@ class OutputPeekTree extends Disposable {
1749
1749
}
1750
1750
} ;
1751
1751
1752
- this . _register ( onDidReveal ( ( { subject, preserveFocus = false } ) => {
1752
+ this . _register ( onDidReveal ( async ( { subject, preserveFocus = false } ) => {
1753
1753
if ( subject instanceof TaskSubject ) {
1754
1754
const resultItem = this . tree . getNode ( null ) . children . find ( c => ( c . element as TestResultElement ) ?. id === subject . resultId ) ;
1755
1755
if ( resultItem ) {
@@ -1798,6 +1798,11 @@ class OutputPeekTree extends Disposable {
1798
1798
this . _register ( this . tree . onContextMenu ( e => this . onContextMenu ( e ) ) ) ;
1799
1799
1800
1800
this . tree . setChildren ( null , getRootChildren ( ) ) ;
1801
+ for ( const result of results . results ) {
1802
+ if ( ! result . completedAt && result instanceof LiveTestResult ) {
1803
+ attachToResults ( result ) ;
1804
+ }
1805
+ }
1801
1806
}
1802
1807
1803
1808
public layout ( height : number , width : number ) {
@@ -1880,8 +1885,6 @@ class TestRunElementRenderer implements ICompressibleTreeRenderer<ITreeElement,
1880
1885
1881
1886
/** @inheritdoc */
1882
1887
public renderElement ( element : ITreeNode < ITreeElement , FuzzyScore > , _index : number , templateData : TemplateData ) : void {
1883
- templateData . elementDisposable . clear ( ) ;
1884
- templateData . elementDisposable . add ( element . element . onDidChange ( ( ) => this . doRender ( element . element , templateData ) ) ) ;
1885
1888
this . doRender ( element . element , templateData ) ;
1886
1889
}
1887
1890
@@ -1890,7 +1893,15 @@ class TestRunElementRenderer implements ICompressibleTreeRenderer<ITreeElement,
1890
1893
templateData . templateDisposable . dispose ( ) ;
1891
1894
}
1892
1895
1896
+ /** Called to render a new element */
1893
1897
private doRender ( element : ITreeElement , templateData : TemplateData ) {
1898
+ templateData . elementDisposable . clear ( ) ;
1899
+ templateData . elementDisposable . add ( element . onDidChange ( ( ) => this . doRender ( element , templateData ) ) ) ;
1900
+ this . doRenderInner ( element , templateData ) ;
1901
+ }
1902
+
1903
+ /** Called, and may be re-called, to render or re-render an element */
1904
+ private doRenderInner ( element : ITreeElement , templateData : TemplateData ) {
1894
1905
if ( element . labelWithIcons ) {
1895
1906
dom . reset ( templateData . label , ...element . labelWithIcons ) ;
1896
1907
} else if ( element . description ) {
0 commit comments