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 <[email protected]> Authored: Thu Jun 29 17:51:33 2017 -0700 Committer: Jesse MacFadyen <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
