@@ -21,12 +21,11 @@ var FOURTH = keys.FOURTH;
2121var FIFTH = keys . FIFTH ;
2222
2323describe ( 'Stub Generator' , function ( ) {
24- var src = { } ;
25- var builder ;
26- var loader ;
24+ var src , loader ;
2725
2826 beforeEach ( function ( ) {
2927 loader = new Loader ( ) ;
28+ src = { } ;
3029
3130 quickTemp . makeOrRemake ( src , 'tmp' ) ;
3231 src . inputTree = src . tmp + '/inputTree' ;
@@ -36,13 +35,7 @@ describe('Stub Generator', function() {
3635 afterEach ( function ( ) {
3736 loader . teardown ( ) ;
3837
39- if ( src . tmp ) {
40- quickTemp . remove ( src , 'tmp' ) ;
41- }
42-
43- if ( builder ) {
44- return builder . cleanup ( ) ;
45- }
38+ quickTemp . remove ( src , 'tmp' ) ;
4639 } ) ;
4740
4841 describe ( 'input' , function ( ) {
@@ -59,202 +52,184 @@ describe('Stub Generator', function() {
5952 } ) ;
6053 } ) ;
6154
62- it ( 'generates stub file' , function ( ) {
63- var tree = new StubGenerator ( src . inputTree , {
64- basedir : __dirname + '/fixtures/modules'
65- } ) ;
55+ describe ( 'building' , function ( ) {
56+ var builder ;
57+ beforeEach ( function ( ) {
58+ var tree = new StubGenerator ( src . inputTree , {
59+ basedir : __dirname + '/fixtures/modules'
60+ } ) ;
6661
67- builder = new broccoli . Builder ( tree ) ;
68-
69- return builder . build ( ) . then ( function ( result ) {
70- loader . load ( result . directory + '/browserify_stubs.js' ) ;
71- loader . load ( result . directory + '/sample.js' ) ;
72- loader . load ( result . directory + '/inner/other.js' ) ;
73-
74- expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
75-
76- var broc = loader . require ( 'npm:broccoli@3.0.0' ) ;
77-
78- expect ( broc ) . to . have . keys ( [ 'default' ] ) ;
79- expect ( broc . default ) . to . have . keys ( [
80- 'loadBrocfile' ,
81- 'server' ,
82- 'getMiddleware' ,
83- 'Watcher' ,
84- 'cli' ,
85- 'makeTree' ,
86- 'bowerTrees' ,
87- 'MergedTree' ,
88- 'Builder'
89- ] ) ;
62+ builder = new broccoli . Builder ( tree ) ;
9063 } ) ;
91- } ) ;
9264
93- it ( 'generates same stubFile if inputs do not change' , function ( ) {
94- var tree = new StubGenerator ( src . inputTree , {
95- basedir : __dirname + '/fixtures/modules'
65+ afterEach ( function ( ) {
66+ return builder . cleanup ( ) ;
9667 } ) ;
9768
98- builder = new broccoli . Builder ( tree ) ;
99-
100- var firstRun ;
101- return builder . build ( ) . then ( function ( result ) {
102- firstRun = fs . statSync ( result . directory + '/browserify_stubs.js' ) ;
103- return builder . build ( ) ;
104- } ) . then ( function ( result ) {
105- var nextRun = fs . statSync ( result . directory + '/browserify_stubs.js' ) ;
106-
107- expect ( firstRun , 'stat information should remain the same' ) . to . deep . equal ( nextRun ) ;
69+ it ( 'generates stub file' , function ( ) {
70+ return builder . build ( ) . then ( function ( result ) {
71+ loader . load ( result . directory + '/browserify_stubs.js' ) ;
72+ loader . load ( result . directory + '/sample.js' ) ;
73+ loader . load ( result . directory + '/inner/other.js' ) ;
74+
75+ expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
76+
77+ var broc = loader . require ( 'npm:broccoli@3.0.0' ) ;
78+
79+ expect ( broc ) . to . have . keys ( [ 'default' ] ) ;
80+ expect ( broc . default ) . to . have . keys ( [
81+ 'loadBrocfile' ,
82+ 'server' ,
83+ 'getMiddleware' ,
84+ 'Watcher' ,
85+ 'cli' ,
86+ 'makeTree' ,
87+ 'bowerTrees' ,
88+ 'MergedTree' ,
89+ 'Builder'
90+ ] ) ;
91+ } ) ;
10892 } ) ;
109- } ) ;
11093
111- it ( 'adds deps from new file' , function ( ) {
112- var tree = new StubGenerator ( src . inputTree , {
113- basedir : __dirname + '/fixtures/modules'
114- } ) ;
94+ it ( 'generates same stubFile if inputs do not change' , function ( ) {
95+ var firstRun ;
96+ return builder . build ( ) . then ( function ( result ) {
97+ firstRun = fs . statSync ( result . directory + '/browserify_stubs.js' ) ;
98+ return builder . build ( ) ;
99+ } ) . then ( function ( result ) {
100+ var nextRun = fs . statSync ( result . directory + '/browserify_stubs.js' ) ;
115101
116- builder = new broccoli . Builder ( tree ) ;
117- return builder . build ( ) . then ( function ( result ) {
118- loader . load ( result . directory + '/browserify_stubs.js' ) ;
119- loader . load ( result . directory + '/sample.js' ) ;
120- loader . load ( result . directory + '/inner/other.js' ) ;
121-
122- expect ( walkSync ( result . directory ) ) . to . eql ( [
123- 'browserify_stubs.js' ,
124- 'inner/' ,
125- 'inner/other.js' ,
126- 'sample.js' ,
127- ] ) ;
128-
129- expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
130-
131- var broc = loader . require ( 'npm:broccoli@3.0.0' ) ;
132-
133- expect ( broc ) . to . have . keys ( [ 'default' ] ) ;
134- expect ( broc . default ) . to . have . keys ( [
135- 'loadBrocfile' ,
136- 'server' ,
137- 'getMiddleware' ,
138- 'Watcher' ,
139- 'cli' ,
140- 'makeTree' ,
141- 'bowerTrees' ,
142- 'MergedTree' ,
143- 'Builder'
144- ] ) ;
145-
146- fs . writeFileSync ( src . inputTree + '/new.js' , "define(\"fizz\", [\"exports\", \"npm:something-new\"], function(exports, SomethingNew) {});" ) ;
147- return builder . build ( ) ;
148- } ) . then ( function ( result ) {
149- expect ( walkSync ( result . directory ) ) . to . eql ( [
150- 'browserify_stubs.js' ,
151- 'inner/' ,
152- 'inner/other.js' ,
153- 'new.js' ,
154- 'sample.js' ,
155- ] ) ;
156-
157- loader . reload ( result . directory + '/browserify_stubs.js' ) ;
158-
159- expect ( loader . entries ) . to . have . keys ( SECOND . keys ) ;
102+ expect ( firstRun , 'stat information should remain the same' ) . to . deep . equal ( nextRun ) ;
103+ } ) ;
160104 } ) ;
161- } ) ;
162105
163- it ( 'removes deps from deleted file' , function ( ) {
164- var tree = new StubGenerator ( src . inputTree , {
165- basedir : __dirname + '/fixtures/modules'
106+ it ( 'adds deps from new file' , function ( ) {
107+ return builder . build ( ) . then ( function ( result ) {
108+ loader . load ( result . directory + '/browserify_stubs.js' ) ;
109+ loader . load ( result . directory + '/sample.js' ) ;
110+ loader . load ( result . directory + '/inner/other.js' ) ;
111+
112+ expect ( walkSync ( result . directory ) ) . to . eql ( [
113+ 'browserify_stubs.js' ,
114+ 'inner/' ,
115+ 'inner/other.js' ,
116+ 'sample.js' ,
117+ ] ) ;
118+
119+ expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
120+
121+ var broc = loader . require ( 'npm:broccoli@3.0.0' ) ;
122+
123+ expect ( broc ) . to . have . keys ( [ 'default' ] ) ;
124+ expect ( broc . default ) . to . have . keys ( [
125+ 'loadBrocfile' ,
126+ 'server' ,
127+ 'getMiddleware' ,
128+ 'Watcher' ,
129+ 'cli' ,
130+ 'makeTree' ,
131+ 'bowerTrees' ,
132+ 'MergedTree' ,
133+ 'Builder'
134+ ] ) ;
135+
136+ fs . writeFileSync ( src . inputTree + '/new.js' , "define(\"fizz\", [\"exports\", \"npm:something-new\"], function(exports, SomethingNew) {});" ) ;
137+ return builder . build ( ) ;
138+ } ) . then ( function ( result ) {
139+ expect ( walkSync ( result . directory ) ) . to . eql ( [
140+ 'browserify_stubs.js' ,
141+ 'inner/' ,
142+ 'inner/other.js' ,
143+ 'new.js' ,
144+ 'sample.js' ,
145+ ] ) ;
146+
147+ loader . reload ( result . directory + '/browserify_stubs.js' ) ;
148+
149+ expect ( loader . entries ) . to . have . keys ( SECOND . keys ) ;
150+ } ) ;
166151 } ) ;
167152
168- builder = new broccoli . Builder ( tree ) ;
169- return builder . build ( ) . then ( function ( result ) {
170- loader . load ( result . directory + '/browserify_stubs.js' ) ;
171- loader . load ( result . directory + '/sample.js' ) ;
172- loader . load ( result . directory + '/inner/other.js' ) ;
173-
174- expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
175- fs . unlinkSync ( src . inputTree + '/sample.js' ) ;
176- return builder . build ( ) ;
177- } ) . then ( function ( result ) {
153+ it ( 'removes deps from deleted file' , function ( ) {
154+ return builder . build ( ) . then ( function ( result ) {
155+ loader . load ( result . directory + '/browserify_stubs.js' ) ;
156+ loader . load ( result . directory + '/sample.js' ) ;
157+ loader . load ( result . directory + '/inner/other.js' ) ;
178158
179- loader . reload ( result . directory + '/browserify_stubs.js' ) ;
159+ expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
160+ fs . unlinkSync ( src . inputTree + '/sample.js' ) ;
161+ return builder . build ( ) ;
162+ } ) . then ( function ( result ) {
163+ loader . reload ( result . directory + '/browserify_stubs.js' ) ;
180164
181- expect ( loader . entries ) . to . have . keys ( THIRD . keys ) ;
165+ expect ( loader . entries ) . to . have . keys ( THIRD . keys ) ;
166+ } ) ;
182167 } ) ;
183- } ) ;
184168
185- it ( 'adds deps in modified file' , function ( ) {
186- var tree = new StubGenerator ( src . inputTree , {
187- basedir : __dirname + '/fixtures/modules'
169+ it ( 'adds deps in modified file' , function ( ) {
170+ return builder . build ( ) . then ( function ( result ) {
171+ loader . load ( result . directory + '/browserify_stubs.js' ) ;
172+ loader . load ( result . directory + '/sample.js' ) ;
173+ loader . load ( result . directory + '/inner/other.js' ) ;
174+
175+ expect ( walkSync ( result . directory ) ) . to . eql ( [
176+ 'browserify_stubs.js' ,
177+ 'inner/' ,
178+ 'inner/other.js' ,
179+ 'sample.js' ,
180+ ] ) ;
181+
182+ expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
183+
184+ var was = "define('foo', ['exports', 'npm:broccoli', 'npm:additional-thing'], function(exports, Broccoli, Additional) { exports['default'] = Broccoli;});" ;
185+
186+ fs . writeFileSync ( src . inputTree + '/sample.js' , was ) ;
187+ return builder . build ( ) ;
188+ } ) . then ( function ( result ) {
189+ expect ( walkSync ( result . directory ) ) . to . eql ( [
190+ 'browserify_stubs.js' ,
191+ 'inner/' ,
192+ 'inner/other.js' ,
193+ 'sample.js' ,
194+ ] ) ;
195+
196+ loader . reload ( result . directory + '/browserify_stubs.js' ) ;
197+
198+ expect ( loader . entries ) . to . have . keys ( FOURTH . keys ) ;
199+ } ) ;
188200 } ) ;
189201
190- builder = new broccoli . Builder ( tree ) ;
191- return builder . build ( ) . then ( function ( result ) {
192- loader . load ( result . directory + '/browserify_stubs.js' ) ;
193- loader . load ( result . directory + '/sample.js' ) ;
194- loader . load ( result . directory + '/inner/other.js' ) ;
195-
196- expect ( walkSync ( result . directory ) ) . to . eql ( [
197- 'browserify_stubs.js' ,
198- 'inner/' ,
199- 'inner/other.js' ,
200- 'sample.js' ,
201- ] ) ;
202-
203- expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
204-
205- var was = "define('foo', ['exports', 'npm:broccoli', 'npm:additional-thing'], function(exports, Broccoli, Additional) { exports['default'] = Broccoli;});" ;
206-
207- fs . writeFileSync ( src . inputTree + '/sample.js' , was ) ;
208- return builder . build ( ) ;
209- } ) . then ( function ( result ) {
210-
211- expect ( walkSync ( result . directory ) ) . to . eql ( [
212- 'browserify_stubs.js' ,
213- 'inner/' ,
214- 'inner/other.js' ,
215- 'sample.js' ,
216- ] ) ;
217-
218- loader . reload ( result . directory + '/browserify_stubs.js' ) ;
219-
220- expect ( loader . entries ) . to . have . keys ( FOURTH . keys ) ;
221- } ) ;
222- } ) ;
223-
224- it ( 'removes deps in modified file' , function ( ) {
225- var tree = new StubGenerator ( src . inputTree , {
226- basedir : __dirname + '/fixtures/modules'
227- } ) ;
228- builder = new broccoli . Builder ( tree ) ;
229- return builder . build ( ) . then ( function ( result ) {
230- loader . load ( result . directory + '/browserify_stubs.js' ) ;
231- loader . load ( result . directory + '/sample.js' ) ;
232- loader . load ( result . directory + '/inner/other.js' ) ;
233-
234- expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
235-
236- expect ( walkSync ( result . directory ) ) . to . eql ( [
237- 'browserify_stubs.js' ,
238- 'inner/' ,
239- 'inner/other.js' ,
240- 'sample.js' ,
241- ] ) ;
242-
243- var was = "define('foo', ['exports', 'npm:y'], function(exports, _npmY) {});" ;
244-
245- fs . writeFileSync ( src . inputTree + '/inner/other.js' , was ) ;
246- return builder . build ( ) ;
247- } ) . then ( function ( result ) {
248- loader . reload ( result . directory + '/browserify_stubs.js' ) ;
249-
250- expect ( walkSync ( result . directory ) ) . to . eql ( [
251- 'browserify_stubs.js' ,
252- 'inner/' ,
253- 'inner/other.js' ,
254- 'sample.js' ,
255- ] ) ;
256-
257- expect ( loader . entries ) . to . have . keys ( FIFTH . keys ) ;
202+ it ( 'removes deps in modified file' , function ( ) {
203+ return builder . build ( ) . then ( function ( result ) {
204+ loader . load ( result . directory + '/browserify_stubs.js' ) ;
205+ loader . load ( result . directory + '/sample.js' ) ;
206+ loader . load ( result . directory + '/inner/other.js' ) ;
207+
208+ expect ( loader . entries ) . to . have . keys ( FIRST . keys ) ;
209+
210+ expect ( walkSync ( result . directory ) ) . to . eql ( [
211+ 'browserify_stubs.js' ,
212+ 'inner/' ,
213+ 'inner/other.js' ,
214+ 'sample.js' ,
215+ ] ) ;
216+
217+ var was = "define('foo', ['exports', 'npm:y'], function(exports, _npmY) {});" ;
218+
219+ fs . writeFileSync ( src . inputTree + '/inner/other.js' , was ) ;
220+ return builder . build ( ) ;
221+ } ) . then ( function ( result ) {
222+ loader . reload ( result . directory + '/browserify_stubs.js' ) ;
223+
224+ expect ( walkSync ( result . directory ) ) . to . eql ( [
225+ 'browserify_stubs.js' ,
226+ 'inner/' ,
227+ 'inner/other.js' ,
228+ 'sample.js' ,
229+ ] ) ;
230+
231+ expect ( loader . entries ) . to . have . keys ( FIFTH . keys ) ;
232+ } ) ;
258233 } ) ;
259234 } ) ;
260235} ) ;
0 commit comments