[ 
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

Reply via email to