@@ -4,34 +4,48 @@ let expect = require('chai').expect;
44let assert = require ( 'yeoman-assert' ) ;
55let helpers = require ( 'yeoman-test' ) ;
66
7+ // Default globals, used in all tests
8+ const defaultPrompts = require ( '../../../generators/app/prompts.js' ) ;
9+ let generator ;
10+ const generatorBase = path . join ( __dirname , '../../../generators/app' ) ;
11+
12+ /**
13+ * Global before load function. Run in the before callbacks
14+ * @param {Object } prompts List of prompts to use
15+ * @param {Function } done Done callback
16+ */
17+ const beforeLoad = ( prompts , done ) => {
18+
19+ helpers . run ( generatorBase )
20+ . inTmpDir ( )
21+ . withOptions ( {
22+ 'skip-welcome-message' : true ,
23+ 'skip-install' : true
24+ } )
25+ . withPrompts ( prompts )
26+ . on ( 'ready' , ( instance ) => {
27+ generator = instance ;
28+ } )
29+ . on ( 'end' , done ) ;
30+ } ;
31+
732describe ( 'react-webpack:app' , ( ) => {
833
9- let defaultPrompts = require ( '../../../generators/app/prompts.js' ) ;
1034 let prompts = { } ;
1135 for ( let p of defaultPrompts ) {
1236 prompts [ p . name ] = p . default ;
1337 }
1438
15- let generator ;
16- let generatorBase = path . join ( __dirname , '../../../generators/app' ) ;
17-
1839 before ( ( done ) => {
19-
20- helpers . run ( generatorBase )
21- . inTmpDir ( )
22- . withOptions ( {
23- 'skip-welcome-message' : true ,
24- 'skip-install' : true
25- } )
26- . withPrompts ( prompts )
27- . on ( 'ready' , ( instance ) => {
28- generator = instance ;
29- } )
30- . on ( 'end' , done ) ;
40+ beforeLoad ( prompts , done ) ;
3141 } ) ;
3242
3343 describe ( '#config' , ( ) => {
3444
45+ it ( 'should set the generatedWith key to the current generator major version' , ( ) => {
46+ expect ( generator . config . get ( 'generatedWithVersion' ) ) . to . equal ( 3 ) ;
47+ } ) ;
48+
3549 it ( 'should use "css" as default style language' , ( ) => {
3650 expect ( generator . config . get ( 'style' ) ) . to . equal ( 'css' ) ;
3751 } ) ;
@@ -101,39 +115,32 @@ describe('react-webpack:app', () => {
101115 } ) ;
102116} ) ;
103117
104- describe ( 'react-webpack:app non-default-prompts ' , ( ) => {
118+ describe ( 'react-webpack:app with PostCSS support ' , ( ) => {
105119
106- let defaultPrompts = require ( '../../../generators/app/prompts.js' ) ;
107120 let prompts = { } ;
108121 for ( let p of defaultPrompts ) {
109122 prompts [ p . name ] = p . default ;
110123 }
111124
112125 prompts . postcss = true ;
113126
114- let generator ;
115- let generatorBase = path . join ( __dirname , '../../../generators/app' ) ;
116-
117127 before ( ( done ) => {
118-
119- helpers . run ( generatorBase )
120- . inTmpDir ( )
121- . withOptions ( {
122- 'skip-welcome-message' : true ,
123- 'skip-install' : true
124- } )
125- . withPrompts ( prompts )
126- . on ( 'ready' , ( instance ) => {
127- generator = instance ;
128- } )
129- . on ( 'end' , done ) ;
128+ beforeLoad ( prompts , done ) ;
130129 } ) ;
131130
132131 describe ( '#config' , ( ) => {
133132
133+ it ( 'should set the generatedWith key to the current generator major version' , ( ) => {
134+ expect ( generator . config . get ( 'generatedWithVersion' ) ) . to . equal ( 3 ) ;
135+ } ) ;
136+
134137 it ( 'should use "css" as default style language' , ( ) => {
135138 expect ( generator . config . get ( 'style' ) ) . to . equal ( 'css' ) ;
136139 } ) ;
140+
141+ it ( 'should enable "PostCSS"' , ( ) => {
142+ expect ( generator . config . get ( 'postcss' ) ) . to . equal ( true ) ;
143+ } ) ;
137144 } ) ;
138145
139146 describe ( '#createFiles' , ( ) => {
0 commit comments