@@ -8,7 +8,8 @@ import * as fs from 'fs-extra';
88import { convertStat , FileSystem , FileSystemUtils , RawFileSystem } from '../../../client/common/platform/fileSystem' ;
99import { FileSystemPaths , FileSystemPathUtils } from '../../../client/common/platform/fs-paths' ;
1010import { FileType } from '../../../client/common/platform/types' ;
11- import { sleep } from '../../../client/common/utils/async' ;
11+ import { createDeferred , sleep } from '../../../client/common/utils/async' ;
12+ import { noop } from '../../../client/common/utils/misc' ;
1213import {
1314 assertDoesNotExist ,
1415 assertFileText ,
@@ -267,13 +268,24 @@ suite('FileSystem - raw', () => {
267268 }
268269 } ) ;
269270
271+ async function writeToStream ( filename : string , write : ( str : fs . WriteStream ) => void ) {
272+ const closeDeferred = createDeferred ( ) ;
273+ const stream = fileSystem . createWriteStream ( filename ) ;
274+ stream . on ( 'close' , ( ) => closeDeferred . resolve ( ) ) ;
275+ write ( stream ) ;
276+ stream . end ( ) ;
277+ stream . close ( ) ;
278+ stream . destroy ( ) ;
279+ await closeDeferred . promise ;
280+ return stream ;
281+ }
282+
270283 test ( 'returns the correct WriteStream' , async ( ) => {
271284 const filename = await fix . resolve ( 'x/y/z/spam.py' ) ;
272285 const expected = fs . createWriteStream ( filename ) ;
273286 expected . destroy ( ) ;
274287
275- const stream = fileSystem . createWriteStream ( filename ) ;
276- stream . destroy ( ) ;
288+ const stream = await writeToStream ( filename , noop ) ;
277289
278290 expect ( stream . path ) . to . deep . equal ( expected . path ) ;
279291 } ) ;
@@ -283,9 +295,7 @@ suite('FileSystem - raw', () => {
283295 await assertDoesNotExist ( filename ) ;
284296 const data = 'line1\nline2\n' ;
285297
286- const stream = fileSystem . createWriteStream ( filename ) ;
287- stream . write ( data ) ;
288- stream . destroy ( ) ;
298+ await writeToStream ( filename , s => s . write ( data ) ) ;
289299
290300 await assertFileText ( filename , data ) ;
291301 } ) ;
@@ -294,9 +304,7 @@ suite('FileSystem - raw', () => {
294304 const filename = await fix . resolve ( 'x/y/z/spam.py' ) ;
295305 const data = '... 😁 ...' ;
296306
297- const stream = fileSystem . createWriteStream ( filename ) ;
298- stream . write ( data ) ;
299- stream . destroy ( ) ;
307+ await writeToStream ( filename , s => s . write ( data ) ) ;
300308
301309 await assertFileText ( filename , data ) ;
302310 } ) ;
@@ -305,9 +313,7 @@ suite('FileSystem - raw', () => {
305313 const filename = await fix . createFile ( 'x/y/z/spam.py' , '...' ) ;
306314 const data = 'line1\nline2\n' ;
307315
308- const stream = fileSystem . createWriteStream ( filename ) ;
309- stream . write ( data ) ;
310- stream . destroy ( ) ;
316+ await writeToStream ( filename , s => s . write ( data ) ) ;
311317
312318 await assertFileText ( filename , data ) ;
313319 } ) ;
0 commit comments