@hkvstore/taco-cli
Version:
taco-cli is a command-line interface for rapid Apache Cordova development (forked from Microsoft taco-cli)
92 lines (90 loc) • 3.65 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for details.
/// <reference path="../../typings/mocha.d.ts" />
/// <reference path="../../typings/node.d.ts" />
/// <reference path="../../typings/should.d.ts" />
/// <reference path="../../typings/cordovaExtensions.d.ts" />
/// <reference path="../../typings/del.d.ts" />
;
/* tslint:disable:no-var-requires */
// var require needed for should module to work correctly
// Note not import: We don't want to refer to shouldModule, but we need the require to occur since it modifies the prototype of Object.
var shouldModule = require("should");
/* tslint:enable:no-var-requires */
var del = require("del");
var http = require("http");
var os = require("os");
var path = require("path");
var Q = require("q");
var rimraf = require("rimraf");
var buildAndRunTelemetry = require("./buildAndRunTelemetry");
var kitHelper = require("../cli/utils/kitHelper");
var RemoteMock = require("./utils/remoteMock");
var TacoUtility = require("taco-utils");
var Command = buildAndRunTelemetry.Command;
var utils = TacoUtility.UtilHelper;
var CommandHelper = require("./utils/commandHelper");
var create = CommandHelper.getCommand("create");
describe("taco emulate", function () {
var _this = this;
var testHttpServer;
var tacoHome = path.join(os.tmpdir(), "taco-cli", "emulate");
var originalCwd;
var vcordova = "4.0.0";
function createCleanProject() {
// Create a dummy test project with no platforms added
utils.createDirectoryIfNecessary(tacoHome);
process.chdir(tacoHome);
return Q.denodeify(del)("example").then(function () {
var args = ["example", "--cordova", vcordova];
return create.run(args);
})
.then(function () {
process.chdir(path.join(tacoHome, "example"));
});
}
before(function (mocha) {
originalCwd = process.cwd();
// Set up mocked out resources
process.env["TACO_UNIT_TEST"] = true;
// Use a dummy home location so we don't trash any real configurations
process.env["TACO_HOME"] = tacoHome;
// Force KitHelper to fetch the package fresh
kitHelper.kitPackagePromise = null;
// Create a mocked out remote server so we can specify how it reacts
testHttpServer = http.createServer();
var port = 3000;
testHttpServer.listen(port);
// Configure a dummy platform "test" to use the mocked out remote server in insecure mode
RemoteMock.saveConfig("test", { host: "localhost", port: 3000, secure: false, mountPoint: "cordova" }).done(function () {
mocha();
}, function (err) {
mocha(err);
});
});
after(function (done) {
process.chdir(originalCwd);
kitHelper.kitPackagePromise = null;
testHttpServer.close();
rimraf(tacoHome, function (err) { done(); }); // ignore errors
});
beforeEach(function (mocha) {
Q.fcall(createCleanProject).done(function () {
mocha();
}, function (err) {
mocha(err);
});
});
afterEach(function (mocha) {
process.chdir(tacoHome);
del("example", mocha);
});
var emulateRun = function (args) {
var emulate = CommandHelper.getCommand("emulate");
return emulate.run(args);
};
describe("telemetry", function () {
buildAndRunTelemetry.createBuildAndRunTelemetryTests.call(_this, emulateRun, Command.Emulate);
});
});
//# sourceMappingURL=emulate.js.map