22
33const  webpack  =  require ( './helpers/compiler' ) 
44const  {  loader }  =  require ( './helpers/compilation' ) 
5+ const  {  copyFile,  deleteFile }  =  require ( './helpers/fs' ) ; 
56
67describe ( 'Loader' ,  ( )  =>  { 
78  test ( 'Default' ,  ( )  =>  { 
@@ -20,4 +21,67 @@ describe('Loader', () => {
2021        expect ( src ) . toMatchSnapshot ( ) 
2122      } ) 
2223  } ) 
24+ 
25+   describe ( 'Watching' ,  ( )  =>  { 
26+     describe ( 'Dependencies' ,  ( )  =>  { 
27+       const  files  =  { 
28+         syntaxError : "watch/watching/syntaxError.css" , 
29+         noSyntaxError : "watch/watching/noSyntaxError.css" , 
30+         changingFile : "watch/watching/styleDep.css" 
31+       } 
32+ 
33+       beforeEach ( ( )  =>  copyFile ( files . noSyntaxError ,  files . changingFile ) ) 
34+ 
35+       afterEach ( ( )  =>  deleteFile ( files . changingFile ) ) 
36+ 
37+       test ( 'Error' ,  ( )  =>  { 
38+         const  config  =  { 
39+           loader : { 
40+             options : { 
41+               plugins : [ require ( "postcss-import" ) ] , 
42+             } 
43+           } 
44+         } 
45+ 
46+         const  steps  =  [ 
47+           ( stats )  =>  { 
48+             const  {  err,  src }  =  loader ( stats ) 
49+ 
50+             expect ( src ) . toMatchSnapshot ( ) 
51+             expect ( err . length ) . toEqual ( 0 ) 
52+ 
53+             return  copyFile ( files . syntaxError ,  files . changingFile ) 
54+           } , 
55+           ( stats )  =>  { 
56+             const  {  err,  src }  =  loader ( stats ) 
57+ 
58+             expect ( src ) . toMatchSnapshot ( ) 
59+             expect ( err . length ) . toEqual ( 1 ) 
60+ 
61+             return  copyFile ( files . noSyntaxError ,  files . changingFile ) 
62+           } , 
63+           ( stats ,  close )  =>  { 
64+             const  {  err,  src }  =  loader ( stats ) 
65+ 
66+             expect ( src ) . toMatchSnapshot ( ) 
67+             expect ( src ) . toEqual ( "module.exports = \"a { color: black }\\n\"" ) 
68+             expect ( err . length ) . toEqual ( 0 ) 
69+ 
70+             return  close ( ) 
71+           } 
72+         ] ; 
73+ 
74+         var  currentStep  =  0 
75+ 
76+         const  options  =  { 
77+           watch  ( err ,  stats ,  close )  { 
78+             steps [ currentStep ] ( stats ,  close ) 
79+             currentStep ++ 
80+           } 
81+         } 
82+ 
83+         return  webpack ( 'watch/watching/index.js' ,  config ,  options ) 
84+       } ) 
85+     } ) 
86+   } ) 
2387} ) 
0 commit comments