All files / tests/segment create-transfer.js

100% Statements 57/57
100% Branches 2/2
100% Functions 14/14
100% Lines 56/56

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 1091x   1x 1x       1x       1x 1x     1x 6x 6x     1x 1x         1x   1x 1x 1x 1x 1x       1x 1x         1x   1x 1x 1x 1x       1x 1x           1x 1x 1x 1x 1x 1x       1x 1x       1x 1x 1x 1x 1x 1x       1x 1x       1x 1x 1x 1x 1x 1x       1x 1x       1x 1x 1x 1x 1x 1x      
const { expect } = require(`chai`);
 
const helper = require(`../helpers`),
  CoinpaymentsError = require(`../../lib/error`);
 
let client, mock;
 
const defaultPayload = {
  cmd: `create_transfer`
};
 
before(function() {
  client = helper.getClient();
});
 
afterEach(function() {
  if (mock) expect(mock.isDone()).equals(true);
  mock = false;
});
 
it(`Should be valid payload callback`, function(done) {
  const payload = {
    amount: `1`,
    currency: `BTC`,
    merchant: `merchantId`
  };
  const mockPayload = Object.assign({}, defaultPayload, payload);
 
  mock = helper.prepareMock(mockPayload);
  client.createTransfer(payload, function(err, response) {
    expect(err).equal(null);
    expect(response).equal(true);
    return done();
  });
});
 
it(`Should be valid payload promise`, function(done) {
  const payload = {
    amount: `1`,
    currency: `BTC`,
    pbntag: `somePbntag`
  };
  const mockPayload = Object.assign({}, defaultPayload, payload);
 
  mock = helper.prepareMock(mockPayload);
  client.createTransfer(payload).then(function(response) {
    expect(response).equal(true);
    return done();
  });
});
 
it(`Should return error on bad payload (merchant/pbntag)`, function(done) {
  const payload = {
    amount: `1`,
    currency: `BTC`,
    pbntag: `somePbntag`,
    merchant: `merchantId`
  };
  client.createTransfer(payload).catch(function(err) {
    expect(err).to.be.an.instanceof(CoinpaymentsError);
    expect(err).to.have.property(`name`);
    expect(err).to.have.property(`message`);
    expect(err).to.have.property(`extra`);
    return done();
  });
});
 
it(`Should return error on bad payload (merchant)`, function(done) {
  const payload = {
    amount: `1`,
    currency: `BTC`
  };
  client.createTransfer(payload).catch(function(err) {
    expect(err).to.be.an.instanceof(CoinpaymentsError);
    expect(err).to.have.property(`name`);
    expect(err).to.have.property(`message`);
    expect(err).to.have.property(`extra`);
    return done();
  });
});
 
it(`Should return error on bad payload (amount)`, function(done) {
  const payload = {
    merchant: `merchantId`,
    currency: `BTC`
  };
  client.createTransfer(payload).catch(function(err) {
    expect(err).to.be.an.instanceof(CoinpaymentsError);
    expect(err).to.have.property(`name`);
    expect(err).to.have.property(`message`);
    expect(err).to.have.property(`extra`);
    return done();
  });
});
 
it(`Should return error on bad payload (currency)`, function(done) {
  const payload = {
    amount: `1`,
    merchant: `merchantId`
  };
  client.createTransfer(payload, function(err) {
    expect(err).to.be.an.instanceof(CoinpaymentsError);
    expect(err).to.have.property(`name`);
    expect(err).to.have.property(`message`);
    expect(err).to.have.property(`extra`);
    return done();
  });
});