UNPKG

ccxt-rest

Version:

Open Source Unified REST API of 100+ Crypto Exchange Sites

2 lines 1.41 MB
<!doctype html> <html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>CCXT-REST Exchange Summary Dashboard</title><link rel="stylesheet" href="assets/app.css"/></head><body data-raw="{&quot;stats&quot;:{&quot;suites&quot;:248,&quot;tests&quot;:744,&quot;passes&quot;:744,&quot;pending&quot;:0,&quot;failures&quot;:0,&quot;start&quot;:&quot;2020-06-21T18:10:18.827Z&quot;,&quot;end&quot;:&quot;2020-06-21T18:12:31.086Z&quot;,&quot;duration&quot;:132259,&quot;testsRegistered&quot;:744,&quot;passPercent&quot;:100,&quot;pendingPercent&quot;:0,&quot;other&quot;:0,&quot;hasOther&quot;:false,&quot;skipped&quot;:0,&quot;hasSkipped&quot;:false,&quot;passPercentClass&quot;:&quot;success&quot;,&quot;pendingPercentClass&quot;:&quot;danger&quot;},&quot;suites&quot;:{&quot;uuid&quot;:&quot;8995d97c-05d7-40a3-a779-1712473a4c68&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;857fa333-ae3b-4191-9edc-9d3804c1a1a8&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;b57c5a73-11f3-42da-95f6-471545185839&quot;,&quot;title&quot;:&quot;&gt; [bibox] without API keys&quot;,&quot;fullFile&quot;:&quot;/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bibox-test.js&quot;,&quot;file&quot;:&quot;/test/generated/bibox-test.js&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;&gt; [bibox] connect&quot;,&quot;fullTitle&quot;:&quot; &gt; [bibox] without API keys &gt; [bibox] connect&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:334,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;61fdacc2-2213-4752-97f5-1e2f2bb6166e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [bibox] markets&quot;,&quot;fullTitle&quot;:&quot; &gt; [bibox] without API keys &gt; [bibox] markets&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:792,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;ab7e4108-7202-4533-8d8e-f73aaaff6a28&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [bibox] ticker&quot;,&quot;fullTitle&quot;:&quot; &gt; [bibox] without API keys &gt; [bibox] ticker&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:37,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;fast&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;cc42085c-49f5-4898-ab8c-2e2dacead0ff&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [bibox] tickers&quot;,&quot;fullTitle&quot;:&quot; &gt; [bibox] without API keys &gt; [bibox] tickers&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:1626,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;4cf12567-2701-49eb-8abf-0f5284a2b8a4&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [bibox] orderBook&quot;,&quot;fullTitle&quot;:&quot; &gt; [bibox] without API keys &gt; [bibox] orderBook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:26,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;fast&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;54f5346a-df9a-41ad-9bf4-2b4bc19d7f60&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [bibox] trades&quot;,&quot;fullTitle&quot;:&quot; &gt; [bibox] without API keys &gt; [bibox] trades&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:17,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;fast&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;eeee0fe6-9d79-4372-a761-c28194c765fb&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[&quot;61fdacc2-2213-4752-97f5-1e2f2bb6166e&quot;,&quot;ab7e4108-7202-4533-8d8e-f73aaaff6a28&quot;,&quot;cc42085c-49f5-4898-ab8c-2e2dacead0ff&quot;,&quot;4cf12567-2701-49eb-8abf-0f5284a2b8a4&quot;,&quot;54f5346a-df9a-41ad-9bf4-2b4bc19d7f60&quot;,&quot;eeee0fe6-9d79-4372-a761-c28194c765fb&quot;],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:2832,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000}],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000},{&quot;uuid&quot;:&quot;5c074f2a-7dca-417a-928b-39f240e025d1&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;a1f0b883-ce88-4169-9827-486050945288&quot;,&quot;title&quot;:&quot;&gt; [binanceje] without API keys&quot;,&quot;fullFile&quot;:&quot;/home/travis/build/ccxt-rest/ccxt-rest/test/generated/binanceje-test.js&quot;,&quot;file&quot;:&quot;/test/generated/binanceje-test.js&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;&gt; [binanceje] connect&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceje] without API keys &gt; [binanceje] connect&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:187,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;a2fc4fec-d352-49aa-9ac9-a07163b400ed&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binanceje] markets&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceje] without API keys &gt; [binanceje] markets&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:619,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;1a78b2fb-e369-44c1-b803-79fe7c81a876&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binanceje] ticker&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceje] without API keys &gt; [binanceje] ticker&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:725,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;0be32d12-f80f-438b-88d5-27fd93a06879&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binanceje] tickers&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceje] without API keys &gt; [binanceje] tickers&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:726,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;39055945-6e0e-4b35-a72d-12073e231fbb&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binanceje] orderBook&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceje] without API keys &gt; [binanceje] orderBook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:484,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;0515b508-f16c-4a34-a90a-ff64040b5662&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binanceje] trades&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceje] without API keys &gt; [binanceje] trades&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:715,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;29335a2d-fab9-4060-9a59-efb31debda7e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[&quot;a2fc4fec-d352-49aa-9ac9-a07163b400ed&quot;,&quot;1a78b2fb-e369-44c1-b803-79fe7c81a876&quot;,&quot;0be32d12-f80f-438b-88d5-27fd93a06879&quot;,&quot;39055945-6e0e-4b35-a72d-12073e231fbb&quot;,&quot;0515b508-f16c-4a34-a90a-ff64040b5662&quot;,&quot;29335a2d-fab9-4060-9a59-efb31debda7e&quot;],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:3456,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000}],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000},{&quot;uuid&quot;:&quot;9181e562-a2c2-4c88-9406-943dffa88af1&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;9737f136-518d-4247-9498-69d39fca4d63&quot;,&quot;title&quot;:&quot;&gt; [binance] without API keys&quot;,&quot;fullFile&quot;:&quot;/home/travis/build/ccxt-rest/ccxt-rest/test/generated/binance-test.js&quot;,&quot;file&quot;:&quot;/test/generated/binance-test.js&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;&gt; [binance] connect&quot;,&quot;fullTitle&quot;:&quot; &gt; [binance] without API keys &gt; [binance] connect&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:233,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;ba59917e-2353-4874-89d2-c1e5b92501a5&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binance] markets&quot;,&quot;fullTitle&quot;:&quot; &gt; [binance] without API keys &gt; [binance] markets&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:675,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;979c88e3-361e-4b7e-bac9-cd7119ae0d57&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binance] ticker&quot;,&quot;fullTitle&quot;:&quot; &gt; [binance] without API keys &gt; [binance] ticker&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:856,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;4ddcd9f3-6910-4117-be6a-2f393ad11457&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binance] tickers&quot;,&quot;fullTitle&quot;:&quot; &gt; [binance] without API keys &gt; [binance] tickers&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:843,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;519237e7-214b-4446-88b1-39e3ae4c470f&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binance] orderBook&quot;,&quot;fullTitle&quot;:&quot; &gt; [binance] without API keys &gt; [binance] orderBook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:305,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;d6b5c808-0c10-4fc6-b527-26ce6f0531c6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binance] trades&quot;,&quot;fullTitle&quot;:&quot; &gt; [binance] without API keys &gt; [binance] trades&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:776,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;e6d27aab-7ccb-42df-bcff-7c091e3124c2&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[&quot;ba59917e-2353-4874-89d2-c1e5b92501a5&quot;,&quot;979c88e3-361e-4b7e-bac9-cd7119ae0d57&quot;,&quot;4ddcd9f3-6910-4117-be6a-2f393ad11457&quot;,&quot;519237e7-214b-4446-88b1-39e3ae4c470f&quot;,&quot;d6b5c808-0c10-4fc6-b527-26ce6f0531c6&quot;,&quot;e6d27aab-7ccb-42df-bcff-7c091e3124c2&quot;],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:3688,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000}],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000},{&quot;uuid&quot;:&quot;d6b71d47-f4f8-4d17-b72b-f34c4145d96b&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;b47456d7-0584-46d6-9a47-857be0720013&quot;,&quot;title&quot;:&quot;&gt; [acx] without API keys&quot;,&quot;fullFile&quot;:&quot;/home/travis/build/ccxt-rest/ccxt-rest/test/generated/acx-test.js&quot;,&quot;file&quot;:&quot;/test/generated/acx-test.js&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;&gt; [acx] connect&quot;,&quot;fullTitle&quot;:&quot; &gt; [acx] without API keys &gt; [acx] connect&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:520,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;b0e7bd3e-4ac3-4024-8fb5-21092b405e63&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [acx] markets&quot;,&quot;fullTitle&quot;:&quot; &gt; [acx] without API keys &gt; [acx] markets&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:1016,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;e241288c-e660-4bf5-beac-414c3d2d726a&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [acx] ticker&quot;,&quot;fullTitle&quot;:&quot; &gt; [acx] without API keys &gt; [acx] ticker&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:1218,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;40aad70a-5377-477f-808e-daf16acf6712&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [acx] tickers&quot;,&quot;fullTitle&quot;:&quot; &gt; [acx] without API keys &gt; [acx] tickers&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:1053,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;73fdcf86-b01b-45ad-88ac-8c9b3e3f83e6&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [acx] orderBook&quot;,&quot;fullTitle&quot;:&quot; &gt; [acx] without API keys &gt; [acx] orderBook&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:947,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;b1f4ef5a-fff3-40fc-a079-8088baf2f82e&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [acx] trades&quot;,&quot;fullTitle&quot;:&quot; &gt; [acx] without API keys &gt; [acx] trades&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:1030,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;a93d1c34-39e8-47e5-aec8-99a1c152d56b&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false}],&quot;suites&quot;:[],&quot;passes&quot;:[&quot;b0e7bd3e-4ac3-4024-8fb5-21092b405e63&quot;,&quot;e241288c-e660-4bf5-beac-414c3d2d726a&quot;,&quot;40aad70a-5377-477f-808e-daf16acf6712&quot;,&quot;73fdcf86-b01b-45ad-88ac-8c9b3e3f83e6&quot;,&quot;b1f4ef5a-fff3-40fc-a079-8088baf2f82e&quot;,&quot;a93d1c34-39e8-47e5-aec8-99a1c152d56b&quot;],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:5784,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000}],&quot;passes&quot;:[],&quot;failures&quot;:[],&quot;pending&quot;:[],&quot;skipped&quot;:[],&quot;duration&quot;:0,&quot;root&quot;:false,&quot;rootEmpty&quot;:false,&quot;_timeout&quot;:2000},{&quot;uuid&quot;:&quot;82316f3a-fab1-4284-a1aa-7fd9d26b7e06&quot;,&quot;title&quot;:&quot;&quot;,&quot;fullFile&quot;:&quot;&quot;,&quot;file&quot;:&quot;&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[],&quot;suites&quot;:[{&quot;uuid&quot;:&quot;88e77ebe-7543-47cd-a2ae-683acfd5ef01&quot;,&quot;title&quot;:&quot;&gt; [binanceus] without API keys&quot;,&quot;fullFile&quot;:&quot;/home/travis/build/ccxt-rest/ccxt-rest/test/generated/binanceus-test.js&quot;,&quot;file&quot;:&quot;/test/generated/binanceus-test.js&quot;,&quot;beforeHooks&quot;:[],&quot;afterHooks&quot;:[],&quot;tests&quot;:[{&quot;title&quot;:&quot;&gt; [binanceus] connect&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceus] without API keys &gt; [binanceus] connect&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:42,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;medium&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = &#x27;n/a&#x27;\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}&quot;,&quot;err&quot;:{},&quot;isRoot&quot;:false,&quot;uuid&quot;:&quot;ce3bd3d8-abe1-41b9-9bdb-df47e5a16101&quot;,&quot;isHook&quot;:false,&quot;skipped&quot;:false},{&quot;title&quot;:&quot;&gt; [binanceus] markets&quot;,&quot;fullTitle&quot;:&quot; &gt; [binanceus] without API keys &gt; [binanceus] markets&quot;,&quot;timedOut&quot;:false,&quot;duration&quot;:393,&quot;state&quot;:&quot;passed&quot;,&quot;speed&quot;:&quot;slow&quot;,&quot;pass&quot;:true,&quot;fail&quot;:false,&quot;pending&quot;:false,&quot;code&quot;:&quot;if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) =&gt; {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res &amp;&amp; res.status) || 408\n exchangeDetail[property].response = res &amp;&amp; res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail =&gt; {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchan