bitcore-lib-zcash/test/test.Key.node.js

82 lines
2.6 KiB
JavaScript

var chai = chai || require('chai');
var bitcore = bitcore || require('../bitcore');
var coinUtil = coinUtil || bitcore.util;
var buffertools = require('buffertools');
var should = chai.should();
var assert = chai.assert;
var Key = bitcore.Key;
//addUncompressed is a node-only interface feature
if (typeof process !== 'undefined' && process.versions) {
describe('#Key.node', function() {
describe('#addUncompressed', function() {
it('should exist', function() {
should.exist(Key.addUncompressed);
});
it('should add two uncompressed public keys', function() {
var key1 = Key.generateSync();
key1.compressed = false;
var key2 = Key.generateSync();
key2.compressed = false;
var pubkey1 = key1.public;
var pubkey2 = key2.public;
var pubkey = Key.addUncompressed(pubkey1, pubkey2);
pubkey.length.should.equal(65);
});
it('a + b should equal b + a', function() {
var key1 = Key.generateSync();
key1.compressed = false;
var key2 = Key.generateSync();
key2.compressed = false;
var pubkey1 = key1.public;
var pubkey2 = key2.public;
var r1 = Key.addUncompressed(pubkey1, pubkey2);
var r2 = Key.addUncompressed(pubkey2, pubkey1);
r1.toString('hex').should.equal(r2.toString('hex'));
});
it('should be able to add these two public keys without error', function() {
var key1 = new Key();
key1.private = coinUtil.sha256("first " + 3);
key1.compressed = false;
key1.regenerateSync();
var key2 = new Key();
key2.private = coinUtil.sha256("second " + 3);
key2.compressed = false;
key2.regenerateSync();
var pubkey1 = key1.public;
var pubkey2 = key2.public;
var pubkey = Key.addUncompressed(pubkey1, pubkey2);
pubkey.length.should.equal(65);
var key = new Key();
key.public = pubkey;
assert(key.public !== null);
});
});
describe('node only Key functionality', function() {
it('should not fail when called as Key() without "new"', function() {
var key = Key();
should.exist(key);
});
it('should not fail when called as Key() without "new" with some args', function() {
var key = Key(1, 2, 3, 4, 5);
should.exist(key);
});
it('should have correct properties when called with Key() without "new"', function() {
var key = Key();
key.compressed.should.equal(true);
should.not.exist(key.public);
should.not.exist(key.private);
should.exist(key);
});
});
});
}