Skip to content
This repository has been archived by the owner on Dec 6, 2022. It is now read-only.

feat: add util.cid options #18

Merged
merged 3 commits into from
Jun 25, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,16 @@ const deserialize = (binaryBlob, callback) => {
* Get the CID of the DAG-Node.
*
* @param {BitcoinBlock} dagNode - Internal representation of a Bitcoin block
* @param {Object} [options] - Ignored
* @param {CidCallback} callback - Callback that handles the return value
* @returns {void}
*/
const cid = (dagNode, callback) => {
const cid = (dagNode, options, callback) => {
if (options instanceof Function) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Searching through the existing IPFS/IPLD code base it seems that the preferred way for checking if something is a function is: if (typeof options !== 'function') {. My guess is that it is related to code minifiers. Please change it.

callback = options
options = {}
}
options = options || {}
let err = null
let cid
try {
Expand Down
19 changes: 19 additions & 0 deletions test/util.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,17 @@ describe('IPLD format util API cid()', () => {
done()
})
})

it('should encode the CID correctly and ignore all options', (done) => {
IpldBitcoin.util.deserialize(fixtureBlock, (err, dagNode) => {
expect(err).to.not.exist()
verifyCid1(
dagNode,
{ hashAlg: 'unknown' },
'56203ec2c691d447b2fd0d6a94742345af1f351037dab1ab9e900200000000000000',
done)
})
})
})

const verifyBlock = (dagNode, expected) => {
Expand All @@ -168,3 +179,11 @@ const verifyCid = (dagNode, expectedCid, doneCb) => {
doneCb()
})
}

const verifyCid1 = (dagNode, options, expectedCid, doneCb) => {
IpldBitcoin.util.cid(dagNode, options, (err, cid) => {
expect(err).to.not.exist()
expect(cid.multihash.toString('hex')).to.equal(expectedCid)
doneCb()
})
}