diff --git a/API/generic/README.md b/API/generic/README.md new file mode 100644 index 00000000..6c7e17c6 --- /dev/null +++ b/API/generic/README.md @@ -0,0 +1,48 @@ +Generic API +=========== + +#### `id` + +> Returns the identity of the Peer + +##### `Go` **WIP** + +##### `JavaScript` - ipfs.id([callback]) + +`callback` must follow `function (err, identity) {}` signature, where `err` is an error if the operation was not successful. `identity` is an object with the Peer identity. + +If no `callback` is passed, a promise is returned. + +Example: + +```js +ipfs.id(function (err, identity) { + if (err) { + throw err + } + console.log(identity) +}) +``` + +#### `version` + +> Returns the implementation version + +##### `Go` **WIP** + +##### `JavaScript` - ipfs.version([callback]) + +`callback` must follow `function (err, version) {}` signature, where `err` is an error if the operation was not successful. `version` is an object with the version of the implementation, the commit and the Repo. + +If no `callback` is passed, a promise is returned. + +Example: + +```js +ipfs.version(function (err, version) { + if (err) { + throw err + } + console.log(version) +}) +``` diff --git a/package.json b/package.json index 0b474f16..11319ca6 100644 --- a/package.json +++ b/package.json @@ -47,4 +47,4 @@ "greenkeeperio-bot ", "nginnever " ] -} \ No newline at end of file +} diff --git a/src/generic.js b/src/generic.js new file mode 100644 index 00000000..809b8f56 --- /dev/null +++ b/src/generic.js @@ -0,0 +1,72 @@ +/* eslint-env mocha */ +/* eslint max-nested-callbacks: ["error", 8] */ + +'use strict' + +const expect = require('chai').expect + +module.exports = (common) => { + describe('.generic', () => { + let ipfs + + before(function (done) { + // CI takes longer to instantiate the daemon, + // so we need to increase the timeout for the + // before step + this.timeout(20 * 1000) + + common.setup((err, factory) => { + expect(err).to.not.exist + factory.spawnNode((err, node) => { + expect(err).to.not.exist + ipfs = node + done() + }) + }) + }) + + after((done) => { + common.teardown(done) + }) + + describe('callback API', () => { + it('.id', (done) => { + ipfs.id((err, res) => { + expect(err).to.not.exist + expect(res).to.have.a.property('id') + expect(res).to.have.a.property('publicKey') + done() + }) + }) + + it('.version', (done) => { + ipfs.version((err, result) => { + expect(err).to.not.exist + expect(result).to.have.a.property('version') + expect(result).to.have.a.property('commit') + expect(result).to.have.a.property('repo') + done() + }) + }) + }) + + describe('promise API', () => { + it('.id', () => { + return ipfs.id() + .then((res) => { + expect(res).to.have.a.property('id') + expect(res).to.have.a.property('publicKey') + }) + }) + + it('.version', () => { + return ipfs.version() + .then((result) => { + expect(result).to.have.a.property('version') + expect(result).to.have.a.property('commit') + expect(result).to.have.a.property('repo') + }) + }) + }) + }) +} diff --git a/src/index.js b/src/index.js index 38d0b50b..62cfa057 100644 --- a/src/index.js +++ b/src/index.js @@ -4,3 +4,4 @@ exports.object = require('./object') exports.files = require('./files') exports.config = require('./config') exports.pin = require('./pin') +exports.generic = require('./generic')