@@ -46,14 +46,15 @@ function mkdirSyncSafe(dir) {
4646
4747function unlinkSyncSafe ( dir ) {
4848 try {
49- fs . unlinkSync ( dir ) ;
49+ fs . rmdirSync ( dir ) ;
5050 } catch ( ignoreError ) {
5151 // Nothing
5252 }
5353}
5454
5555describe ( "execa-webpack-plugin" , ( ) => {
5656 const dir = path . join ( __dirname , "dir" ) ;
57+ const nestedDir = path . join ( dir , "nested" ) ;
5758 const otherDir = path . join ( __dirname , "other-dir" ) ;
5859
5960 it ( "should throw error on `on*` options are empty (no events)" , ( ) =>
@@ -755,4 +756,60 @@ describe("execa-webpack-plugin", () => {
755756 return Promise . resolve ( ) ;
756757 } ) ;
757758 } ) ;
759+
760+ it ( "should works with options (sync event)" , ( ) => {
761+ expect . assertions ( 3 ) ;
762+
763+ mkdirSyncSafe ( dir ) ;
764+ mkdirSyncSafe ( nestedDir ) ;
765+
766+ expect ( fs . statSync ( dir ) . isDirectory ( ) ) . toBe ( true ) ;
767+ expect ( fs . statSync ( nestedDir ) . isDirectory ( ) ) . toBe ( true ) ;
768+
769+ return run ( {
770+ onCompile : [
771+ {
772+ args : [ nestedDir ] ,
773+ cmd : "del" ,
774+ options : {
775+ cwd : dir
776+ }
777+ }
778+ ]
779+ } ) . then ( ( ) => {
780+ expect ( ( ) => fs . statSync ( nestedDir ) ) . toThrow ( ) ;
781+
782+ unlinkSyncSafe ( dir ) ;
783+
784+ return Promise . resolve ( ) ;
785+ } ) ;
786+ } ) ;
787+
788+ it ( "should works with options (async event)" , ( ) => {
789+ expect . assertions ( 3 ) ;
790+
791+ mkdirSyncSafe ( dir ) ;
792+ mkdirSyncSafe ( nestedDir ) ;
793+
794+ expect ( fs . statSync ( dir ) . isDirectory ( ) ) . toBe ( true ) ;
795+ expect ( fs . statSync ( nestedDir ) . isDirectory ( ) ) . toBe ( true ) ;
796+
797+ return run ( {
798+ onDone : [
799+ {
800+ args : [ nestedDir ] ,
801+ cmd : "del" ,
802+ options : {
803+ cwd : dir
804+ }
805+ }
806+ ]
807+ } ) . then ( ( ) => {
808+ expect ( ( ) => fs . statSync ( nestedDir ) ) . toThrow ( ) ;
809+
810+ unlinkSyncSafe ( dir ) ;
811+
812+ return Promise . resolve ( ) ;
813+ } ) ;
814+ } ) ;
758815} ) ;
0 commit comments