[ https://issues.apache.org/jira/browse/CB-12361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16149961#comment-16149961 ]
ASF GitHub Bot commented on CB-12361: ------------------------------------- Github user stevengill commented on a diff in the pull request: https://github.com/apache/cordova-lib/pull/584#discussion_r136489451 --- Diff: spec/cordova/plugin/save.spec.js --- @@ -54,15 +61,145 @@ describe('cordova/plugin/save', function () { }); }); describe('happy path', function () { - it('should remove all plugins from config.xml and re-add new ones based on those retrieved from fetch.json'); - it('should only add top-level plugins to config.xml'); - it('should write individual plugin specs to config.xml'); - it('should write individual plugin variables to config.xml'); + it('should remove all plugins from config.xml and re-add new ones based on those retrieved from fetch.json', function (done) { + save(projectRoot).then(function () { + expect(cfg_parser_mock.prototype.removePlugin).toHaveBeenCalledWith('VRPlugin'); + expect(cfg_parser_mock.prototype.removePlugin).toHaveBeenCalledWith('MastodonSocialPlugin'); + }).fail(function (e) { + expect(e).toBeUndefined(); + fail('did not expect fail handler to be invoked'); + }).done(done); + }); + + it('should only add top-level plugins to config.xml', function (done) { + var fake_fetch_json = + {'VRPlugin': {'source': { + 'type': 'registry', + 'id': 'id' + }, + 'is_top_level': true + }, + 'MastodonSocialPlugin': { 'source': { + 'type': 'registry', + 'id': 'id' + }, + 'is_top_level': false }}; + + fs.readFileSync.and.returnValue(JSON.stringify(fake_fetch_json)); + save(projectRoot).then(function () { + expect(cfg_parser_mock.prototype.addPlugin).toHaveBeenCalledWith(Object({ name: 'VRPlugin' }), [ ]); + expect(cfg_parser_mock.prototype.write).toHaveBeenCalled(); + }).fail(function (e) { + expect(e).toBeUndefined(); + fail('did not expect fail handler to be invoked'); + }).done(done); + }); + + it('should write individual plugin specs to config.xml', function (done) { + var fake_fetch_json = + {'VRPlugin': {'source': { + 'type': 'registry', + 'id': 'id' + }, + 'is_top_level': true }}; + fs.readFileSync.and.returnValue(JSON.stringify(fake_fetch_json)); + spyOn(save, 'getSpec').and.returnValue('1.0.0'); + save(projectRoot).then(function () { + expect(cfg_parser_mock.prototype.addPlugin).toHaveBeenCalledWith(Object({ name: 'VRPlugin', spec: '1.0.0' }), jasmine.any(Object)); + expect(cfg_parser_mock.prototype.write).toHaveBeenCalled(); + }).fail(function (e) { + expect(e).toBeUndefined(); + fail('did not expect fail handler to be invoked'); + }).done(done); + }); + + it('should write individual plugin variables to config.xml', function (done) { + var fake_fetch_json = + {'VRPlugin': {'source': { + 'type': 'registry', + 'id': 'id' + }, + 'is_top_level': true, + 'variables': { + 'var 1': ' ' + }}}; + fs.readFileSync.and.returnValue(JSON.stringify(fake_fetch_json)); + save(projectRoot).then(function () { + expect(cfg_parser_mock.prototype.addPlugin).toHaveBeenCalledWith(jasmine.any(Object), [ Object({ name: 'var 1', value: ' ' }) ]); + expect(cfg_parser_mock.prototype.write).toHaveBeenCalled(); + }).fail(function (e) { + expect(e).toBeUndefined(); + fail('did not expect fail handler to be invoked'); + }).done(done); + }); }); describe('getSpec helper method', function () { - it('should return a plugin source\'s url or path property immediately'); - it('should return a version if a version was provided to plugin id'); - it('should return a version that includes scope if scope was part of plugin id'); - it('should fall back to using PluginInfoProvider to retrieve a version as last resort'); + it('should return a plugin source\'s url or path property immediately', function (done) { + var fake_fetch_json = + {'VRPlugin': {'source': { + 'url': 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git' + }, + 'is_top_level': true, + 'variables': { + 'var 1': ' ' + }}}; + fs.readFileSync.and.returnValue(JSON.stringify(fake_fetch_json)); + spyOn(save, 'getSpec'); + save(projectRoot).then(function (result) { + expect(save.getSpec).toHaveBeenCalledWith(Object({ url: 'https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git' }), '/some/path', 'VRPlugin'); + }).fail(function (e) { + expect(e).toBeUndefined(); + fail('did not expect fail handler to be invoked'); + }).done(done); + }); + + it('should return a version if a version was provided to plugin id', function (done) { + var fake_fetch_json = + {'cordova-plugin-camera': {'source': { + 'type': 'registry', + 'id': 'cordova-plugin-camera@^1.1.0' + }, + 'is_top_level': true }}; + fs.readFileSync.and.returnValue(JSON.stringify(fake_fetch_json)); + save(projectRoot).then(function () { + expect(save.versionString).toHaveBeenCalledWith('^1.1.0'); --- End diff -- same as above, this test needs to check that getSpec is returning the version. Need something like: ``` expect(save.getSpec).and.returnValue('^1.1.0') ``` > Speed up cordova-lib tests > -------------------------- > > Key: CB-12361 > URL: https://issues.apache.org/jira/browse/CB-12361 > Project: Apache Cordova > Issue Type: Improvement > Components: cordova-lib > Reporter: Steve Gill > Assignee: Steve Gill > Labels: cordova-next > > * Split out e2e tests into own folder > * stub i/o and network requests > * use local fixtures when possible & makes sense -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org