Skip to content

Commit 1ee8f6d

Browse files
authored
Merge pull request #788 from Turbo87/async-tests
2 parents 06d0213 + 01179f5 commit 1ee8f6d

File tree

1 file changed

+96
-103
lines changed

1 file changed

+96
-103
lines changed

test/dependency-manager-adapters/npm-adapter-test.js

+96-103
Original file line numberDiff line numberDiff line change
@@ -28,58 +28,54 @@ describe('npmAdapter', () => {
2828
});
2929

3030
describe('#setup', () => {
31-
it('backs up the package.json file and node_modules', () => {
31+
it('backs up the package.json file and node_modules', async () => {
3232
fs.mkdirSync('node_modules');
3333
writeJSONFile('node_modules/prove-it.json', { originalNodeModules: true });
3434
writeJSONFile('package.json', { originalPackageJSON: true });
35-
return new NpmAdapter({
36-
cwd: tmpdir,
37-
})
38-
.setup()
39-
.then(() => {
40-
assertFileContainsJSON(path.join(tmpdir, 'package.json.ember-try'), {
41-
originalPackageJSON: true,
42-
});
43-
assertFileContainsJSON(path.join(tmpdir, '.node_modules.ember-try/prove-it.json'), {
44-
originalNodeModules: true,
45-
});
46-
});
35+
36+
let adapter = new NpmAdapter({ cwd: tmpdir });
37+
await adapter.setup();
38+
39+
assertFileContainsJSON(path.join(tmpdir, 'package.json.ember-try'), {
40+
originalPackageJSON: true,
41+
});
42+
assertFileContainsJSON(path.join(tmpdir, '.node_modules.ember-try/prove-it.json'), {
43+
originalNodeModules: true,
44+
});
4745
});
4846

49-
it('backs up the yarn.lock file, npm-shrinkwrap.json and package-lock.json if they exist', () => {
47+
it('backs up the yarn.lock file, npm-shrinkwrap.json and package-lock.json if they exist', async () => {
5048
fs.mkdirSync('node_modules');
5149
writeJSONFile('node_modules/prove-it.json', { originalNodeModules: true });
5250
writeJSONFile('package.json', { originalPackageJSON: true });
5351
writeJSONFile('yarn.lock', { originalYarnLock: true });
5452
writeJSONFile('npm-shrinkwrap.json', { originalNpmShrinkWrap: true });
5553
writeJSONFile('package-lock.json', { originalPackageLock: true });
56-
return new NpmAdapter({
57-
cwd: tmpdir,
58-
})
59-
.setup()
60-
.then(() => {
61-
assertFileContainsJSON(path.join(tmpdir, 'package.json.ember-try'), {
62-
originalPackageJSON: true,
63-
});
64-
assertFileContainsJSON(path.join(tmpdir, '.node_modules.ember-try/prove-it.json'), {
65-
originalNodeModules: true,
66-
});
67-
assertFileContainsJSON(path.join(tmpdir, 'yarn.lock.ember-try'), {
68-
originalYarnLock: true,
69-
});
70-
assertFileContainsJSON(path.join(tmpdir, 'npm-shrinkwrap.json.ember-try'), {
71-
originalNpmShrinkWrap: true,
72-
});
73-
assertFileContainsJSON(path.join(tmpdir, 'package-lock.json.ember-try'), {
74-
originalPackageLock: true,
75-
});
76-
});
54+
55+
let adapter = new NpmAdapter({ cwd: tmpdir });
56+
await adapter.setup();
57+
58+
assertFileContainsJSON(path.join(tmpdir, 'package.json.ember-try'), {
59+
originalPackageJSON: true,
60+
});
61+
assertFileContainsJSON(path.join(tmpdir, '.node_modules.ember-try/prove-it.json'), {
62+
originalNodeModules: true,
63+
});
64+
assertFileContainsJSON(path.join(tmpdir, 'yarn.lock.ember-try'), {
65+
originalYarnLock: true,
66+
});
67+
assertFileContainsJSON(path.join(tmpdir, 'npm-shrinkwrap.json.ember-try'), {
68+
originalNpmShrinkWrap: true,
69+
});
70+
assertFileContainsJSON(path.join(tmpdir, 'package-lock.json.ember-try'), {
71+
originalPackageLock: true,
72+
});
7773
});
7874
});
7975

8076
describe('#_install', () => {
8177
describe('without yarn', () => {
82-
it('only runs npm install with npm 5', () => {
78+
it('only runs npm install with npm 5', async () => {
8379
writeJSONFile('package.json', fixturePackage);
8480
let runCount = 0;
8581
let stubbedRun = generateMockRun(
@@ -103,17 +99,16 @@ describe('npmAdapter', () => {
10399
{ allowPassthrough: false }
104100
);
105101

106-
return new NpmAdapter({
102+
let adapter = new NpmAdapter({
107103
cwd: tmpdir,
108104
run: stubbedRun,
109-
})
110-
._install()
111-
.then(() => {
112-
expect(runCount).to.equal(2);
113-
});
105+
});
106+
107+
await adapter._install();
108+
expect(runCount).to.equal(2);
114109
});
115110

116-
it('runs npm prune and npm install with npm 4', () => {
111+
it('runs npm prune and npm install with npm 4', async () => {
117112
writeJSONFile('package.json', fixturePackage);
118113
let runCount = 0;
119114
let stubbedRun = generateMockRun(
@@ -145,17 +140,16 @@ describe('npmAdapter', () => {
145140
{ allowPassthrough: false }
146141
);
147142

148-
return new NpmAdapter({
143+
let adapter = new NpmAdapter({
149144
cwd: tmpdir,
150145
run: stubbedRun,
151-
})
152-
._install()
153-
.then(() => {
154-
expect(runCount).to.equal(3, 'All three commands should run');
155-
});
146+
});
147+
148+
await adapter._install();
149+
expect(runCount).to.equal(3, 'All three commands should run');
156150
});
157151

158-
it('uses managerOptions for npm commands', () => {
152+
it('uses managerOptions for npm commands', async () => {
159153
writeJSONFile('package.json', fixturePackage);
160154
let runCount = 0;
161155
let stubbedRun = generateMockRun(
@@ -178,18 +172,17 @@ describe('npmAdapter', () => {
178172
{ allowPassthrough: false }
179173
);
180174

181-
return new NpmAdapter({
175+
let adapter = new NpmAdapter({
182176
cwd: tmpdir,
183177
run: stubbedRun,
184178
managerOptions: ['--no-optional'],
185-
})
186-
._install()
187-
.then(() => {
188-
expect(runCount).to.equal(2);
189-
});
179+
});
180+
181+
await adapter._install();
182+
expect(runCount).to.equal(2);
190183
});
191184

192-
it('uses buildManagerOptions for npm commands', () => {
185+
it('uses buildManagerOptions for npm commands', async () => {
193186
writeJSONFile('package.json', fixturePackage);
194187
let runCount = 0;
195188
let stubbedRun = generateMockRun(
@@ -212,17 +205,16 @@ describe('npmAdapter', () => {
212205
{ allowPassthrough: false }
213206
);
214207

215-
return new NpmAdapter({
208+
let adapter = new NpmAdapter({
216209
cwd: tmpdir,
217210
run: stubbedRun,
218211
buildManagerOptions: function () {
219212
return ['--flat'];
220213
},
221-
})
222-
._install()
223-
.then(() => {
224-
expect(runCount).to.equal(2, 'npm install should run with buildManagerOptions');
225-
});
214+
});
215+
216+
await adapter._install();
217+
expect(runCount).to.equal(2, 'npm install should run with buildManagerOptions');
226218
});
227219

228220
it('throws an error if buildManagerOptions does not return an array', async () => {
@@ -246,7 +238,7 @@ describe('npmAdapter', () => {
246238
});
247239

248240
describe('with yarn', () => {
249-
it('runs yarn install', () => {
241+
it('runs yarn install', async () => {
250242
writeJSONFile('package.json', fixturePackage);
251243
let runCount = 0;
252244
let stubbedRun = generateMockRun(
@@ -263,18 +255,17 @@ describe('npmAdapter', () => {
263255
{ allowPassthrough: false }
264256
);
265257

266-
return new NpmAdapter({
258+
let adapter = new NpmAdapter({
267259
cwd: tmpdir,
268260
run: stubbedRun,
269261
useYarnCommand: true,
270-
})
271-
._install()
272-
.then(() => {
273-
expect(runCount).to.equal(1, 'Only yarn install should run');
274-
});
262+
});
263+
264+
await adapter._install();
265+
expect(runCount).to.equal(1, 'Only yarn install should run');
275266
});
276267

277-
it('uses managerOptions for yarn commands', () => {
268+
it('uses managerOptions for yarn commands', async () => {
278269
writeJSONFile('package.json', fixturePackage);
279270
let runCount = 0;
280271
let stubbedRun = generateMockRun(
@@ -290,19 +281,18 @@ describe('npmAdapter', () => {
290281
{ allowPassthrough: false }
291282
);
292283

293-
return new NpmAdapter({
284+
let adapter = new NpmAdapter({
294285
cwd: tmpdir,
295286
run: stubbedRun,
296287
useYarnCommand: true,
297288
managerOptions: ['--flat'],
298-
})
299-
._install()
300-
.then(() => {
301-
expect(runCount).to.equal(1, 'Only yarn install should run with manager options');
302-
});
289+
});
290+
291+
await adapter._install();
292+
expect(runCount).to.equal(1, 'Only yarn install should run with manager options');
303293
});
304294

305-
it('uses buildManagerOptions for yarn commands', () => {
295+
it('uses buildManagerOptions for yarn commands', async () => {
306296
writeJSONFile('package.json', fixturePackage);
307297
let runCount = 0;
308298
let stubbedRun = generateMockRun(
@@ -318,18 +308,17 @@ describe('npmAdapter', () => {
318308
{ allowPassthrough: false }
319309
);
320310

321-
return new NpmAdapter({
311+
let adapter = new NpmAdapter({
322312
cwd: tmpdir,
323313
run: stubbedRun,
324314
useYarnCommand: true,
325315
buildManagerOptions: function () {
326316
return ['--flat'];
327317
},
328-
})
329-
._install()
330-
.then(() => {
331-
expect(runCount).to.equal(1, 'Only yarn install should run with buildManagerOptions');
332-
});
318+
});
319+
320+
await adapter._install();
321+
expect(runCount).to.equal(1, 'Only yarn install should run with buildManagerOptions');
333322
});
334323

335324
it('throws an error if buildManagerOptions does not return an array', async () => {
@@ -355,20 +344,22 @@ describe('npmAdapter', () => {
355344
});
356345

357346
describe('#_restoreOriginalDependencies', () => {
358-
it('replaces the package.json with the backed up version', () => {
347+
it('replaces the package.json with the backed up version', async () => {
359348
writeJSONFile('package.json.ember-try', { originalPackageJSON: true });
360349
writeJSONFile('package.json', { originalPackageJSON: false });
361350
fs.mkdirSync('.node_modules.ember-try');
362351
writeJSONFile('.node_modules.ember-try/prove-it.json', { originalNodeModules: true });
363-
return new NpmAdapter({ cwd: tmpdir })._restoreOriginalDependencies().then(() => {
364-
assertFileContainsJSON(path.join(tmpdir, 'package.json'), { originalPackageJSON: true });
365-
assertFileContainsJSON(path.join(tmpdir, 'node_modules/prove-it.json'), {
366-
originalNodeModules: true,
367-
});
352+
353+
let adapter = new NpmAdapter({ cwd: tmpdir });
354+
await adapter._restoreOriginalDependencies();
355+
356+
assertFileContainsJSON(path.join(tmpdir, 'package.json'), { originalPackageJSON: true });
357+
assertFileContainsJSON(path.join(tmpdir, 'node_modules/prove-it.json'), {
358+
originalNodeModules: true,
368359
});
369360
});
370361

371-
it('replaces the yarn.lock, npm-shrinkwrap.json and package-lock.json with the backed up version if they exist', () => {
362+
it('replaces the yarn.lock, npm-shrinkwrap.json and package-lock.json with the backed up version if they exist', async () => {
372363
writeJSONFile('package.json.ember-try', { originalPackageJSON: true });
373364
writeJSONFile('package.json', { originalPackageJSON: false });
374365
fs.mkdirSync('.node_modules.ember-try');
@@ -379,18 +370,20 @@ describe('npmAdapter', () => {
379370
writeJSONFile('npm-shrinkwrap.json', { originalNpmShrinkWrap: false });
380371
writeJSONFile('package-lock.json.ember-try', { originalPackageLock: true });
381372
writeJSONFile('package-lock.json', { originalPackageLock: false });
382-
return new NpmAdapter({ cwd: tmpdir })._restoreOriginalDependencies().then(() => {
383-
assertFileContainsJSON(path.join(tmpdir, 'package.json'), { originalPackageJSON: true });
384-
assertFileContainsJSON(path.join(tmpdir, 'node_modules/prove-it.json'), {
385-
originalNodeModules: true,
386-
});
387-
assertFileContainsJSON(path.join(tmpdir, 'yarn.lock'), { originalYarnLock: true });
388-
assertFileContainsJSON(path.join(tmpdir, 'npm-shrinkwrap.json'), {
389-
originalNpmShrinkWrap: true,
390-
});
391-
assertFileContainsJSON(path.join(tmpdir, 'package-lock.json'), {
392-
originalPackageLock: true,
393-
});
373+
374+
let adapter = new NpmAdapter({ cwd: tmpdir });
375+
await adapter._restoreOriginalDependencies();
376+
377+
assertFileContainsJSON(path.join(tmpdir, 'package.json'), { originalPackageJSON: true });
378+
assertFileContainsJSON(path.join(tmpdir, 'node_modules/prove-it.json'), {
379+
originalNodeModules: true,
380+
});
381+
assertFileContainsJSON(path.join(tmpdir, 'yarn.lock'), { originalYarnLock: true });
382+
assertFileContainsJSON(path.join(tmpdir, 'npm-shrinkwrap.json'), {
383+
originalNpmShrinkWrap: true,
384+
});
385+
assertFileContainsJSON(path.join(tmpdir, 'package-lock.json'), {
386+
originalPackageLock: true,
394387
});
395388
});
396389
});

0 commit comments

Comments
 (0)