From 74b5c72b5d94803d95a5320d924fd35af8b57544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Ma=C5=82ecki?= Date: Tue, 15 Apr 2014 16:26:20 +0200 Subject: [PATCH] Add a basic test for sending bitcoins --- test/unit/traderSendTest.js | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 test/unit/traderSendTest.js diff --git a/test/unit/traderSendTest.js b/test/unit/traderSendTest.js new file mode 100644 index 00000000..d8d26146 --- /dev/null +++ b/test/unit/traderSendTest.js @@ -0,0 +1,55 @@ +'use strict'; + +var assert = require('chai').assert; +var hock = require('hock'); +var uuid = require('node-uuid').v4; +var Trader = require('../../lib/trader.js'); +var PostgresqlInterface = require('../../lib/protocol/db/postgresql_interface.js'); + +var db = 'psql://lamassu:lamassu@localhost/lamassu-test'; +var psqlInterface = new PostgresqlInterface(db); + +var TRANSACTION_FEE = 1; +var FINGERPRINT = 'CB:3D:78:49:03:39:BA:47:0A:33:29:3E:31:25:F7:C6:4F:74:71:D7'; +var TXID = '216dabdb692670bae940deb71e59486038a575f637903d3c9af601ddd48057fc'; +var CURRENCY = 'USD'; + +describe('trader/send', function () { + var trader = new Trader(psqlInterface); + trader.config = { + exchanges: { + settings: { + transactionFee: TRANSACTION_FEE + } + } + }; + + trader.tickerExchange = { ticker: function () { } }; + + it('should call `sendBitcoins` on the transfer exchange', function (done) { + var address = '1LhkU2R8nJaU8Zj6jB8VjWrMpvVKGqCZ64'; + var txId = uuid(); + var satoshis = 1337; + + trader.transferExchange = { + sendBitcoins: function (address_, satoshis_, transactionFee, callback) { + assert.equal(address, address_); + assert.equal(satoshis, satoshis_); + assert.equal(transactionFee, TRANSACTION_FEE); + callback(null, TXID); + } + }; + + trader.sendBitcoins(FINGERPRINT, { + fiat: 100, + txId: txId, + currencyCode: CURRENCY, + toAddress: address, + satoshis: satoshis + }, function (err, txId) { + assert.notOk(err); + assert.equal(txId, TXID); + done(); + }); + }); +});