[
https://issues.apache.org/jira/browse/CB-12361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16104285#comment-16104285
]
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/578#discussion_r129996355
--- Diff: spec/cordova/platform/getPlatformDetailsFromDir.spec.js ---
@@ -0,0 +1,79 @@
+/**
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+*/
+
+var path = require('path');
+var fs = require('fs');
+var Q = require('q');
+var rewire = require('rewire');
+var cordova_util = require('../../../src/cordova/util');
+var platform_getPlatformDetails =
rewire('../../../src/cordova/platform/getPlatformDetailsFromDir');
+var events = require('cordova-common').events;
+var fail;
+
+describe('cordova/platform/getPlatformDetailsFromDir', function () {
+ var package_json_mock;
+ package_json_mock = jasmine.createSpyObj('package json mock',
['cordova', 'dependencies']);
+ package_json_mock.name = 'io.cordova.hellocordova';
+ package_json_mock.version = '1.0.0';
+
+ beforeEach(function () {
+ spyOn(Q, 'reject');
+ spyOn(fs, 'existsSync');
+ spyOn(cordova_util, 'requireNoCache');
+ spyOn(events, 'emit');
+ });
+
+ it('should throw if no config.xml or pkgJson', function (done) {
+ platform_getPlatformDetails('dir', ['ios']);
+ expect(Q.reject).toHaveBeenCalledWith(jasmine.stringMatching(/does
not seem to contain a valid package.json or a valid Cordova platform/));
+ done();
+ });
+
+ it('should throw if no platform is provided', function (done) {
+ cordova_util.requireNoCache.and.returnValue({});
+ platform_getPlatformDetails('dir');
+ expect(Q.reject).toHaveBeenCalledWith(jasmine.stringMatching(/does
not seem to contain a Cordova platform:/));
+ done();
+ });
+
+ it('should return a promise with platform and version', function
(done) {
+ fs.existsSync.and.callFake(function(filePath) {
+ if(path.basename(filePath) === 'package.json') {
+ return true;
+ } else {
+ return false;
+ }
+ });
+ cordova_util.requireNoCache.and.returnValue(package_json_mock);
+ platform_getPlatformDetails('dir', ['cordova-android'])
+ .then(function(result) {
+ expect(result.platform).toBe('io.cordova.hellocordova');
+ expect(result.version).toBe('1.0.0');
+ expect(Q.reject).not.toHaveBeenCalled();
+ }).fail(function (err) {
+ fail('unexpected failure handler invoked!');
+ console.error(err);
+ }).done(done);
+ });
+
+ it('should remove the cordova- prefix from the platform name for known
platforms', function (done) {
+ platform_getPlatformDetails.platformFromName('cordova-ios');
+ expect(events.emit).toHaveBeenCalledWith('verbose',
jasmine.stringMatching(/Removing "cordova-" prefix/));
+
expect(platform_getPlatformDetails.platformFromName('cordova-ios')).toBe('ios');
--- End diff --
yup
> 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: [email protected]
For additional commands, e-mail: [email protected]