@@ -11,20 +11,28 @@ const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
1111
1212suite ( 'Workbench - TerminalDataBufferer' , ( ) => {
1313 let bufferer : TerminalDataBufferer ;
14+ let counter : { [ id : number ] : number } ;
15+ let data : { [ id : number ] : string } ;
1416
1517 setup ( async ( ) => {
16- bufferer = new TerminalDataBufferer ( ) ;
18+ counter = { } ;
19+ data = { } ;
20+ bufferer = new TerminalDataBufferer ( ( id , e ) => {
21+ if ( ! ( id in counter ) ) {
22+ counter [ id ] = 0 ;
23+ }
24+ counter [ id ] ++ ;
25+ if ( ! ( id in data ) ) {
26+ data [ id ] = '' ;
27+ }
28+ data [ id ] = e ;
29+ } ) ;
1730 } ) ;
1831
1932 test ( 'start' , async ( ) => {
20- let terminalOnData = new Emitter < string > ( ) ;
21- let counter = 0 ;
22- let data : string | undefined ;
33+ const terminalOnData = new Emitter < string > ( ) ;
2334
24- bufferer . startBuffering ( 1 , terminalOnData . event , ( id , e ) => {
25- counter ++ ;
26- data = e ;
27- } , 0 ) ;
35+ bufferer . startBuffering ( 1 , terminalOnData . event , 0 ) ;
2836
2937 terminalOnData . fire ( '1' ) ;
3038 terminalOnData . fire ( '2' ) ;
@@ -34,33 +42,21 @@ suite('Workbench - TerminalDataBufferer', () => {
3442
3543 terminalOnData . fire ( '4' ) ;
3644
37- assert . equal ( counter , 1 ) ;
38- assert . equal ( data , '123' ) ;
45+ assert . equal ( counter [ 1 ] , 1 ) ;
46+ assert . equal ( data [ 1 ] , '123' ) ;
3947
4048 await wait ( 0 ) ;
4149
42- assert . equal ( counter , 2 ) ;
43- assert . equal ( data , '4' ) ;
50+ assert . equal ( counter [ 1 ] , 2 ) ;
51+ assert . equal ( data [ 1 ] , '4' ) ;
4452 } ) ;
4553
4654 test ( 'start 2' , async ( ) => {
47- let terminal1OnData = new Emitter < string > ( ) ;
48- let terminal1Counter = 0 ;
49- let terminal1Data : string | undefined ;
50-
51- bufferer . startBuffering ( 1 , terminal1OnData . event , ( id , e ) => {
52- terminal1Counter ++ ;
53- terminal1Data = e ;
54- } , 0 ) ;
55-
56- let terminal2OnData = new Emitter < string > ( ) ;
57- let terminal2Counter = 0 ;
58- let terminal2Data : string | undefined ;
55+ const terminal1OnData = new Emitter < string > ( ) ;
56+ const terminal2OnData = new Emitter < string > ( ) ;
5957
60- bufferer . startBuffering ( 2 , terminal2OnData . event , ( id , e ) => {
61- terminal2Counter ++ ;
62- terminal2Data = e ;
63- } , 0 ) ;
58+ bufferer . startBuffering ( 1 , terminal1OnData . event , 0 ) ;
59+ bufferer . startBuffering ( 2 , terminal2OnData . event , 0 ) ;
6460
6561 terminal1OnData . fire ( '1' ) ;
6662 terminal2OnData . fire ( '4' ) ;
@@ -70,60 +66,41 @@ suite('Workbench - TerminalDataBufferer', () => {
7066 terminal2OnData . fire ( '6' ) ;
7167 terminal2OnData . fire ( '7' ) ;
7268
73- assert . equal ( terminal1Counter , 0 ) ;
74- assert . equal ( terminal1Data , undefined ) ;
75- assert . equal ( terminal2Counter , 0 ) ;
76- assert . equal ( terminal2Data , undefined ) ;
69+ assert . equal ( counter [ 1 ] , undefined ) ;
70+ assert . equal ( data [ 1 ] , undefined ) ;
71+ assert . equal ( counter [ 2 ] , undefined ) ;
72+ assert . equal ( data [ 2 ] , undefined ) ;
7773
7874 await wait ( 0 ) ;
7975
80- assert . equal ( terminal1Counter , 1 ) ;
81- assert . equal ( terminal1Data , '123' ) ;
82- assert . equal ( terminal2Counter , 1 ) ;
83- assert . equal ( terminal2Data , '4567' ) ;
76+ assert . equal ( counter [ 1 ] , 1 ) ;
77+ assert . equal ( data [ 1 ] , '123' ) ;
78+ assert . equal ( counter [ 2 ] , 1 ) ;
79+ assert . equal ( data [ 2 ] , '4567' ) ;
8480 } ) ;
8581
8682 test ( 'stop' , async ( ) => {
8783 let terminalOnData = new Emitter < string > ( ) ;
88- let counter = 0 ;
89- let data : string | undefined ;
9084
91- bufferer . startBuffering ( 1 , terminalOnData . event , ( id , e ) => {
92- counter ++ ;
93- data = e ;
94- } , 0 ) ;
85+ bufferer . startBuffering ( 1 , terminalOnData . event , 0 ) ;
9586
9687 terminalOnData . fire ( '1' ) ;
9788 terminalOnData . fire ( '2' ) ;
9889 terminalOnData . fire ( '3' ) ;
9990
10091 bufferer . stopBuffering ( 1 ) ;
101-
10292 await wait ( 0 ) ;
10393
104- assert . equal ( counter , 0 ) ;
105- assert . equal ( data , undefined ) ;
94+ assert . equal ( counter [ 1 ] , 1 ) ;
95+ assert . equal ( data [ 1 ] , '123' ) ;
10696 } ) ;
10797
10898 test ( 'start 2 stop 1' , async ( ) => {
109- let terminal1OnData = new Emitter < string > ( ) ;
110- let terminal1Counter = 0 ;
111- let terminal1Data : string | undefined ;
112-
113- bufferer . startBuffering ( 1 , terminal1OnData . event , ( id , e ) => {
114- terminal1Counter ++ ;
115- terminal1Data = e ;
116- } , 0 ) ;
117-
118- let terminal2OnData = new Emitter < string > ( ) ;
119- let terminal2Counter = 0 ;
120- let terminal2Data : string | undefined ;
121-
122- bufferer . startBuffering ( 2 , terminal2OnData . event , ( id , e ) => {
123- terminal2Counter ++ ;
124- terminal2Data = e ;
125- } , 0 ) ;
99+ const terminal1OnData = new Emitter < string > ( ) ;
100+ const terminal2OnData = new Emitter < string > ( ) ;
126101
102+ bufferer . startBuffering ( 1 , terminal1OnData . event , 0 ) ;
103+ bufferer . startBuffering ( 2 , terminal2OnData . event , 0 ) ;
127104
128105 terminal1OnData . fire ( '1' ) ;
129106 terminal2OnData . fire ( '4' ) ;
@@ -133,39 +110,26 @@ suite('Workbench - TerminalDataBufferer', () => {
133110 terminal2OnData . fire ( '6' ) ;
134111 terminal2OnData . fire ( '7' ) ;
135112
136- assert . equal ( terminal1Counter , 0 ) ;
137- assert . equal ( terminal1Data , undefined ) ;
138- assert . equal ( terminal2Counter , 0 ) ;
139- assert . equal ( terminal2Data , undefined ) ;
113+ assert . equal ( counter [ 1 ] , undefined ) ;
114+ assert . equal ( data [ 1 ] , undefined ) ;
115+ assert . equal ( counter [ 2 ] , undefined ) ;
116+ assert . equal ( data [ 2 ] , undefined ) ;
140117
141118 bufferer . stopBuffering ( 1 ) ;
142119 await wait ( 0 ) ;
143120
144- assert . equal ( terminal1Counter , 0 ) ;
145- assert . equal ( terminal1Data , undefined ) ;
146- assert . equal ( terminal2Counter , 1 ) ;
147- assert . equal ( terminal2Data , '4567' ) ;
121+ assert . equal ( counter [ 1 ] , 1 ) ;
122+ assert . equal ( data [ 1 ] , '123' ) ;
123+ assert . equal ( counter [ 2 ] , 1 ) ;
124+ assert . equal ( data [ 2 ] , '4567' ) ;
148125 } ) ;
149126
150- test ( 'dispose' , async ( ) => {
151- let terminal1OnData = new Emitter < string > ( ) ;
152- let terminal1Counter = 0 ;
153- let terminal1Data : string | undefined ;
154-
155- bufferer . startBuffering ( 1 , terminal1OnData . event , ( id , e ) => {
156- terminal1Counter ++ ;
157- terminal1Data = e ;
158- } , 0 ) ;
159-
160- let terminal2OnData = new Emitter < string > ( ) ;
161- let terminal2Counter = 0 ;
162- let terminal2Data : string | undefined ;
163-
164- bufferer . startBuffering ( 2 , terminal2OnData . event , ( id , e ) => {
165- terminal2Counter ++ ;
166- terminal2Data = e ;
167- } , 0 ) ;
127+ test ( 'dispose should flush remaining data events' , async ( ) => {
128+ const terminal1OnData = new Emitter < string > ( ) ;
129+ const terminal2OnData = new Emitter < string > ( ) ;
168130
131+ bufferer . startBuffering ( 1 , terminal1OnData . event , 0 ) ;
132+ bufferer . startBuffering ( 2 , terminal2OnData . event , 0 ) ;
169133
170134 terminal1OnData . fire ( '1' ) ;
171135 terminal2OnData . fire ( '4' ) ;
@@ -175,17 +139,17 @@ suite('Workbench - TerminalDataBufferer', () => {
175139 terminal2OnData . fire ( '6' ) ;
176140 terminal2OnData . fire ( '7' ) ;
177141
178- assert . equal ( terminal1Counter , 0 ) ;
179- assert . equal ( terminal1Data , undefined ) ;
180- assert . equal ( terminal2Counter , 0 ) ;
181- assert . equal ( terminal2Data , undefined ) ;
142+ assert . equal ( counter [ 1 ] , undefined ) ;
143+ assert . equal ( data [ 1 ] , undefined ) ;
144+ assert . equal ( counter [ 2 ] , undefined ) ;
145+ assert . equal ( data [ 2 ] , undefined ) ;
182146
183147 bufferer . dispose ( ) ;
184148 await wait ( 0 ) ;
185149
186- assert . equal ( terminal1Counter , 0 ) ;
187- assert . equal ( terminal1Data , undefined ) ;
188- assert . equal ( terminal2Counter , 0 ) ;
189- assert . equal ( terminal2Data , undefined ) ;
150+ assert . equal ( counter [ 1 ] , 1 ) ;
151+ assert . equal ( data [ 1 ] , '123' ) ;
152+ assert . equal ( counter [ 2 ] , 1 ) ;
153+ assert . equal ( data [ 2 ] , '4567' ) ;
190154 } ) ;
191155} ) ;
0 commit comments