1 | var assert = require ('assert'),
|
2 | path = require('path'),
|
3 | proxyquire = require('proxyquire');
|
4 |
|
5 | function mockChildProcess(){
|
6 | return {
|
7 | on: function(ev, cb){
|
8 | if (ev === 'exit'){
|
9 | cb(0);
|
10 | }
|
11 | }
|
12 | };
|
13 | }
|
14 |
|
15 | var packagesLocalFolder = path.join(process.cwd(), "/test/fixtures/package_dependency_test");
|
16 | var packagesInvalidPackageJSON = path.join(process.cwd(), "/test/fixtures/package_invalid_package_json");
|
17 | var packagesSatisfyingAtlasboardVersion = path.join(process.cwd(), "/test/fixtures/package_dependency_atlasboard_version_satisfied");
|
18 | var packagesUnSatisfyingAtlasboardVersion = path.join(process.cwd(), "/test/fixtures/package_dependency_atlasboard_version_unsatisfied");
|
19 |
|
20 | var 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 |
|
29 | describe ('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 |
|