added browser tests, new dep on rewire because of the way open() works

Project: http://git-wip-us.apache.org/repos/asf/cordova-serve/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-serve/commit/f5ef63d3
Tree: http://git-wip-us.apache.org/repos/asf/cordova-serve/tree/f5ef63d3
Diff: http://git-wip-us.apache.org/repos/asf/cordova-serve/diff/f5ef63d3

Branch: refs/heads/master
Commit: f5ef63d332f78cae4b8fde5855c279a6c479e2e1
Parents: 6d8eadc
Author: Jesse MacFadyen <purplecabb...@gmail.com>
Authored: Thu Jun 29 17:51:33 2017 -0700
Committer: Jesse MacFadyen <purplecabb...@gmail.com>
Committed: Thu Jun 29 18:03:25 2017 -0700

----------------------------------------------------------------------
 package.json         |  3 +-
 spec/browser.spec.js | 71 +++++++++++++++++++++++++++++++++++++++++++++++
 src/browser.js       |  1 +
 3 files changed, 74 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-serve/blob/f5ef63d3/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index ea460a7..4d20d9d 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,8 @@
   },
   "devDependencies": {
     "jasmine": "^2.5.2",
-    "jshint": "^2.8.0"
+    "jshint": "^2.8.0",
+    "rewire": "^2.5.2"
   },
   "engines": {
     "node": ">=4.0.0",

http://git-wip-us.apache.org/repos/asf/cordova-serve/blob/f5ef63d3/spec/browser.spec.js
----------------------------------------------------------------------
diff --git a/spec/browser.spec.js b/spec/browser.spec.js
new file mode 100644
index 0000000..aaa0fce
--- /dev/null
+++ b/spec/browser.spec.js
@@ -0,0 +1,71 @@
+/**
+    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 child_process = require('child_process');
+var rewire = require('rewire');
+
+var browser = rewire("../src/browser");
+
+function expectPromise(obj){
+    // 3 slightly different ways of verifying a promise
+    expect(typeof obj.then).toBe('function');
+    expect(obj instanceof Promise).toBe(true);
+    expect(obj).toBe(Promise.resolve(obj));
+}
+
+describe('browser', function() {
+
+    beforeEach(function(){
+        
spyOn(child_process,'exec').and.callFake(function(cmd,options,callback){
+            callback && callback(null,"success",null);
+        });
+    });
+
+    it('exists and has expected properties', function() {
+        expect(browser).toBeDefined();
+        expect(typeof browser).toBe('function');
+    });
+
+    it('should return a promise', function(done) {
+        var result = browser();
+        expect(result).toBeDefined();
+        expectPromise(result);
+        result.then(function(res) {
+            done();
+        });
+    });
+
+    it('should call open() when target is `default`', function(done) {
+
+        var mockOpen = jasmine.createSpy('mockOpen');
+        var origOpen = browser.__get__('open'); // so we can be nice and 
restore it later
+
+        browser.__set__('open',mockOpen);
+
+        var mockUrl = 'this is the freakin url';
+
+        var result = browser({target:'default',url:mockUrl});
+        expect(result).toBeDefined();
+        expectPromise(result);
+        result.then(function(res) {
+            done();
+        });
+
+        expect(mockOpen).toHaveBeenCalledWith(mockUrl);
+        browser.__set__('open', origOpen);
+
+    });
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-serve/blob/f5ef63d3/src/browser.js
----------------------------------------------------------------------
diff --git a/src/browser.js b/src/browser.js
index cf4c92b..aca1127 100644
--- a/src/browser.js
+++ b/src/browser.js
@@ -38,6 +38,7 @@ var NOT_SUPPORTED = 'The browser target is not supported: 
%target%';
  */
 module.exports = function (opts) {
 
+    opts = opts || {};
     var target = opts.target || 'chrome';
     var url = opts.url || '';
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org
For additional commands, e-mail: commits-h...@cordova.apache.org

Reply via email to