mirror of
https://github.com/apache/cordova-android.git
synced 2026-04-04 00:02:03 +08:00
refactor: save ProjectBuilder instance in Api instance (#1016)
This reduces dependence on the `builders` module and reduces repitition. This also facilitates another WIP refactoring I am working on.
This commit is contained in:
committed by
GitHub
parent
d86cb99dd5
commit
ba5781c3bf
@@ -23,7 +23,6 @@ var common = require('cordova-common');
|
||||
var rewire = require('rewire');
|
||||
|
||||
var AndroidProject = require('../../bin/templates/cordova/lib/AndroidProject');
|
||||
var builders = require('../../bin/templates/cordova/lib/builders/builders');
|
||||
|
||||
var PluginInfo = common.PluginInfo;
|
||||
|
||||
@@ -31,7 +30,7 @@ var FIXTURES = path.join(__dirname, '../e2e/fixtures');
|
||||
var FAKE_PROJECT_DIR = path.join(os.tmpdir(), 'plugin-test-project');
|
||||
|
||||
describe('addPlugin method', function () {
|
||||
var api, Api, gradleBuilder;
|
||||
var api, Api;
|
||||
|
||||
beforeEach(function () {
|
||||
Api = rewire('../../bin/templates/cordova/Api');
|
||||
@@ -49,22 +48,20 @@ describe('addPlugin method', function () {
|
||||
Api.__set__('selfEvents.emit', jasmine.createSpy());
|
||||
|
||||
api = new Api('android', FAKE_PROJECT_DIR);
|
||||
|
||||
gradleBuilder = jasmine.createSpyObj('gradleBuilder', ['prepBuildFiles']);
|
||||
spyOn(builders, 'getBuilder').and.returnValue(gradleBuilder);
|
||||
spyOn(api._builder, 'prepBuildFiles');
|
||||
});
|
||||
|
||||
const getPluginFixture = name => new PluginInfo(path.join(FIXTURES, name));
|
||||
|
||||
it('Test#001 : should call gradleBuilder.prepBuildFiles for every plugin with frameworks', () => {
|
||||
return api.addPlugin(getPluginFixture('cordova-plugin-fake')).then(() => {
|
||||
expect(gradleBuilder.prepBuildFiles).toHaveBeenCalled();
|
||||
expect(api._builder.prepBuildFiles).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
it('Test#002 : shouldn\'t trigger gradleBuilder.prepBuildFiles for plugins without android frameworks', () => {
|
||||
return api.addPlugin(getPluginFixture('cordova-plugin-fake-ios-frameworks')).then(() => {
|
||||
expect(gradleBuilder.prepBuildFiles).not.toHaveBeenCalled();
|
||||
expect(api._builder.prepBuildFiles).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
const rewire = require('rewire');
|
||||
const builders = require('../../bin/templates/cordova/lib/builders/builders');
|
||||
|
||||
describe('run', () => {
|
||||
let run;
|
||||
@@ -59,6 +60,11 @@ describe('run', () => {
|
||||
events: eventsSpyObj,
|
||||
getInstallTarget: getInstallTargetSpy
|
||||
});
|
||||
|
||||
// run needs `this` to behave like an Api instance
|
||||
run.run = run.run.bind({
|
||||
_builder: builders.getBuilder('FakeRootPath')
|
||||
});
|
||||
});
|
||||
|
||||
it('should run on default device when no target arguments are specified', () => {
|
||||
|
||||
Reference in New Issue
Block a user