diff --git a/package.json b/package.json index fdae5281d..6d8d4d15f 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "dependencies": { "configstore": "^4.0.0", "cordova-common": "^3.1.0", + "cordova-create": "^2.0.0", "cordova-lib": "^9.0.0", "editor": "^1.0.0", "insight": "^0.10.1", diff --git a/spec/cli.spec.js b/spec/cli.spec.js index 45072852d..700240b04 100644 --- a/spec/cli.spec.js +++ b/spec/cli.spec.js @@ -19,12 +19,13 @@ const path = require('path'); const rewire = require('rewire'); const { events, cordova } = require('cordova-lib'); const telemetry = require('../src/telemetry'); -const cli = rewire('../src/cli'); describe('cordova cli', () => { - let logger; + let cli, logger; beforeEach(() => { + cli = rewire('../src/cli'); + // Event registration is currently process-global. Since all jasmine // tests in a directory run in a single process (and in parallel), // logging events registered as a result of the "--verbose" flag in @@ -116,12 +117,16 @@ describe('cordova cli', () => { describe('create', () => { beforeEach(() => { - spyOn(cordova, 'create').and.returnValue(Promise.resolve()); + cli.__set__({ + cordovaCreate: jasmine.createSpy('cordovaCreate').and.resolveTo() + }); }); it('Test#011 : calls cordova create', () => { return cli(['node', 'cordova', 'create', 'a', 'b', 'c', '--link-to', 'c:\\personalWWW']).then(() => { - expect(cordova.create).toHaveBeenCalledWith('a', 'b', 'c', jasmine.any(Object), jasmine.any(Object)); + expect(cli.__get__('cordovaCreate')).toHaveBeenCalledWith( + 'a', 'b', 'c', jasmine.any(Object), jasmine.any(Object) + ); }); }); }); diff --git a/src/cli.js b/src/cli.js index f5bab0e0e..d5caea472 100644 --- a/src/cli.js +++ b/src/cli.js @@ -26,6 +26,7 @@ var CordovaError = cordova_lib.CordovaError; var cordova = cordova_lib.cordova; var events = cordova_lib.events; var logger = require('cordova-common').CordovaLogger.get(); +var cordovaCreate = require('cordova-create'); var Configstore = require('configstore'); var conf = new Configstore(pkg.name + '-config'); var editor = require('editor'); @@ -493,5 +494,5 @@ function create ([_, dir, id, name], args) { }; } - return cordova.create(dir, id, name, cfg, events || undefined); + return cordovaCreate(dir, id, name, cfg, events || undefined); }