Skip to content

Commit

Permalink
fix(open): Allow open: 'ui' and open: 'ui-external' when in snippet m…
Browse files Browse the repository at this point in the history
…ode - fixes #571
  • Loading branch information
shakyShane committed Apr 12, 2015
1 parent 6a2609f commit d033358
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 5 deletions.
5 changes: 4 additions & 1 deletion lib/internal-events.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,10 @@ module.exports = function (bs) {
*/
"service:running": function (data) {

if (data.type !== "snippet") {
var mode = bs.options.get("mode");
var open = bs.options.get("open");

if (mode === "proxy" || mode === "server" || open === "ui" || open === "ui-external") {
utils.openBrowser(data.url, bs.options);
}

Expand Down
17 changes: 13 additions & 4 deletions lib/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,30 @@ module.exports.update = function (options) {
setNamespace(item);
fixSnippetOptions(item);
setMiddleware(item);
setOpen(item);

if (item.get("files") === false) {
item.set("files", Immutable.List([]));
}

if (!item.get("server") && !item.get("proxy")) {
item.set("open", false);
}

if (item.get("uiPort")) {
item.setIn(["ui", "port"], item.get("uiPort"));
}
});
};

/**
* @param item
*/
function setOpen (item) {
var open = item.get("open");
if (item.get("mode") === "snippet") {
if (open !== "ui" && open !== "ui-external") {
item.set("open", false);
}
}
}

/**
* Set the running mode
* @param item
Expand Down
31 changes: 31 additions & 0 deletions test/specs/e2e/e2e.options.open.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,34 @@ describe("E2E OPEN options with external", function () {
require.cache[opnPath].exports.restore();
});
});

describe("E2E OPEN options with UI + snippet", function () {

var bs;
var stub;
var opnPath;
var opnStub;

before(function (done) {
browserSync.reset();
var config = {
logLevel: "silent",
open: "ui"
};
stub = sinon.spy(utils, "open");
opnPath = require.resolve("opn");
require(opnPath);
opnStub = require("sinon").stub(require.cache[opnPath], "exports");
bs = browserSync(config, done).instance;
});

after(function () {
bs.cleanup();
stub.restore();
});

it("Opens the external address when specified in options", function () {
sinon.assert.calledWith(opnStub, bs.options.getIn(["urls", "ui"]));
require.cache[opnPath].exports.restore();
});
});

0 comments on commit d033358

Please sign in to comment.