@@ -8,7 +8,7 @@ import { OutputChannelObserver, OutputFormatter } from './index';
88import { PrettyPrinter } from './Printers' ;
99
1010describe ( 'OutputChannelObserver clear behavior' , ( ) => {
11- const createObserver = ( config : Record < string , unknown > = { } ) => {
11+ const createObserver = ( config : Record < string , unknown > = { } , request : TestRunRequest = { continuous : false } as TestRunRequest ) => {
1212 const outputChannel = vscode . window . createOutputChannel ( 'phpunit' ) ;
1313 const configuration = new Configuration ( {
1414 clearOutputOnRun : true ,
@@ -19,6 +19,7 @@ describe('OutputChannelObserver clear behavior', () => {
1919 outputChannel ,
2020 configuration ,
2121 new PrettyPrinter ( new PHPUnitXML ( ) ) ,
22+ request ,
2223 ) ;
2324
2425 return { observer, outputChannel } ;
@@ -30,7 +31,6 @@ describe('OutputChannelObserver clear behavior', () => {
3031
3132 it ( 'clears once for multiple processes in the same request' , ( ) => {
3233 const { observer, outputChannel } = createObserver ( ) ;
33- observer . setRequest ( { continuous : false } as TestRunRequest ) ;
3434
3535 observer . run ( createBuilder ( 'command-1' ) ) ;
3636 observer . run ( createBuilder ( 'command-2' ) ) ;
@@ -39,30 +39,33 @@ describe('OutputChannelObserver clear behavior', () => {
3939 } ) ;
4040
4141 it ( 'should show output channel when continuous is undefined (standard run)' , ( ) => {
42- const { observer, outputChannel } = createObserver ( { showAfterExecution : 'always' } ) ;
43- observer . setRequest ( { } as TestRunRequest ) ;
42+ const { observer, outputChannel } = createObserver ( { showAfterExecution : 'always' } , { } as TestRunRequest ) ;
4443
4544 observer . run ( createBuilder ( 'command-1' ) ) ;
4645
4746 expect ( outputChannel . show ) . toHaveBeenCalled ( ) ;
4847 } ) ;
4948
5049 it ( 'should not show output channel when continuous is true' , ( ) => {
51- const { observer, outputChannel } = createObserver ( { showAfterExecution : 'always' } ) ;
52- observer . setRequest ( { continuous : true } as TestRunRequest ) ;
50+ const { observer, outputChannel } = createObserver ( { showAfterExecution : 'always' } , { continuous : true } as TestRunRequest ) ;
5351
5452 observer . run ( createBuilder ( 'command-1' ) ) ;
5553
5654 expect ( outputChannel . show ) . not . toHaveBeenCalled ( ) ;
5755 } ) ;
5856
59- it ( 'clears again for a new request' , ( ) => {
60- const { observer, outputChannel } = createObserver ( ) ;
61- observer . setRequest ( { continuous : false } as TestRunRequest ) ;
62- observer . run ( createBuilder ( 'command-1' ) ) ;
57+ it ( 'each observer instance clears independently' , ( ) => {
58+ const { outputChannel } = createObserver ( ) ;
59+ const config = {
60+ clearOutputOnRun : true ,
61+ showAfterExecution : 'onFailure' ,
62+ } ;
63+ const configuration = new Configuration ( config ) ;
64+ const observer1 = new OutputChannelObserver ( outputChannel , configuration , new PrettyPrinter ( new PHPUnitXML ( ) ) , { continuous : false } as TestRunRequest ) ;
65+ const observer2 = new OutputChannelObserver ( outputChannel , configuration , new PrettyPrinter ( new PHPUnitXML ( ) ) , { continuous : false } as TestRunRequest ) ;
6366
64- observer . setRequest ( { continuous : false } as TestRunRequest ) ;
65- observer . run ( createBuilder ( 'command-2' ) ) ;
67+ observer1 . run ( createBuilder ( 'command-1' ) ) ;
68+ observer2 . run ( createBuilder ( 'command-2' ) ) ;
6669
6770 expect ( outputChannel . clear ) . toHaveBeenCalledTimes ( 2 ) ;
6871 } ) ;
@@ -92,8 +95,8 @@ describe.each(detectPhpUnitStubs())('OutputChannelObserver on $name (PHPUnit $ph
9295 outputChannel ,
9396 configuration ,
9497 new PrettyPrinter ( new PHPUnitXML ( ) ) ,
98+ { continuous : false } as TestRunRequest ,
9599 ) ;
96- observer . setRequest ( { continuous : false } as TestRunRequest ) ;
97100 testRunner . observe ( observer ) ;
98101 } ) ;
99102
0 commit comments