Skip to content
This repository has been archived by the owner on Mar 10, 2020. It is now read-only.

Commit

Permalink
fix: ipns over pubsub tests (#395)
Browse files Browse the repository at this point in the history
  • Loading branch information
vasco-santos authored and Alan Shaw committed Dec 3, 2018
1 parent 0d7b447 commit e872b8a
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 56 deletions.
59 changes: 30 additions & 29 deletions js/src/name-pubsub/cancel.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,12 @@
/* eslint-env mocha */
'use strict'

const series = require('async/series')
const loadFixture = require('aegir/fixtures')
const auto = require('async/auto')
const PeerId = require('peer-id')

const { spawnNodeWithId } = require('../utils/spawn')
const { getDescribe, getIt, expect } = require('../utils/mocha')

const fixture = Object.freeze({
data: loadFixture('js/test/fixtures/testfile.txt', 'interface-ipfs-core')
})

module.exports = (createCommon, options) => {
const describe = getDescribe(options)
const it = getIt(options)
Expand All @@ -20,7 +16,6 @@ module.exports = (createCommon, options) => {
describe('.name.pubsub.cancel', function () {
let ipfs
let nodeId
let value

before(function (done) {
// CI takes longer to instantiate the daemon, so we need to increase the
Expand All @@ -36,12 +31,7 @@ module.exports = (createCommon, options) => {
ipfs = node
nodeId = node.peerId.id

ipfs.add(fixture.data, { pin: false }, (err, res) => {
expect(err).to.not.exist()

value = res[0].path
done()
})
done()
})
})
})
Expand All @@ -63,24 +53,35 @@ module.exports = (createCommon, options) => {

it('should cancel a subscription correctly returning true', function (done) {
this.timeout(300 * 1000)
const ipnsPath = `/ipns/${nodeId}`

series([
(cb) => ipfs.name.pubsub.subs(cb),
(cb) => ipfs.name.publish(value, { resolve: false }, cb),
(cb) => ipfs.name.resolve(nodeId, cb),
(cb) => ipfs.name.pubsub.subs(cb),
(cb) => ipfs.name.pubsub.cancel(ipnsPath, cb),
(cb) => ipfs.name.pubsub.subs(cb)
], (err, res) => {

PeerId.create({ bits: 512 }, (err, peerId) => {
expect(err).to.not.exist()
expect(res).to.exist()
expect(res[0]).to.eql([]) // initally empty
expect(res[4]).to.have.property('canceled')
expect(res[4].canceled).to.eql(true)
expect(res[5]).to.be.an('array').that.does.not.include(ipnsPath)

done()
const id = peerId.toB58String()
const ipnsPath = `/ipns/${id}`

ipfs.name.pubsub.subs((err, res) => {
expect(err).to.not.exist()
expect(res).to.be.an('array').that.does.not.include(ipnsPath)

ipfs.name.resolve(id, (err) => {
expect(err).to.exist()
auto({
subs1: (cb) => ipfs.name.pubsub.subs(cb),
cancel: ['subs1', (_, cb) => ipfs.name.pubsub.cancel(ipnsPath, cb)],
subs2: ['cancel', (_, cb) => ipfs.name.pubsub.subs(cb)]
}, (err, res) => {
expect(err).to.not.exist()
expect(res).to.exist()
expect(res.subs1).to.be.an('array').that.does.include(ipnsPath)
expect(res.cancel).to.have.property('canceled')
expect(res.cancel.canceled).to.eql(true)
expect(res.subs2).to.be.an('array').that.does.not.include(ipnsPath)

done()
})
})
})
})
})
})
Expand Down
41 changes: 14 additions & 27 deletions js/src/name-pubsub/subs.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,16 @@
/* eslint-env mocha */
'use strict'

const series = require('async/series')
const loadFixture = require('aegir/fixtures')

const { spawnNodeWithId } = require('../utils/spawn')
const { getDescribe, getIt, expect } = require('../utils/mocha')

const fixture = Object.freeze({
data: loadFixture('js/test/fixtures/testfile.txt', 'interface-ipfs-core')
})

module.exports = (createCommon, options) => {
const describe = getDescribe(options)
const it = getIt(options)
const common = createCommon()

describe('.name.pubsub.subs', function () {
let ipfs
let nodeId
let value

before(function (done) {
// CI takes longer to instantiate the daemon, so we need to increase the
Expand All @@ -34,14 +25,7 @@ module.exports = (createCommon, options) => {
expect(err).to.not.exist()

ipfs = node
nodeId = node.peerId.id

ipfs.add(fixture.data, { pin: false }, (err, res) => {
expect(err).to.not.exist()

value = res[0].path
done()
})
done()
})
})
})
Expand All @@ -62,19 +46,22 @@ module.exports = (createCommon, options) => {

it('should get the list of subscriptions updated after a resolve', function (done) {
this.timeout(300 * 1000)
const id = 'QmNP1ASen5ZREtiJTtVD3jhMKhoPb1zppET1tgpjHx2NGA'

series([
(cb) => ipfs.name.pubsub.subs(cb),
(cb) => ipfs.name.publish(value, { resolve: false }, cb),
(cb) => ipfs.name.resolve(nodeId, cb),
(cb) => ipfs.name.pubsub.subs(cb)
], (err, res) => {
ipfs.name.pubsub.subs((err, res) => {
expect(err).to.not.exist()
expect(res).to.exist()
expect(res[0]).to.eql([]) // initally empty
expect(res[3]).to.be.an('array').that.does.include(`/ipns/${nodeId}`)
expect(res).to.eql([]) // initally empty

done()
ipfs.name.resolve(id, (err) => {
expect(err).to.exist()

ipfs.name.pubsub.subs((err, res) => {
expect(err).to.not.exist()
expect(res).to.be.an('array').that.does.include(`/ipns/${id}`)

done()
})
})
})
})
})
Expand Down

0 comments on commit e872b8a

Please sign in to comment.