NetworkingError: Protocol "https:" not supported. Expected "http:"
nathanjd opened this issue · 0 comments
nathanjd commented
I am trying to mock the responses from the AWS API as suggested by AWS support.
https://forums.aws.amazon.com/thread.jspa?threadID=135220
However I am finding this to be impossible due to the following error:
NetworkingError: Protocol "https:" not supported. Expected "http:"
at new ClientRequest (_http_client.js:90:11)
at node_modules/replay/lib/pass_through.js:29:20
at node_modules/replay/lib/recorder.js:42:7
at Function.layer [as next] (node_modules/replay/lib/chain.js:50:7)
at node_modules/replay/lib/chain.js:51:85
at node_modules/replay/lib/logger.js:17:5
at Function.layer [as next] (node_modules/replay/lib/chain.js:50:7)
at node_modules/replay/lib/chain.js:51:85
at node_modules/replay/lib/pass_through.js:53:12
at ProxyRequest.layer [as proxy] (node_modules/replay/lib/chain.js:50:7)
at ProxyRequest.end (node_modules/replay/lib/proxy.js:128:10)
at features.constructor.writeBody (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/http/node.js:130:14)
at features.constructor.handleRequest (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/http/node.js:98:12)
at executeSend (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/event_listeners.js:284:29)
at Request.SEND (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/event_listeners.js:299:9)
at Request.callListeners (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:101:18)
at Request.emit (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:673:14)
at Request.transition (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:675:12)
at Request.callListeners (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at callNextListener (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:95:12)
at /Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/event_listeners.js:207:9
at finish (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/config.js:313:7)
at /Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/config.js:331:9
at SharedIniFileCredentials.get (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/credentials.js:126:7)
at getAsyncCredentials (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/config.js:325:24)
at Config.getCredentials (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/config.js:345:9)
at Request.SIGN (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/event_listeners.js:179:22)
at Request.callListeners (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:101:18)
at Request.emit (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:673:14)
at Request.transition (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/request.js:675:12)
at Request.callListeners (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at Timeout.callNextListener [as _onTimeout] (/Users/q4i2/Projects/web-perf/node_modules/aws-sdk/lib/sequential_executor.js:95:12)
This error was marked fixed on March 25th, 2015. Perhaps it has resurfaced? Or maybe I'm doing something wrong?
#46
Here is my file under test:
"use strict";
const aws = require("aws-sdk");
// Environment Configuration
const tableName = process.env.TRACE_TABLE_NAME;
const dynamo = new aws.DynamoDB.DocumentClient();
/**
* Retrieves a trace by id, its primary key.
*
* @param {string} id - The requested trace's id.
* @returns {Promise.<Object>} - A promise that is fulfilled with the requested
* trace's object literal. Rejects to an Error if one is encountered that
* prevents item retrieval.
*/
module.exports = exports = function getTrace(id) {
const params = {
TableName: tableName,
Key: {
id: id
}
};
console.log(`[Retrieve] Attempting retrieval of trace from table: "${tableName}" with id: "${id}"`);
return dynamo.get(params).promise()
.then(data => data.Item);
};
And here is the test itself:
"use strict";
const aws = require("aws-sdk");
const chai = require("chai");
const chaiAsPromised = require("chai-as-promised");
const path = require("path");
const proxy = require("proxy-agent");
const Replay = require("replay");
Replay.mode = "record";
Replay.fixtures = path.resolve(__dirname, "..", "mocks", "aws");
// Mock Environment Configuration
process.env.TRACE_TABLE_NAME = "device-trace-service-develop-TracesTable-ODDXB1CT7ERX";
process.env.AWS_DEFAULT_REGION = "us-west-2";
aws.config.update({
region: "us-west-2",
httpOptions: {
agent: proxy("http://webproxy.nordstrom.net:8181"),
// Timeout after 5 minutes
timeout: 300000
}
});
const getTrace = require("./get-trace");
const expect = chai.expect;
chai.use(chaiAsPromised);
describe("getTrace(id)", () => {
it("should do things", () => {
return expect(getTrace("2c513185-92fc-4986-abaf-a6cd0b331fd6"))
.to.eventually.deep.equal({
"completedAt": "2017-05-08T19:29:54.346Z",
"device": "google-pixel",
"id": "2c513185-92fc-4986-abaf-a6cd0b331fd6",
"isComplete": true,
"isProcessing": false,
"pageName": "test-page-name",
"requestedAt": "2017-05-08T19:29:09.772Z",
"s3Bucket": "device-trace-service-develop-devicetracebucket-19e08o9pmuvp7",
"s3Key": "1494271781592-google-pixel.json",
"s3Url": "https://device-trace-service-develop-devicetracebucket-19e08o9pmuvp7.s3-us-west-2.amazonaws.com/1494271781592-google-pixel.json",
"startedAt": "2017-05-08T19:29:13.839Z",
"url": "https://s3-us-west-2.amazonaws.com/device-profiling-demo/home-page-slow-profile.html"
});
});
});
Any help would be appreciated. Thanks!