Skip to content

Commit e6a84f7

Browse files
committed
FILE: /test/stub-generator.js – tidy up test
1 parent 7aee4b2 commit e6a84f7

File tree

1 file changed

+163
-188
lines changed

1 file changed

+163
-188
lines changed

test/stub-generator-tests.js

Lines changed: 163 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@ var FOURTH = keys.FOURTH;
2121
var FIFTH = keys.FIFTH;
2222

2323
describe('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:[email protected]');
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:[email protected]');
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:[email protected]');
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:[email protected]');
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

Comments
 (0)