insight-via-api
Version:
A Viacoin blockchain REST and web socket API service for Viacore Node.
100 lines (85 loc) • 2.47 kB
JavaScript
var should = require('should');
var sinon = require('sinon');
var MessagesController = require('../lib/messages');
var bitcore = require('viacore-lib');
var _ = require('lodash');
describe('Messages', function() {
var privateKey = bitcore.PrivateKey.fromWIF('cQwApHAg8hw9AZuxiU4a7g9kFWdaemhPxVZXWiAKgJTx6dPP32fN');
var address = 'mswTKCE2tYSFvUNnNPBKZfeNmugYL1rZMx';
var badAddress = 'mswTKCE2tYSFvUNnNPBKZfeNmuhYL1rZMm';
var signature = 'IA4sIwhcLMPPsYtB8tN0PI+aQuwDyl+/4Ksa89llNSAeVaRdMyyIxpo1H5N3GHbPl9LQqZ7CvaokeQgsOkK9fn4=';
var message = 'cellar door';
it('will verify a message (true)', function(done) {
var controller = new MessagesController({node: {}});
var req = {
body: {
'address': address,
'signature': signature,
'message': message
},
query: {}
};
var res = {
json: function(data) {
data.result.should.equal(true);
done();
}
};
controller.verify(req, res);
});
it('will verify a message (false)', function(done) {
var controller = new MessagesController({node: {}});
var req = {
body: {
'address': address,
'signature': signature,
'message': 'wrong message'
},
query: {}
};
var res = {
json: function(data) {
data.result.should.equal(false);
done();
}
};
controller.verify(req, res);
});
it('handle an error from message verification', function(done) {
var controller = new MessagesController({node: {}});
var req = {
body: {
'address': badAddress,
'signature': signature,
'message': message
},
query: {}
};
var send = sinon.stub();
var status = sinon.stub().returns({send: send});
var res = {
status: status,
};
controller.verify(req, res);
status.args[0][0].should.equal(400);
send.args[0][0].should.equal('Unexpected error: Checksum mismatch. Code:1');
done();
});
it('handle error with missing parameters', function(done) {
var controller = new MessagesController({node: {}});
var req = {
body: {},
query: {}
};
var send = sinon.stub();
var status = sinon.stub().returns({send: send});
var res = {
status: status
};
controller.verify(req, res);
status.args[0][0].should.equal(400);
send.args[0][0].should.match(/^Missing parameters/);
done();
});
});
;