Removed v1 tests

This commit is contained in:
Chris Troutner
2019-05-27 19:45:22 -07:00
parent 68c1fc26b9
commit eb41fe26c8
15 changed files with 0 additions and 2684 deletions
-1
View File
@@ -12,7 +12,6 @@
"build": "node ./node_modules/gulp/bin/gulp.js build && ./node_modules/typescript/bin/tsc", "build": "node ./node_modules/gulp/bin/gulp.js build && ./node_modules/typescript/bin/tsc",
"dev": "nodemon ./dist/app.js", "dev": "nodemon ./dist/app.js",
"test": "npm run test-v2", "test": "npm run test-v2",
"test-v1": "npm run build && nyc --reporter=text mocha --require babel-core/register --timeout 15000 test/v1/",
"test-v2": "export NETWORK=testnet && npm run build && nyc --reporter=text mocha --require babel-core/register --timeout 25000 test/v2/", "test-v2": "export NETWORK=testnet && npm run build && nyc --reporter=text mocha --require babel-core/register --timeout 25000 test/v2/",
"test-v2-no-build": "export NETWORK=testnet && nyc --reporter=text mocha --require babel-core/register --timeout 25000 test/v2/", "test-v2-no-build": "export NETWORK=testnet && nyc --reporter=text mocha --require babel-core/register --timeout 25000 test/v2/",
"test-all": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 15000 test/v1/ test/v2/", "test-all": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 15000 test/v1/ test/v2/",
-287
View File
@@ -1,287 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const rawTransactionsRoute = require("../../dist/routes/v1/rawtransactions")
// Used for debugging.
const util = require("util")
util.inspect.defaultOptions = {
showHidden: true,
colors: true
}
describe("#RawTransactionsRouter", () => {
describe("#root", () => {
it("should return 'rawtransactions' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
rawTransactionsRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "rawtransactions"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#DecodeRawTransaction", () => {
it("should GET /decodeRawTransaction/:hex", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/decodeRawTransaction/["0200000001d0ba1330194111747e0b1784ab62126871c87acad3b6dc3a339b261ad974e940010000006b483045022100a284b4ac5ed55ac0e2baa02b6bdabbf06f98d2bf6b3fdcea1aea50f55766afd002206181c8e60f738116ba6e16177f3d408e8da2c463c69b27c2531fab84b63a63b24121022d426ef365d6480b127b4980afa4b9415cad5e6f0a9e11b1536d3523597197f3ffffffff02011d0000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac0000000000000000116a0f23424348466f7245766572796f6e6500000000"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
//console.log(`actualResponseBody: ${util.inspect(actualResponseBody)}`)
assert.deepEqual(actualResponseBody, [
"txid",
"hash",
"size",
"version",
"locktime",
"vin",
"vout"
])
done()
})
})
})
describe("#DecodeScript", () => {
it("should GET /decodeScript/:script", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/decodeScript/["4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, ["asm", "type", "p2sh"])
done()
})
})
})
describe("#GetRawTransaction", () => {
it("should GET /getRawTransaction/:txid", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getRawTransaction/["0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000"
)
done()
})
})
})
describe("#SendRawTransaction", () => {
it("should POST /sendRawTransaction/:hex single tx hex", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
'/sendRawTransaction/["01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
assert.equal(actualResponseBody, "transaction already in block chain")
done()
})
})
//
// it("should POST /sendRawTransaction/:hex array", (done) => {
// let hex1 = '020000000148735fcdac94c51459f7d8f787cf363c618125bc0f9092092ed2ebccd0f5557e0000000069463043021f4e3dd1fadb3e8fabdbd94b125d7e97932f72bb08118407e49cf505e7f5f63b022062eee3c5d94b4bc6b68ab0018876e9661b257f1e8487173876faccf7d3a2220541210313299e9ec7a9e62789094b850ab6f71df7c39af7c03568027c24d0bc9eda930dffffffff017b140000000000001976a914e11ed7fd6416d8f5c58a1cb3e1b0005c3cab092f88ac00000000';
// let hex2 = '0200000001a1b5849a5026642d5e28abdb4e98aa483adc20daab44c39e2f41acf72aa8c845000000006b483045022100994ab28c7df64852057c3ab965148ef2b5456233c12774087e88a62bbc27d4230220504d1096ac52915d32d2356ba5ae82f202543b88c24b4643800919e85da333984121039c48c06ce551810a2eeedf516c77995a922ca65c4e9e9a0a07288a6fae149eb2ffffffff013b1e0000000000001976a9140377597dd75d41398259c36d05a5a68ba0af782d88ac00000000';
// let arr = [hex1, hex2];
// let mockRequest = httpMocks.createRequest({
// method: "POST",
// url: '/sendRawTransaction/' + arr
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// rawTransactionsRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = mockResponse._getData();
// assert.equal(actualResponseBody, 'transaction already in block chain');
// done();
// });
// });
})
/*
describe("#change", () => {
it("should POST /change/:rawtx/:prevTxs/:destination/:fee", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
'/change/0100000001b15ee60431ef57ec682790dec5a3c0d83a0c360633ea8308fbf6d5fc10a779670400000000ffffffff025c0d00000000000047512102f3e471222bb57a7d416c82bf81c627bfcd2bdc47f36e763ae69935bba4601ece21021580b888ff56feb27f17f08802ebed26258c23697d6a462d43fc13b565fda2dd52aeaa0a0000000000001976a914946cb2e08075bcbaf157e47bcb67eb2b2339d24288ac00000000/[{"txid":"6779a710fcd5f6fb0883ea3306360c3ad8c0a3c5de902768ec57ef3104e65eb1","vout":4,"scriptPubKey":"76a9147b25205fd98d462880a3e5b0541235831ae959e588ac","value":0.00068257}]/bchtest:qq2j9gp97gm9a6lwvhxc4zu28qvqm0x4j5e72v7ejg/0.00003500'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0100000001b15ee60431ef57ec682790dec5a3c0d83a0c360633ea8308fbf6d5fc10a779670400000000ffffffff03efe40000000000001976a9141522a025f2365eebee65cd8a8b8a38180dbcd59588ac5c0d00000000000047512102f3e471222bb57a7d416c82bf81c627bfcd2bdc47f36e763ae69935bba4601ece21021580b888ff56feb27f17f08802ebed26258c23697d6a462d43fc13b565fda2dd52aeaa0a0000000000001976a914946cb2e08075bcbaf157e47bcb67eb2b2339d24288ac00000000"
)
done()
})
})
})
*/
describe("#input", () => {
it("should POST /input/:rawTx/:txid/:n", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
"/input/01000000000000000000/b006729017df05eda586df9ad3f8ccfee5be340aadf88155b784d1fc0e8342ee/0"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0100000001ee42830efcd184b75581f8ad0a34bee5feccf8d39adf86a5ed05df17907206b00000000000ffffffff0000000000"
)
done()
})
})
})
describe("#opReturn", () => {
it("should POST /opReturn/:rawTx/:payload", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/opReturn/01000000000000000000/00000000000000020000000006dac2c0"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0100000000010000000000000000166a140877686300000000000000020000000006dac2c000000000"
)
done()
})
})
})
/*
describe("#reference", () => {
it("should POST /reference/:rawTx/:destination", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
"/reference/0100000001a7a9402ecd77f3c9f745793c9ec805bfa2e14b89877581c734c774864247e6f50400000000ffffffff03aa0a0000000000001976a9146d18edfe073d53f84dd491dae1379f8fb0dfe5d488ac5c0d0000000000004751210252ce4bdd3ce38b4ebbc5a6e1343608230da508ff12d23d85b58c964204c4cef3210294cc195fc096f87d0f813a337ae7e5f961b1c8a18f1f8604a909b3a5121f065b52aeaa0a0000000000001976a914946cb2e08075bcbaf157e47bcb67eb2b2339d24288ac00000000/bchtest:qq2j9gp97gm9a6lwvhxc4zu28qvqm0x4j5e72v7ejg?amount=0.005"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0100000001a7a9402ecd77f3c9f745793c9ec805bfa2e14b89877581c734c774864247e6f50400000000ffffffff04aa0a0000000000001976a9146d18edfe073d53f84dd491dae1379f8fb0dfe5d488ac5c0d0000000000004751210252ce4bdd3ce38b4ebbc5a6e1343608230da508ff12d23d85b58c964204c4cef3210294cc195fc096f87d0f813a337ae7e5f961b1c8a18f1f8604a909b3a5121f065b52aeaa0a0000000000001976a914946cb2e08075bcbaf157e47bcb67eb2b2339d24288ac20a10700000000001976a9141522a025f2365eebee65cd8a8b8a38180dbcd59588ac00000000"
)
done()
})
})
})
*/
/*
describe("#decodeTransaction", () => {
it("should POST /decodeTransaction/:rawTx", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
'/decodeTransaction/010000000163af14ce6d477e1c793507e32a5b7696288fa89705c0d02a3f66beb3c5b8afee0100000000ffffffff02ac020000000000004751210261ea979f6a06f9dafe00fb1263ea0aca959875a7073556a088cdfadcd494b3752102a3fd0a8a067e06941e066f78d930bfc47746f097fcd3f7ab27db8ddf37168b6b52ae22020000000000001976a914946cb2e08075bcbaf157e47bcb67eb2b2339d24288ac00000000?prevTxs=[{"txid":"eeafb8c5b3be663f2ad0c00597a88f2896765b2ae30735791c7e476dce14af63","vout":1,"scriptPubKey":"76a9149084c0bd89289bc025d0264f7f23148fb683d56c88ac","value":0.0001123}]'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = mockResponse._getData()
assert.equal(actualResponseBody, "Not a Master Protocol transaction")
done()
})
})
})
*/
describe("#create", () => {
it("should POST /create/:inputs/:outputs", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
'/create/ [{"txid":"eeafb8c5b3be663f2ad0c00597a88f2896765b2ae30735791c7e476dce14af63","vout":1}]/{}'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
rawTransactionsRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"020000000163af14ce6d477e1c793507e32a5b7696288fa89705c0d02a3f66beb3c5b8afee0100000000ffffffff0000000000"
)
done()
})
})
})
})
-203
View File
@@ -1,203 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const addressRoute = require("../../dist/routes/v1/address")
const util = require("util")
util.inspect.defaultOptions = {
showHidden: true,
colors: true
}
describe("#AddressRouter", () => {
describe("#root", () => {
it("should return 'address' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
addressRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "address"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#AddressDetails", () => {
it("should GET /details/:address single address", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: '/details/["qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
addressRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"balance",
"balanceSat",
"totalReceived",
"totalReceivedSat",
"totalSent",
"totalSentSat",
"unconfirmedBalance",
"unconfirmedBalanceSat",
"unconfirmedTxAppearances",
"txAppearances",
"transactions",
"legacyAddress",
"cashAddress"
])
done()
})
})
it("should GET /details/:address array of addresses", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/details/["qql6r7khtjgwy3ufnjtsczvaf925hyw49cudht57tr", "qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
addressRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"balance",
"balanceSat",
"totalReceived",
"totalReceivedSat",
"totalSent",
"totalSentSat",
"unconfirmedBalance",
"unconfirmedBalanceSat",
"unconfirmedTxAppearances",
"txAppearances",
"transactions",
"legacyAddress",
"cashAddress"
])
done()
})
})
})
describe("#AddressUtxo", () => {
it("should GET /utxo/:address single address", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: '/utxo/["qpk4hk3wuxe2uqtqc97n8atzrrr6r5mleczf9sur4h"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
addressRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0][0]
)
assert.deepEqual(actualResponseBody, [
"txid",
"vout",
"scriptPubKey",
"amount",
"satoshis",
"height",
"confirmations",
"legacyAddress",
"cashAddress"
])
done()
})
})
it("should GET /utxo/:address array of addresses", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/utxo/["qz4q7h2jxmfhg3l7r7zeumzgeh7gyp6shuqmq5h6np", "qzqlp044n3qn7kntlc0mr5tp2a0ee0vvyq9yyyyjh0"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
addressRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[1][0]
)
assert.deepEqual(actualResponseBody, [
"txid",
"vout",
"scriptPubKey",
"amount",
"satoshis",
"height",
"confirmations",
"legacyAddress",
"cashAddress"
])
done()
})
})
})
describe("#AddressUnconfirmed", () => {
it("should GET /unconfirmed/:address single address", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: '/unconfirmed/["qql6r7khtjgwy3ufnjtsczvaf925hyw49cudht57tr"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
addressRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [])
// assert.deepEqual(actualResponseBody, [ 'txid', 'vout', 'scriptPubKey', 'amount', 'satoshis', 'height', 'confirmations', 'legacyAddress', 'cashAddress']);
done()
})
})
it("should GET /unconfirmed/:address array of addresses", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/unconfirmed/["qql6r7khtjgwy3ufnjtsczvaf925hyw49cudht57tr", "qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
addressRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [])
// assert.deepEqual(actualResponseBody, [ 'txid', 'vout', 'scriptPubKey', 'amount', 'satoshis', 'height', 'confirmations', 'legacyAddress', 'cashAddress']);
done()
})
})
})
})
-101
View File
@@ -1,101 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const blockRoute = require("../../dist/routes/v1/block")
describe("#BlockRouter", () => {
describe("#root", () => {
it("should return 'block' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
blockRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "block"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#BlockDetails", () => {
it("should GET /details/:id height", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/details/549608"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"hash",
"size",
"height",
"version",
"merkleroot",
"tx",
"time",
"nonce",
"bits",
"difficulty",
"chainwork",
"confirmations",
"previousblockhash",
"nextblockhash",
"reward",
"isMainChain",
"poolInfo"
])
done()
})
})
it("should GET /details/:id hash", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/details/00000000000000000182bf5782f3d43b1a8fceccb50253eb61e58cba7b240edc"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"hash",
"size",
"height",
"version",
"merkleroot",
"tx",
"time",
"nonce",
"bits",
"difficulty",
"chainwork",
"confirmations",
"previousblockhash",
"nextblockhash",
"reward",
"isMainChain",
"poolInfo"
])
done()
})
})
})
})
-593
View File
@@ -1,593 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const blockchainRoute = require("../../dist/routes/v1/blockchain")
describe("#BlockchainRouter", () => {
describe("#root", () => {
it("should return 'blockchain' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
blockchainRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "blockchain"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#BlockchainGetBestBlockHash", () => {
it("should GET /getBestBlockHash ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getBestBlockHash"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody.length, 64)
done()
})
})
})
describe("#BlockchainGetBlock", () => {
it("should GET /getBlock/:id w/ verbose=true", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/getblock/00000000000000000182bf5782f3d43b1a8fceccb50253eb61e58cba7b240edc?verbose=true"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"hash",
"confirmations",
"size",
"height",
"version",
"versionHex",
"merkleroot",
"tx",
"time",
"mediantime",
"nonce",
"bits",
"difficulty",
"chainwork",
"previousblockhash",
"nextblockhash"
])
done()
})
})
it("should GET /getBlock/:id w/ verbose=false", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/getblock/00000000000000000182bf5782f3d43b1a8fceccb50253eb61e58cba7b240edc?verbose=false"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = mockResponse._getData()
assert.equal(actualResponseBody.length, 34638)
done()
})
})
})
// TODO - Why is this test failing?
// describe("#BlockchainGetBlockchainInfo", () => {
// it("should GET /getBlockchainInfo ", done => {
// const mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getBlockchainInfo"
// })
// const mockResponse = httpMocks.createResponse({
// eventEmitter: require("events").EventEmitter
// })
// blockchainRoute(mockRequest, mockResponse)
//
// mockResponse.on("end", () => {
// const actualResponseBody = Object.keys(
// JSON.parse(mockResponse._getData())
// )
// assert.deepEqual(actualResponseBody, [
// "chain",
// "blocks",
// "headers",
// "bestblockhash",
// "difficulty",
// "mediantime",
// "verificationprogress",
// "chainwork",
// "pruned",
// "softforks",
// "bip9_softforks"
// ])
// done()
// })
// })
// })
describe("#BlockchainGetBlockCount", () => {
it("should GET /getBlockCount ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getBlockCount"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = parseInt(mockResponse._getData())
assert.equal(typeof actualResponseBody, "number")
done()
})
})
})
describe("#BlockchainGetBlockHash", () => {
it("should GET /getBlockHash/:height ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getBlockhash/[0, 1, 2, 3, 532646]"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
assert.equal(
actualResponseBody,
"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"
)
done()
})
})
})
describe("#BlockchainGetBlockHeader", () => {
it("should GET /getBlockHeader/:hash w/ verbose=true", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getBlockHeader/["00000000000000000182bf5782f3d43b1a8fceccb50253eb61e58cba7b240edc"%5D?verbose=true'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"hash",
"confirmations",
"height",
"version",
"versionHex",
"merkleroot",
"time",
"mediantime",
"nonce",
"bits",
"difficulty",
"chainwork",
"previousblockhash",
"nextblockhash"
])
done()
})
})
it("should GET /getBlockHeader/:hash w/ verbose=false", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getBlockHeader/00000000000000000182bf5782f3d43b1a8fceccb50253eb61e58cba7b240edc"%5D?verbose=false'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.deepEqual(actualResponseBody.length, 160)
done()
})
})
})
describe("#BlockchainGetChainTips", () => {
it("should GET /getChainTips ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getChainTips"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"height",
"hash",
"branchlen",
"status"
])
done()
})
})
})
describe("#BlockchainGetDifficulty", () => {
it("should GET /getDifficulty ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getDifficulty"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = parseFloat(mockResponse._getData())
assert.equal(typeof actualResponseBody, "number")
done()
})
})
})
describe("#BlockchainGetMempoolAncestors", () => {
it("should GET /getMempoolAncestors/:txid w/ verbose=true", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getMempoolAncestors/["53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"%5D?verbose=true'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
assert.equal(actualResponseBody, "Transaction not in mempool")
done()
})
})
it("should GET /getMempoolAncestors/:txid w/ verbose=false", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getMempoolAncestors/["53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"%5D?verbose=false'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
assert.equal(actualResponseBody, "Transaction not in mempool")
done()
})
})
})
describe("#BlockchainGetMempoolDescendants", () => {
it("should GET /getMempoolDescendants/:txid w/ verbose=true", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getMempoolDescendants/["53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"%5D?verbose=true'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
assert.equal(actualResponseBody, "Transaction not in mempool")
done()
})
})
it("should GET /getMempoolDescendants/:txid w/ verbose=false", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getMempoolDescendants/["53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"%5D?verbose=false'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
assert.equal(actualResponseBody, "Transaction not in mempool")
done()
})
})
})
describe("#BlockchainGetMempoolEntry", () => {
it("should GET /getMempoolEntry/:txid ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/getMempoolEntry/["53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
// TODO: create a tx send it to mempool. Then spend the utxo in another tx and call that enpoind w/ the 2nd txid.
assert.equal(actualResponseBody, "Transaction not in mempool")
done()
})
})
})
describe("#BlockchainGetMempoolInfo", () => {
it("should GET /getMempoolInfo ", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getMempoolInfo"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"size",
"bytes",
"usage",
"maxmempool",
"mempoolminfee"
])
done()
})
})
})
describe("#BlockchainGetRawMempool", () => {
it("should GET /getRawMempool w/ verbose=true", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getRawMempool?verbose=true"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert(actualResponseBody.length > 1)
done()
})
})
it("should GET /getRawMempool w/ verbose=false", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getRawMempool?verbose=false"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert(actualResponseBody.length > 1)
done()
})
})
})
// TODO - Why is this test failing?
// describe("#BlockchainGetTxOut", () => {
// it("should GET /getTxOut/:txid/:n w/ verbose=true", done => {
// const mockRequest = httpMocks.createRequest({
// method: "GET",
// url:
// "/getTxOut/ac0e82ea84f93444602a99199dd80793f79a8ece5ac86156d2fff34f0bad44b2/0?verbose=true"
// })
// const mockResponse = httpMocks.createResponse({
// eventEmitter: require("events").EventEmitter
// })
// blockchainRoute(mockRequest, mockResponse)
//
// mockResponse.on("end", () => {
// const actualResponseBody = Object.keys(
// JSON.parse(mockResponse._getData())
// )
// assert.deepEqual(actualResponseBody, [
// "bestblock",
// "confirmations",
// "value",
// "scriptPubKey",
// "coinbase"
// ])
// done()
// })
// })
//
// it("should GET /getTxOut/:txid/:n w/ verbose=false", done => {
// const mockRequest = httpMocks.createRequest({
// method: "GET",
// url:
// "/getTxOut/ac0e82ea84f93444602a99199dd80793f79a8ece5ac86156d2fff34f0bad44b2/0?verbose=false"
// })
// const mockResponse = httpMocks.createResponse({
// eventEmitter: require("events").EventEmitter
// })
// blockchainRoute(mockRequest, mockResponse)
//
// mockResponse.on("end", () => {
// const actualResponseBody = Object.keys(
// JSON.parse(mockResponse._getData())
// )
// assert.deepEqual(actualResponseBody, [
// "bestblock",
// "confirmations",
// "value",
// "scriptPubKey",
// "coinbase"
// ])
// done()
// })
// })
// })
describe("#BlockchainGetTxOutProof", () => {
it("should GET /getTxOutProof/:txid", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/getTxOutProof/53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = mockResponse._getData()
assert.equal(
actualResponseBody.message,
"JSON value is not an array as expected"
)
done()
})
})
})
//
// describe("#BlockchainPreciousBlock", () => {
// it("should GET /preciousBlock/:hash", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/preciousBlock/00000000000000000108641af52e01a447b1f9d801571f93a0f20a8cbf80c236"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// blockchainRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = mockResponse._getData();
// assert.equal(JSON.parse(actualResponseBody), "null" );
// done();
// });
// });
// });
//
// describe("#BlockchainPruneBlockchain", () => {
// it("should POST /pruneBlockchain/:height ", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "POST",
// url: "/pruneBlockchain/530384"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// blockchainRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = mockResponse._getData();
// assert.equal(actualResponseBody, "Cannot prune blocks because node is not in prune mode." );
// done();
// });
// });
// });
//
// describe("#BlockchainVerifyChain", () => {
// it("should GET /verifyChain", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/verifyChain"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// blockchainRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = JSON.parse(mockResponse._getData());
// assert.equal(actualResponseBody, true);
// done();
// });
// });
// });
describe("#BlockchainVerifyTxOutProof", () => {
it("should GET /verifyTxOutProof/:proof", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/verifyTxOutProof/53735a4ddb828825d6e3f52d045f4c151b2b3d51d631bc581e62f31184b151d6"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
blockchainRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = mockResponse._getData()
assert.equal(
actualResponseBody.message,
"CDataStream::read(): end of data: iostream error"
)
done()
})
})
})
})
-64
View File
@@ -1,64 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
//const expect = chai.expect;
const httpMocks = require("node-mocks-http")
const controlRoute = require("../../dist/routes/v1/control")
describe("#ControlRouter", () => {
describe("#root", () => {
it("should return 'control' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
controlRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "control"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
/*
describe("#GetInfo", () => {
it("should GET /getInfo", (done) => {
let mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getInfo"
});
let mockResponse = httpMocks.createResponse({
eventEmitter: require('events').EventEmitter
});
controlRoute(mockRequest, mockResponse);
mockResponse.on('end', () => {
let actualResponseBody = Object.keys(JSON.parse(mockResponse._getData()));
assert.deepEqual(actualResponseBody, [ 'version', 'protocolversion', 'blocks', 'timeoffset', 'connections', 'proxy', 'difficulty', 'testnet', 'paytxfee', 'relayfee', 'errors' ]);
done();
});
});
});
//
// describe("#GetMemoryInfo", () => {
// it("should GET /getMemoryInfo ", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getMemoryInfo"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// controlRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = Object.keys(JSON.parse(mockResponse._getData()).locked);
// assert.deepEqual(actualResponseBody, [ 'used', 'free', 'total', 'locked', 'chunks_used', 'chunks_free' ]);
// done();
// });
// });
// });
*/
})
-485
View File
@@ -1,485 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const dataRetrieval = require("../../dist/routes/v1/dataRetrieval")
describe("#dataRetrievalRouter", () => {
describe("#root", () => {
it("should return 'dataRetrieval' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
dataRetrieval(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "dataRetrieval"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#balancesForAddress", () => {
it("should GET /balancesForAddress/:address", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/balancesForAddress/bitcoincash:qqnjqejdq77pjqhg2y009fck50wdzzh3mc667y7075"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.deepEqual(actualResponseBody[0], {
propertyid: 189,
balance: "1.0",
reserved: "0.0"
})
done()
})
})
})
/*
describe("#balancesForId", () => {
it("should GET /balancesForId/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/balancesForId/189"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())[0]
//console.log(`actualResponseBody: ${JSON.stringify(actualResponseBody, null, 2)}`)
assert.deepEqual(actualResponseBody, {
address: "bitcoincash:qzgvcvfkupltwn2k8c0y8hddhwffxg7p35s834qcuz",
balance: "1.0",
reserved: "0.0"
})
done()
})
})
})
*/
describe("#balanceAddressAndPropertyId", () => {
it("should GET /balance/:address/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/balance/bitcoincash:qqnjqejdq77pjqhg2y009fck50wdzzh3mc667y7075/189"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.deepEqual(actualResponseBody, {
balance: "1.0",
reserved: "0.0"
})
done()
})
})
})
describe("#balancesHash", () => {
it("should GET /balancesHash/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/balancesHash/127"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"block",
"blockhash",
"propertyid",
"balanceshash"
])
done()
})
})
})
describe("#crowdSale", () => {
it("should GET /crowdSale/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/crowdSale/190"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"propertyid",
"name",
"active",
"issuer",
"propertyiddesired",
"precision",
"tokensperunit",
"earlybonus",
"starttime",
"deadline",
"amountraised",
"tokensissued",
"addedissuertokens",
"closedearly",
"maxtokens",
"endedtime",
"closetx"
])
done()
})
})
})
describe("#currentConsensusHash", () => {
it("should GET /currentConsensusHash", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/currentConsensusHash"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"block",
"blockhash",
"consensushash"
])
done()
})
})
})
describe("#grants", () => {
it("should GET /grants/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/grants/189"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"propertyid",
"name",
"issuer",
"creationtxid",
"totaltokens",
"issuances"
])
done()
})
})
})
/*
describe("#info", () => {
it("should GET /info", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/info"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"wormholeversion_int",
"wormholeversion",
"bitcoincoreversion",
"block",
"blocktime",
"blocktransactions",
"totaltrades",
"totaltransactions",
"alerts"
])
done()
})
})
})
*/
describe("#payload", () => {
it("should GET /payload/:txid", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/payload/709d1346a781e7e0064393c9b3f0e846ee445958946352b5928084e8d9a410cc"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, ["payload", "payloadsize"])
done()
})
})
})
describe("#property", () => {
it("should GET /property/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/property/127"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"propertyid",
"name",
"category",
"subcategory",
"data",
"url",
"precision",
"issuer",
"creationtxid",
"fixedissuance",
"managedissuance",
"totaltokens"
])
done()
})
})
})
describe("#seedBlocks", () => {
it("should GET /seedBlocks/:startBlock/:endBlock", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/seedBlocks/290000/300000"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [])
done()
})
})
})
/*
describe("#STO", () => {
it("should GET /STO/:txid", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
//url: "/STO/ac2df919be43fa793ff4955019195481878e0f0cab39834ad911124fdacfc603/*",
url: "/STO/744b6b3c287d836814c615b532737c080d07ddb48d891f9b0159196ee910b45c/*",
});
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter,
});
dataRetrieval(mockRequest, mockResponse);
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(JSON.parse(mockResponse._getData()));
assert.deepEqual(actualResponseBody, [
"txid",
"fee",
"sendingaddress",
"ismine",
"version",
"type_int",
"type",
"propertyid",
"precision",
"ecosystem",
"category",
"subcategory",
"propertyname",
"data",
"url",
"amount",
"valid",
"blockhash",
"blocktime",
"positioninblock",
"block",
"confirmations",
]);
done();
});
});
});
*/
describe("#transaction", () => {
it("should GET /transaction/:txid", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
//url: "/transaction/ac2df919be43fa793ff4955019195481878e0f0cab39834ad911124fdacfc603",
url:
"/transaction/744b6b3c287d836814c615b532737c080d07ddb48d891f9b0159196ee910b45c"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"txid",
"fee",
"sendingaddress",
"ismine",
"version",
"type_int",
"type",
"propertyid",
"precision",
//"ecosystem",
//"category",
//"subcategory",
//"propertyname",
//"data",
//"url",
//"amount",
"valid",
"blockhash",
"blocktime",
"positioninblock",
"block",
"confirmations"
])
done()
})
})
})
describe("#blockTransactions", () => {
it("should GET /blockTransactions/:index", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/blockTransactions/279007"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [])
done()
})
})
})
describe("#pendingTransactions", () => {
it("should GET /pendingTransactions", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/pendingTransactions"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.equal(Array.isArray(actualResponseBody), true)
done()
})
})
})
describe("#properties", () => {
it("should GET /properties", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/properties"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
dataRetrieval(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"propertyid",
"name",
"category",
"subcategory",
"data",
"url",
"precision"
])
done()
})
})
})
})
-44
View File
@@ -1,44 +0,0 @@
"use strict"
// const chai = require("chai");
const assert = require("assert")
// const expect = chai.expect;
const httpMocks = require("node-mocks-http")
const generatingRoute = require("../../dist/routes/v1/generating")
describe("#GeneratingRouter", () => {
describe("#root", () => {
it("should return 'generating' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
generatingRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "generating"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
//
// describe("#GeneratingGenerateToAddress", () => {
// it("should POST /generateToAddress/:n/:address ", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "POST",
// url: "/generateToAddress/1/qrff52mj0ml4scljzxrex7ses2gst42k9sfz2lftjq"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// generatingRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = mockResponse._getData();
// assert.equal(actualResponseBody, "JSON value is not an integer as expected");
// done();
// });
// });
// });
})
-24
View File
@@ -1,24 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const healthCheckRoute = require("../../dist/routes/v1/health-check")
describe("#HealthCheckRouter", () => {
describe("#root", () => {
it("should return 'winning' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
healthCheckRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "winning"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
})
-114
View File
@@ -1,114 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
//const expect = chai.expect;
const httpMocks = require("node-mocks-http")
const miningRoute = require("../../dist/routes/v1/mining")
describe("#MiningRouter", () => {
describe("#root", () => {
it("should return 'mining' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
miningRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "mining"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
//
// describe("#MiningGetBlockTemplate", () => {
// it("should GET /getBlockTemplate", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getBlockTemplate/{}"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// miningRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = mockResponse._getData();
// assert.equal(actualResponseBody, 'JSON value is not an object as expected');
// done();
// });
// });
// });
describe("#MiningGetMiningInfo", () => {
it("should GET /getMiningInfo", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getMiningInfo"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
miningRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"blocks",
"currentblocksize",
"currentblocktx",
"difficulty",
"blockprioritypercentage",
"errors",
"networkhashps",
"pooledtx",
"chain"
])
done()
})
})
})
describe("#MiningGetNetworkHashps", () => {
it("should GET /getNetworkHashps", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/getNetworkHashps"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
miningRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = parseInt(mockResponse._getData())
assert.equal(typeof actualResponseBody, "number")
done()
})
})
})
//
// describe("#MiningSubmitBlock", () => {
// it("should POST /SubmitBlock", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "POST",
// url: "/submitBlock/000000000000000000df19ff517463e288aca3de261ece7d53f97da65f9b7b8d"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// miningRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = mockResponse._getData();
// assert.equal(actualResponseBody, "Block decode failed");
// done();
// });
// });
// });
})
-120
View File
@@ -1,120 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
//const expect = chai.expect;
const httpMocks = require("node-mocks-http")
const networkRoute = require("../../dist/routes/v1/network")
describe("#NetworkRouter", () => {
describe("#root", () => {
it("should return 'network' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
networkRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "network"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
//
// describe("#NetworkGetConnectionCount", () => {
// it("should GET /getConnectionCount ", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getConnectionCount"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// networkRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = parseInt(mockResponse._getData());
// assert.equal(typeof actualResponseBody, "number");
// done();
// });
// });
// });
//
// describe("#NetworkGetNetTotals", () => {
// it("should GET /getNetTotals ", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getNetTotals"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// networkRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = Object.keys(JSON.parse(mockResponse._getData()));
// assert.deepEqual(actualResponseBody, [ 'totalbytesrecv', 'totalbytessent', 'timemillis', 'uploadtarget' ]);
// done();
// });
// });
// });
//
// describe("#NetworkGetNetworkInfo", () => {
// it("should GET /getNetworkInfo", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getNetworkInfo"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// networkRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = Object.keys(JSON.parse(mockResponse._getData()));
// assert.deepEqual(actualResponseBody, [ 'version', 'subversion', 'protocolversion', 'localservices', 'localrelay', 'timeoffset', 'networkactive', 'connections', 'networks', 'relayfee', 'incrementalfee', 'localaddresses', 'warnings' ]);
// done();
// });
// });
// });
//
// describe("#NetworkGetPeerInfo", () => {
// it("should GET /getPeerInfo", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/getPeerInfo"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// networkRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = Object.keys(JSON.parse(mockResponse._getData())[0]);
// assert.deepEqual(actualResponseBody, [ 'id', 'addr', 'addrlocal', 'services', 'relaytxes', 'lastsend', 'lastrecv', 'bytessent', 'bytesrecv', 'conntime', 'timeoffset', 'pingtime', 'minping', 'version', 'subver', 'inbound', 'addnode', 'startingheight', 'banscore', 'synced_headers', 'synced_blocks', 'inflight', 'whitelisted', 'bytessent_per_msg', 'bytesrecv_per_msg' ]);
// done();
// });
// });
// });
//
// describe("#NetworkPing", () => {
// it("should GET /ping", (done) => {
// let mockRequest = httpMocks.createRequest({
// method: "GET",
// url: "/ping"
// });
// let mockResponse = httpMocks.createResponse({
// eventEmitter: require('events').EventEmitter
// });
// networkRoute(mockRequest, mockResponse);
//
// mockResponse.on('end', () => {
// let actualResponseBody = JSON.parse(mockResponse._getData());
// assert.equal(actualResponseBody, 'null');
// done();
// });
// });
// });
})
-308
View File
@@ -1,308 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const payloadCreation = require("../../dist/routes/v1/payloadCreation")
describe("#payloadCreationRouter", () => {
describe("#root", () => {
it("should return 'payloadCreation' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
payloadCreation(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "payloadCreation"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#burnBCH", () => {
it("should GET /burnBCH", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/burnBCH"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody, "00000044")
done()
})
})
})
describe("#changeIssuer", () => {
it("should POST /changeIssuer/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/changeIssuer/3"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody, "0000004600000003")
done()
})
})
})
describe("#closeCrowdSale", () => {
it("should POST /closeCrowdSale/:propertyId", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/closeCrowdSale/70"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody, "0000003500000046")
done()
})
})
})
describe("#grant", () => {
it("should POST /grant/:propertyId/:amount", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/grant/189/7000"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody, "00000037000000bd000000000001117000")
done()
})
})
})
describe("#crowdsale", () => {
// CT 10/25/18: This test is commented out because I can't figure out how to
// test a thrown error with node-mocks-http. z
/*
it("should reject invalid date", done => {
try {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
"/crowdsale/1/1/0/Companies/Bitcoin-Mining/Quantum-Miner/www.example.com/Quantum -Miner-Tokens/1/100/7308955112/30/0/192978657"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
console.log(
`actualResponseBody: ${JSON.stringify(actualResponseBody, null, 2)}`
)
//assert.equal(
// actualResponseBody,
// "0000003301000100000000436f6d70616e69657300426974636f696e2d4d696e696e67005175616e74756d2d4d696e6572007777772e6578616d706c652e636f6d005175616e74756d202d4d696e65722d546f6b656e73000000000100000002540be40000000000586846801e0000000000730634ca"
//)
assert.equal(true, true)
done()
})
} catch (err) {
console.log(`Error: ${JSON.stringify(err, null, 2)}`)
assert.equal(true, true)
done()
}
})
*/
it("should POST /crowdsale/:ecosystem/:propertyPrecision/:previousId/:category/:subcategory/:name/:url/:data/:propertyIdDesired/:tokensPerUnit/:deadline/:earlyBonus/:undefine/:totalNumber", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
"/crowdsale/1/1/0/Companies/Bitcoin-Mining/Quantum-Miner/www.example.com/Quantum -Miner-Tokens/1/100/1483228800/30/0/192978657"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0000003301000100000000436f6d70616e69657300426974636f696e2d4d696e696e67005175616e74756d2d4d696e6572007777772e6578616d706c652e636f6d005175616e74756d202d4d696e65722d546f6b656e73000000000100000002540be40000000000586846801e0000000000730634ca"
)
done()
})
})
})
describe("#fixed", () => {
it("should POST /fixed/:ecosystem/:propertyPrecision/:previousId/:category/:subcategory/:name/:url/:data/:amount", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
"/fixed/1/1/0/Companies/Bitcoin-Mining/Quantum-Miner/www.example.com/Quantum-Miner-Tokens/1000000"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0000003201000100000000436f6d70616e69657300426974636f696e2d4d696e696e67005175616e74756d2d4d696e6572007777772e6578616d706c652e636f6d005175616e74756d2d4d696e65722d546f6b656e73000000000000989680"
)
done()
})
})
})
describe("#managed", () => {
it("should POST /managed/:ecosystem/:propertyPrecision/:previousId/:category/:subcategory/:name/:url/:data", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url:
"/managed/1/1/0/Companies/Bitcoin-Mining/Quantum-Miner/www.example.com/Quantum-Miner-Tokens"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0000003601000100000000436f6d70616e69657300426974636f696e2d4d696e696e67005175616e74756d2d4d696e6572007777772e6578616d706c652e636f6d005175616e74756d2d4d696e65722d546f6b656e7300"
)
done()
})
})
})
describe("#participateCrowdSale", () => {
it("should POST /participateCrowdSale/:amount", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/participateCrowdSale/100.0"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody, "000000010000000100000002540be400")
done()
})
})
})
describe("#revoke", () => {
it("should POST /revoke/:propertyId/:amount", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
//url: "/revoke/3/100", // testnet
url: "/revoke/189/100"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
//console.log(`actualResponseBody: ${JSON.stringify(actualResponseBody, null, 2)}`);
assert.equal(actualResponseBody, "00000038000000bd00000000000003e800")
done()
})
})
})
describe("#sendAll", () => {
it("should POST /sendAll/:ecosystem", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
//url: "/sendAll/2", // testnet
url: "/sendAll/1" // mainnet
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
//console.log(`actualResponseBody: ${JSON.stringify(actualResponseBody, null, 2)}`);
assert.equal(actualResponseBody, "0000000401")
done()
})
})
})
describe("#simpleSend", () => {
it("should POST /simpleSend/:propertyId/:amount", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/simpleSend/1/100.0"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(actualResponseBody, "000000000000000100000002540be400")
done()
})
})
})
describe("#STO", () => {
it("should POST /STO/:propertyId/:amount", done => {
const mockRequest = httpMocks.createRequest({
method: "POST",
url: "/STO/3/5000"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
payloadCreation(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = JSON.parse(mockResponse._getData())
assert.equal(
actualResponseBody,
"0000000300000003000000000000138800000003"
)
done()
})
})
})
})
-191
View File
@@ -1,191 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const slpRoute = require("../../dist/routes/v1/slp")
describe("#SlpRouter", () => {
describe("#root", () => {
it("should return 'slp' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
slpRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "slp"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#listTokens", () => {
it("should GET /list", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/list"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
slpRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"id",
"timestamp",
"symbol",
"name",
"document"
])
done()
})
})
})
describe("#listTokenById", () => {
it("should GET /list/:tokenId", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/list/259908ae44f46ef585edef4bcc1e50dc06e4c391ac4be929fae27235b8158cf1"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
slpRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"id",
"timestamp",
"symbol",
"name",
"document"
])
done()
})
})
})
describe("#balancesForAddress", () => {
it("should GET /balancesForAddress/:address", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/balancesForAddress/simpleledger:qz9tzs6d5097ejpg279rg0rnlhz546q4fsnck9wh5m"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
slpRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"satoshis_available",
"satoshis_locked_in_minting_baton",
"satoshis_locked_in_token",
"1cda254d0a995c713b7955298ed246822bee487458cd9747a91d9e81d9d28125",
"047918c612e94cce03876f1ad2bd6c9da43b586026811d9b0d02c3c3e910f972",
"slpAddress",
"cashAddress",
"legacyAddress"
])
done()
})
})
})
describe("#balanceForAddressById", () => {
it("should GET /balance/:address/:id", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/balance/simpleledger:qz9tzs6d5097ejpg279rg0rnlhz546q4fsnck9wh5m/1cda254d0a995c713b7955298ed246822bee487458cd9747a91d9e81d9d28125"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
slpRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"id",
"timestamp",
"symbol",
"name",
"document",
"balance",
"slpAddress",
"cashAddress",
"legacyAddress"
])
done()
})
})
})
//
// describe("#balancesForToken", () => {
// it("should GET /balancesForToken/:tokenId", done => {
// const mockRequest = httpMocks.createRequest({
// method: "GET",
// url:
// "/balancesForToken/d7c32d972a21b664f60b5fc422900179d8883dec7bd61418434aa12b09b99c12"
// })
// const mockResponse = httpMocks.createResponse({
// eventEmitter: require("events").EventEmitter
// })
// slpRoute(mockRequest, mockResponse)
//
// mockResponse.on("end", () => {
// const actualResponseBody = Object.keys(
// JSON.parse(mockResponse._getData())[0]
// )
// assert.deepEqual(actualResponseBody, ["balance", "address"])
// done()
// })
// })
// })
// TODO: Why does this test time out?
// describe("#addressConvert", () => {
// it("should GET /address/convert/:address", done => {
// const mockRequest = httpMocks.createRequest({
// method: "GET",
// url:
// "/address/convert/simpleledger:qz9tzs6d5097ejpg279rg0rnlhz546q4fsnck9wh5m"
// })
// const mockResponse = httpMocks.createResponse({
// eventEmitter: require("events").EventEmitter
// })
// slpRoute(mockRequest, mockResponse)
//
// mockResponse.on("end", () => {
// const actualResponseBody = Object.keys(
// JSON.parse(mockResponse._getData())
// )
// assert.deepEqual(actualResponseBody, [
// "slpAddress",
// "cashAddress",
// "legacyAddress"
// ])
// done()
// })
// })
// })
})
-96
View File
@@ -1,96 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const transactionRoute = require("../../dist/routes/v1/transaction")
describe("#TransactionRouter", () => {
describe("#root", () => {
it("should return 'transaction' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
transactionRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "transaction"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#TransactionDetails", () => {
it("should GET /details/:txid single txid", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/details/["78b5847f469f3e96b68c49097261d19c10ca5830c1e883333eb80e9252d9df86"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
transactionRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"txid",
"version",
"locktime",
"vin",
"vout",
"blockhash",
"blockheight",
"confirmations",
"time",
"blocktime",
"valueOut",
"size",
"valueIn",
"fees"
])
done()
})
})
it("should GET /details/:txid array", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
'/details/["113f1fe1c454a56436d4f93c7c6e315d1ed985d111299e9c2a3e2d3d1e9f177f", "f813f112cadd8b32670486dedcf81b4c2242c967759c9b61dee20b7e0830bb85"%5D'
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
transactionRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())[0]
)
assert.deepEqual(actualResponseBody, [
"txid",
"version",
"locktime",
"vin",
"vout",
"blockhash",
"blockheight",
"confirmations",
"time",
"blocktime",
"valueOut",
"size",
"valueIn",
"fees"
])
done()
})
})
})
})
-53
View File
@@ -1,53 +0,0 @@
"use strict"
//const chai = require("chai");
const assert = require("assert")
const httpMocks = require("node-mocks-http")
const utilRoute = require("../../dist/routes/v1/util")
describe("#UtilRouter", () => {
describe("#root", () => {
it("should return 'util' for GET /", () => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url: "/"
})
const mockResponse = httpMocks.createResponse()
utilRoute(mockRequest, mockResponse)
const actualResponseBody = mockResponse._getData()
const expectedResponseBody = {
status: "util"
}
assert.deepEqual(JSON.parse(actualResponseBody), expectedResponseBody)
})
})
describe("#ValidateAddress", () => {
it("should GET /validateAddress/:address", done => {
const mockRequest = httpMocks.createRequest({
method: "GET",
url:
"/validateAddress/bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c"
})
const mockResponse = httpMocks.createResponse({
eventEmitter: require("events").EventEmitter
})
utilRoute(mockRequest, mockResponse)
mockResponse.on("end", () => {
const actualResponseBody = Object.keys(
JSON.parse(mockResponse._getData())
)
assert.deepEqual(actualResponseBody, [
"isvalid",
"address",
"scriptPubKey",
"ismine",
"iswatchonly",
"isscript"
])
done()
})
})
})
})