@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
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/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