UNPKG

2.07 kBJavaScriptView Raw
1var assert = require ('assert'),
2 path = require('path'),
3 proxyquire = require('proxyquire');
4
5function mockChildProcess(){
6 return {
7 on: function(ev, cb){
8 if (ev === 'exit'){
9 cb(0);
10 }
11 }
12 };
13}
14
15var packagesLocalFolder = path.join(process.cwd(), "/test/fixtures/package_dependency_test");
16var packagesInvalidPackageJSON = path.join(process.cwd(), "/test/fixtures/package_invalid_package_json");
17var packagesSatisfyingAtlasboardVersion = path.join(process.cwd(), "/test/fixtures/package_dependency_atlasboard_version_satisfied");
18var packagesUnSatisfyingAtlasboardVersion = path.join(process.cwd(), "/test/fixtures/package_dependency_atlasboard_version_unsatisfied");
19
20var packageDependencyManagerMocked = proxyquire('../lib/package-dependency-manager', {
21 'child_process': {
22 spawn: function(cmd, args){
23 assert.equal('npm', cmd);
24 return mockChildProcess();
25 }
26 }
27});
28
29describe ('package dependency manager', function(){
30
31 it('should install dependencies in all packages', function(done){
32 packageDependencyManagerMocked.installDependencies([packagesLocalFolder], function(err){
33 assert.ifError(err);
34 done();
35 });
36 });
37
38 it('should return error if invalid package.json', function(done){
39 packageDependencyManagerMocked.installDependencies([packagesInvalidPackageJSON], function(err){
40 assert.ok(err);
41 assert.equal('EJSONPARSE', err.code);
42 done();
43 });
44 });
45
46 it('should not return error if atlasboard version dependency is satisfied', function(done){
47 packageDependencyManagerMocked.installDependencies([packagesSatisfyingAtlasboardVersion], function(err){
48 assert.ifError(err);
49 done();
50 });
51 });
52
53 it('should return error if atlasboard version dependency is unsatisfied', function(done){
54 packageDependencyManagerMocked.installDependencies([packagesUnSatisfyingAtlasboardVersion], function(err){
55 assert.ok(err.indexOf('does not satisfy') > -1);
56 done();
57 });
58 });
59
60});
61