UNPKG

@tadko/bitflyer-client

Version:
128 lines (108 loc) 3.11 kB
import {BitFlyerClient, SendChildOrderRequest} from './BitFlyerClient'; import 'mocha'; import { expect } from 'chai'; import * as nock from 'nock'; const baseUrl = 'https://api.bitflyer.jp'; nock.disableNetConnect(); describe('Bitflyer', () => { let bf: BitFlyerClient; before(() => { bf = new BitFlyerClient(); }); describe('initialize', () => { it('can instanciate', () => { expect(bf).not.to.be.null; }); }); describe('#sendchildorder', () => { beforeEach(() => { bf = new BitFlyerClient('key', 'secret'); }); it('can request', () => { const req: SendChildOrderRequest = { product_code: "BTC_JPY", child_order_type: "LIMIT", side: "BUY", price: 31690, size: 0.01, minute_to_expire: 10000, time_in_force: "GTC" } const res = { "child_order_acceptance_id": "JRF20150707-200203-452209" } const scope = nock(baseUrl) .post('/v1/me/sendchildorder', req, {reqheaders: {'ACCESS-KEY': 'key'}}) .reply(200, res); return bf.sendChildOrder(req).then(data => { expect(data).to.deep.equal(res); expect(scope.isDone()).is.true; }) }); }) describe('#getbalance', () => { beforeEach(() => { bf = new BitFlyerClient('key', 'secret'); }); it('can request', () => { const res = [ {"currency_code": "JPY", "amount": 1024078, "available": 508000}, {"currency_code": "BTC", "amount": 10.24, "available": 4.12}, {"currency_code": "ETH", "amount": 20.48, "available": 16.38} ] const scope = nock(baseUrl) .get('/v1/me/getbalance') .reply(200, res); return bf.getBalance().then(data => { expect(data).to.deep.equal(res); expect(scope.isDone()).is.true; }) }); }) describe('#getticker', () => { beforeEach(() => { bf = new BitFlyerClient('key', 'secret'); }); it('can request', () => { const res = { "product_code": "BTC_JPY", "timestamp": "2015-07-08T02:50:59.97", "tick_id": 3579, "best_bid": 30000, "best_ask": 36640, "best_bid_size": 0.1, "best_ask_size": 5, "total_bid_depth": 15.13, "total_ask_depth": 20, "ltp": 31690, "volume": 16819.26, "volume_by_product": 6819.26 } const scope = nock(baseUrl) .get('/v1/ticker') .reply(200, res); return bf.getTicker().then(data => { expect(data).to.deep.equal(res); expect(scope.isDone()).is.true; }) }); }) describe('#getboardstate', () => { beforeEach(() => { bf = new BitFlyerClient('key', 'secret'); }); it('can request', () => { const res = { "health": "NORMAL", "state": "RUNNING", } const scope = nock(baseUrl) .get('/v1/getboardstate') .reply(200, res); return bf.getBoardState().then(data => { expect(data).to.deep.equal(res); expect(scope.isDone()).is.true; }) }); }) })