refactor(create): depend directly on cordova-create (#489)
This will allow us to remove the `cordova.create` stub from
`cordova-lib`.
Moreover it flattens our dependency graph by one level.
diff --git a/package.json b/package.json
index fdae528..6d8d4d1 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 4507285..700240b 100644
--- a/spec/cli.spec.js
+++ b/spec/cli.spec.js
@@ -19,12 +19,13 @@
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('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 f5bab0e..d5caea4 100644
--- a/src/cli.js
+++ b/src/cli.js
@@ -26,6 +26,7 @@
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 @@
};
}
- return cordova.create(dir, id, name, cfg, events || undefined);
+ return cordovaCreate(dir, id, name, cfg, events || undefined);
}