new tests

This commit is contained in:
nginnever
2016-02-12 14:55:05 -08:00
parent 16c77433f9
commit 7ae9be8f71
4 changed files with 65 additions and 14 deletions

View File

@ -10,17 +10,17 @@ module.exports = function (config) {
frameworks: ['mocha'], frameworks: ['mocha'],
files: [ files: [
'tests/id-test.js' 'tests/test.js'
], ],
preprocessors: { preprocessors: {
'tests/test-core/*': ['webpack'] 'tests/*': ['webpack']
}, },
webpack: { webpack: {
resolve: { resolve: {
extensions: ['', '.js', '.json'], extensions: ['', '.js', '.json'],
alias: {'node-forge': node_modules_dir+'/deps/forge.bundle.js' } alias: {'node-forge': __dirname+'/deps/forge.bundle.js' }
}, },
externals: { externals: {
fs: '{}' fs: '{}'
@ -53,7 +53,6 @@ module.exports = function (config) {
deps.forEach(function (dep) { deps.forEach(function (dep) {
var depPath = path.resolve(node_modules_dir, dep) var depPath = path.resolve(node_modules_dir, dep)
//config.webpack.resolve.alias[dep.split(path.sep)[0]] = depPath
config.webpack.module.noParse.push(depPath) config.webpack.module.noParse.push(depPath)
}) })
} }

View File

@ -4,12 +4,10 @@
"description": "IPFS Peer Id implementation in Node.js", "description": "IPFS Peer Id implementation in Node.js",
"main": "src/index.js", "main": "src/index.js",
"scripts": { "scripts": {
"test:node": "node tests/*-test.js", "test:node": "mocha tests/test.js",
"lint": "standard", "lint": "standard",
"test": "npm run test:node", "test": "npm run test:node && npm run test:browser",
"test:browser": "./node_modules/.bin/zuul --browser-version $BROWSER_VERSION --browser-name $BROWSER_NAME -- tests/id-test.js", "test:browser": "karma start karma.conf.js"
"test:browser:q": "BROWSER_VERSION=46 BROWSER_NAME=chrome npm run test:browser",
"build": "./node_modules/.bin/browserify -s PeerId -e ./src/index.js | tee dist/peer-id.js | ./node_modules/.bin/uglifyjs -m > dist/peer-id.min.js"
}, },
"keywords": [ "keywords": [
"IPFS" "IPFS"
@ -33,6 +31,9 @@
}, },
"homepage": "https://github.com/diasdavid/js-peer-id", "homepage": "https://github.com/diasdavid/js-peer-id",
"devDependencies": { "devDependencies": {
"buffer-loader": "0.0.1",
"chai": "^3.5.0",
"json-loader": "^0.5.4",
"karma": "^0.13.19", "karma": "^0.13.19",
"karma-chrome-launcher": "^0.2.2", "karma-chrome-launcher": "^0.2.2",
"karma-cli": "^0.1.2", "karma-cli": "^0.1.2",

View File

@ -15,9 +15,10 @@ var messages = isNode ? protobuf(fs.readFileSync(__dirname+'/../pb/crypto.proto'
//for some reason webpack can only find forge at forge.forge().someFunction()... //for some reason webpack can only find forge at forge.forge().someFunction()...
//browser should be able to just use forge.someFunction() //browser should be able to just use forge.someFunction()
if(!isNode){ //this is only happening when js-ipfs bundles peer-id module
/*if(!isNode){
forge = forge.forge() forge = forge.forge()
} }*/
exports = module.exports = Id exports = module.exports = Id
@ -115,14 +116,14 @@ exports.create = function () {
//format the keys to protobuf base64 encoded string //format the keys to protobuf base64 encoded string
var protoPublic64 = formatKey(asnPub, 'Public') var protoPublic64 = formatKey(asnPub, 'Public')
var protoPrivate64 = formatKey(asnPriv, 'Private') var protoPrivate64 = formatKey(asnPriv, 'Private')
var mhId = multihashing(new Buffer(protoPublic64, 'base64'), 'sha2-256') var mhId = multihashing(new Buffer(protoPublic64, 'base64'), 'sha2-256')
return new Id(mhId, protoPrivate64, protoPublic64) return new Id(mhId, protoPrivate64, protoPublic64)
} }
exports.createFromHexString = function (str) { exports.createFromHexString = function (str) {
return new Id(new Buffer(str), 'hex') return new Id(new Buffer(str, 'hex'))
} }
exports.createFromBytes = function (buf) { exports.createFromBytes = function (buf) {
@ -135,7 +136,7 @@ exports.createFromB58String = function (str) {
exports.createFromPubKey = function (pubKey) { exports.createFromPubKey = function (pubKey) {
var buf = new Buffer(pubKey, 'base64') var buf = new Buffer(pubKey, 'base64')
var mhId = multihashing(pubKey, 'sha2-256') var mhId = multihashing(buf, 'sha2-256')
return new Id(mhId, null, pubKey) return new Id(mhId, null, pubKey)
} }

50
tests/test.js Normal file
View File

@ -0,0 +1,50 @@
'use strict'
const expect = require('chai').expect
const PeerId = require('../src')
const testId = {
id: '1220151ab1658d8294ab34b71d5582cfe20d06414212f440a69366f1bc31deb5c72d',
privKey: 'CAASpgkwggSiAgEAAoIBAQC2SKo/HMFZeBml1AF3XijzrxrfQXdJzjePBZAbdxqKR1Mc6juRHXij6HXYPjlAk01BhF1S3Ll4Lwi0cAHhggf457sMg55UWyeGKeUv0ucgvCpBwlR5cQ020i0MgzjPWOLWq1rtvSbNcAi2ZEVn6+Q2EcHo3wUvWRtLeKz+DZSZfw2PEDC+DGPJPl7f8g7zl56YymmmzH9liZLNrzg/qidokUv5u1pdGrcpLuPNeTODk0cqKB+OUbuKj9GShYECCEjaybJDl9276oalL9ghBtSeEv20kugatTvYy590wFlJkkvyl+nPxIH0EEYMKK9XRWlu9XYnoSfboiwcv8M3SlsjAgMBAAECggEAZtju/bcKvKFPz0mkHiaJcpycy9STKphorpCT83srBVQi59CdFU6Mj+aL/xt0kCPMVigJw8P3/YCEJ9J+rS8BsoWE+xWUEsJvtXoT7vzPHaAtM3ci1HZd302Mz1+GgS8Epdx+7F5p80XAFLDUnELzOzKftvWGZmWfSeDnslwVONkL/1VAzwKy7Ce6hk4SxRE7l2NE2OklSHOzCGU1f78ZzVYKSnS5Ag9YrGjOAmTOXDbKNKN/qIorAQ1bovzGoCwx3iGIatQKFOxyVCyO1PsJYT7JO+kZbhBWRRE+L7l+ppPER9bdLFxs1t5CrKc078h+wuUr05S1P1JjXk68pk3+kQKBgQDeK8AR11373Mzib6uzpjGzgNRMzdYNuExWjxyxAzz53NAR7zrPHvXvfIqjDScLJ4NcRO2TddhXAfZoOPVH5k4PJHKLBPKuXZpWlookCAyENY7+Pd55S8r+a+MusrMagYNljb5WbVTgN8cgdpim9lbbIFlpN6SZaVjLQL3J8TWH6wKBgQDSChzItkqWX11CNstJ9zJyUE20I7LrpyBJNgG1gtvz3ZMUQCn3PxxHtQzN9n1P0mSSYs+jBKPuoSyYLt1wwe10/lpgL4rkKWU3/m1Myt0tveJ9WcqHh6tzcAbb/fXpUFT/o4SWDimWkPkuCb+8j//2yiXk0a/T2f36zKMuZvujqQKBgC6B7BAQDG2H2B/ijofp12ejJU36nL98gAZyqOfpLJ+FeMz4TlBDQ+phIMhnHXA5UkdDapQ+zA3SrFk+6yGk9Vw4Hf46B+82SvOrSbmnMa+PYqKYIvUzR4gg34rL/7AhwnbEyD5hXq4dHwMNsIDq+l2elPjwm/U9V0gdAl2+r50HAoGALtsKqMvhv8HucAMBPrLikhXP/8um8mMKFMrzfqZ+otxfHzlhI0L08Bo3jQrb0Z7ByNY6M8epOmbCKADsbWcVre/AAY0ZkuSZK/CaOXNX/AhMKmKJh8qAOPRY02LIJRBCpfS4czEdnfUhYV/TYiFNnKRj57PPYZdTzUsxa/yVTmECgYBr7slQEjb5Onn5mZnGDh+72BxLNdgwBkhO0OCdpdISqk0F0Pxby22DFOKXZEpiyI9XYP1C8wPiJsShGm2yEwBPWXnrrZNWczaVuCbXHrZkWQogBDG3HGXNdU4MAWCyiYlyinIBpPpoAJZSzpGLmWbMWh28+RJS6AQX6KHrK1o2uw==',
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2SKo/HMFZeBml1AF3XijzrxrfQXdJzjePBZAbdxqKR1Mc6juRHXij6HXYPjlAk01BhF1S3Ll4Lwi0cAHhggf457sMg55UWyeGKeUv0ucgvCpBwlR5cQ020i0MgzjPWOLWq1rtvSbNcAi2ZEVn6+Q2EcHo3wUvWRtLeKz+DZSZfw2PEDC+DGPJPl7f8g7zl56YymmmzH9liZLNrzg/qidokUv5u1pdGrcpLuPNeTODk0cqKB+OUbuKj9GShYECCEjaybJDl9276oalL9ghBtSeEv20kugatTvYy590wFlJkkvyl+nPxIH0EEYMKK9XRWlu9XYnoSfboiwcv8M3SlsjAgMBAAE='
}
const testIdHex = '1220151ab1658d8294ab34b71d5582cfe20d06414212f440a69366f1bc31deb5c72d'
const testIdBytes = new Buffer('1220151ab1658d8294ab34b71d5582cfe20d06414212f440a69366f1bc31deb5c72d', 'hex')
const testIdB58String = 'QmQ2zigjQikYnyYUSXZydNXrDRhBut2mubwJBaLXobMt3A'
describe('id', () => {
it('create a new id', done => {
//this will always be randomly generated. is there something i can test it against?
var id = PeerId.create()
done()
})
it('recreate an Id from Hex string', done =>{
var id = PeerId.createFromHexString(testIdHex)
expect(testIdBytes).to.deep.equal(id.id)
done()
})
it('Recreate an Id from a Buffer', done =>{
var id = PeerId.createFromBytes(testIdBytes)
expect(testId.id).to.equal(id.toHexString())
done()
})
it('Recreate an B58 String', done =>{
var id = PeerId.createFromB58String(testIdB58String)
expect(testIdB58String).to.equal(id.toB58String())
done()
})
it('Recreate from a Public Key', done =>{
var id = PeerId.createFromPubKey(testId.pubKey)
expect(testIdB58String).to.equal(id.toB58String())
done()
})
it('Recreate from a Private Key', done =>{
var id = PeerId.createFromPrivKey(testId.privKey)
expect(testIdB58String).to.equal(id.toB58String())
done()
})
})