From cc75c566b8d485720457315d267c0d8cab6283cf Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Wed, 25 Dec 2019 15:12:55 +0100 Subject: [PATCH] fix(rmdir): proper async functionality --- src/__tests__/volume.test.ts | 10 +++++++++- src/volume.ts | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/__tests__/volume.test.ts b/src/__tests__/volume.test.ts index 416e5f4f..3ff568c4 100644 --- a/src/__tests__/volume.test.ts +++ b/src/__tests__/volume.test.ts @@ -958,11 +958,19 @@ describe('volume', () => { const vol = new Volume(); vol.mkdirSync('/dir1/dir2/dir3', { recursive: true }); vol.rmdirSync('/dir1', { recursive: true }); - expect(!!vol.root.getChild('/dir1')).toBe(false); + expect(!!vol.root.getChild('dir1')).toBe(false); }); }); describe('.rmdir(path, callback)', () => { xit('Remove single dir', () => {}); + it('Async remove dir /dir1/dir2/dir3 recursively', done => { + const vol = new Volume(); + vol.mkdirSync('/dir1/dir2/dir3', { recursive: true }); + vol.rmdir('/dir1', { recursive: true }, () => { + expect(!!vol.root.getChild('dir1')).toBe(false); + done(); + }); + }); }); describe('.watchFile(path[, options], listener)', () => { it('Calls listener on .writeFile', done => { diff --git a/src/volume.ts b/src/volume.ts index 39916dc4..c734866d 100644 --- a/src/volume.ts +++ b/src/volume.ts @@ -1931,7 +1931,7 @@ export class Volume { rmdir(path: TFilePath, a: TCallback | IRmdirOptions, b?: TCallback) { const opts: IRmdirOptions = getRmdirOptions(a); const callback: TCallback = validateCallback(typeof a === 'function' ? a : b); - this.wrapAsync(this.rmdirBase, [pathToFilename(path)], callback); + this.wrapAsync(this.rmdirBase, [pathToFilename(path), opts], callback); } private fchmodBase(fd: number, modeNum: number) {