UNPKG

@hkvstore/taco-cli

Version:

taco-cli is a command-line interface for rapid Apache Cordova development (forked from Microsoft taco-cli)

75 lines (73 loc) 3.02 kB
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for details. "use strict"; /// <reference path="../../../typings/node.d.ts" /> var fs = require("fs"); var https = require("https"); var path = require("path"); var ServerMock = (function () { function ServerMock() { } /* * Create a https server using the certificates in test/resources/certs/ */ ServerMock.createSecureTestServer = function () { var testCertsFolder = path.resolve(__dirname, "..", "resources", "certs"); var sslSettings = { key: fs.readFileSync(path.join(testCertsFolder, "server-key.pem")), cert: fs.readFileSync(path.join(testCertsFolder, "server-cert.pem")), ca: fs.readFileSync(path.join(testCertsFolder, "ca-cert.pem")), requestCert: true, rejectUnauthorized: false }; return https.createServer(sslSettings); }; /* * Create a simple state machine that expects a particular sequence of HTTP requests, and errors out if that expectation is not matched */ ServerMock.generateServerFunction = function (onErr, sequence) { var sequenceIndex = 0; return function (request, response) { if (sequenceIndex < sequence.length) { var data = sequence[sequenceIndex]; ++sequenceIndex; if (request.url !== data.expectedUrl) { onErr(new Error("Expected request to " + data.expectedUrl + " got " + request.url)); } else { var sendResponse = function () { setTimeout(function () { response.writeHead(data.statusCode, data.head); if (data.fileToSend) { var reader = fs.createReadStream(data.fileToSend); reader.pipe(response); reader.on("end", function () { response.end(); }); } else { response.write(data.response); response.end(); } }, data.responseDelay || 0); }; if (data.waitForPayload) { request.on("data", function (chunk) { // ignore it }); request.on("end", sendResponse); } else { sendResponse(); } } } else { onErr(new Error("Unexpected query " + request.url)); } }; }; return ServerMock; }()); module.exports = ServerMock; //# sourceMappingURL=serverMock.js.map