From a8d6bae80f746aee835377c5e5c52272a6031d62 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 25 Sep 2019 19:36:43 -0700 Subject: [PATCH 1/3] Increasing rate limit to 20 per minute --- src/middleware/route-ratelimit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middleware/route-ratelimit.js b/src/middleware/route-ratelimit.js index 3bb7cc8..70eaae6 100644 --- a/src/middleware/route-ratelimit.js +++ b/src/middleware/route-ratelimit.js @@ -15,7 +15,7 @@ const RateLimit = require("express-rate-limit") // Set max requests per minute const maxRequests = process.env.RATE_LIMIT_MAX_REQUESTS ? parseInt(process.env.RATE_LIMIT_MAX_REQUESTS) - : 6 + : 20 // Pro-tier rate limits are 10x the freemium limits. const PRO_RPM = 10 * maxRequests From 1d70b3adcdfb664b3b4eb4879a5c642350c930ba Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 29 Sep 2019 06:26:03 -0700 Subject: [PATCH 2/3] fix(rate limits): updated rate limit and unit tests --- test/v3/rate-limits.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/v3/rate-limits.js b/test/v3/rate-limits.js index 66fd57e..6f84875 100644 --- a/test/v3/rate-limits.js +++ b/test/v3/rate-limits.js @@ -59,12 +59,12 @@ describe("#route-ratelimits", () => { assert.equal(next.called, true) }) - it("should trigger rate-limit handler if rate limits exceeds 15 request per minute", async () => { + it("should trigger rate-limit handler if rate limits exceeds 25 request per minute", async () => { req.baseUrl = "/v3" req.path = "/control/getNetworkInfo" req.method = "GET" - for (let i = 0; i < 15; i++) { + for (let i = 0; i < 25; i++) { next.reset() // reset the stubbed next() function. await routeRateLimit(req, res, next) @@ -79,7 +79,7 @@ describe("#route-ratelimits", () => { ) }) - it("should NOT trigger rate-limit handler for pro-tier at 20 RPM", async () => { + it("should NOT trigger rate-limit handler for pro-tier at 25 RPM", async () => { // Clear the require cache before running this test. delete require.cache[ require.resolve("../../src/middleware/route-ratelimit") @@ -98,7 +98,7 @@ describe("#route-ratelimits", () => { // Prepare the authorization header //req.headers.authorization = generateAuthHeader("BITBOX") - for (let i = 0; i < 20; i++) { + for (let i = 0; i < 25; i++) { next.reset() // reset the stubbed next() function. await routeRateLimit(req, res, next) @@ -134,7 +134,7 @@ describe("#route-ratelimits", () => { // Prepare the authorization header //req.headers.authorization = generateAuthHeader("BITBOX") - for (let i = 0; i < 100; i++) { + for (let i = 0; i < 300; i++) { next.reset() // reset the stubbed next() function. await routeRateLimit(req, res, next) From 161b9419b21298c54f5bce55e37d15496f2f2470 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 29 Sep 2019 06:45:09 -0700 Subject: [PATCH 3/3] fix(integration tests): fixed integration tests --- .gitignore | 1 + test/v3/{ => integration}/bitcore.js | 0 test/v3/slp.js | 6 +++--- 3 files changed, 4 insertions(+), 3 deletions(-) rename test/v3/{ => integration}/bitcore.js (100%) diff --git a/.gitignore b/.gitignore index 74cc34f..ef6da67 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ test-local-server start-decatur-main start-decatur-test start-bitcoincom.sh +test-remote-server.sh coverage start-my-infra diff --git a/test/v3/bitcore.js b/test/v3/integration/bitcore.js similarity index 100% rename from test/v3/bitcore.js rename to test/v3/integration/bitcore.js diff --git a/test/v3/slp.js b/test/v3/slp.js index a344038..5b4523c 100644 --- a/test/v3/slp.js +++ b/test/v3/slp.js @@ -496,7 +496,7 @@ describe("#SLP", () => { .reply(200, mockData.mockSingleAddress) } - req.params.address = "slptest:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqv7sq3kk7" + req.params.address = "slptest:qz80hhc6eucgauzmcfjzglccspdqfpl0fqx7x3lshs" const result = await balancesForAddress(req, res) // console.log(`result: ${util.inspect(result)}`) @@ -578,11 +578,11 @@ describe("#SLP", () => { if (process.env.TEST !== "unit") { it("should get token balance for an address", async () => { req.body.addresses = [ - "slptest:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqv7sq3kk7" + "slptest:qz80hhc6eucgauzmcfjzglccspdqfpl0fqx7x3lshs" ] const result = await balancesForAddressBulk(req, res) - console.log(`result: ${JSON.stringify(result, null, 2)}`) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isArray(result[0])