From dd880b531e61fc30eb221d029473d470b6640657 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Fri, 6 Oct 2017 10:25:27 -0600 Subject: [PATCH 1/4] feat: add progress bar tests --- src/files.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/src/files.js b/src/files.js index 28f57e49..793a5c2e 100644 --- a/src/files.js +++ b/src/files.js @@ -145,6 +145,28 @@ module.exports = (common) => { }) }) + it('BIG buffer with progress', (done) => { + const expectedMultihash = 'Qme79tX2bViL26vNjPsF3DP1R9rMKMvnPYJiKTTKPrXJjq' + + let progCount = 0 + let progress = 0 + const handler = (p) => { + progCount += 1 + progress = p + } + + ipfs.files.add(bigFile, {progress: handler}, (err, res) => { + expect(err).to.not.exist() + expect(res).to.have.length(1) + const file = res[0] + expect(file.hash).to.equal(expectedMultihash) + expect(file.path).to.equal(file.hash) + expect(progCount).to.equal(58) + expect(progress).to.equal(57792) + done() + }) + }) + it('add a nested dir as array', (done) => { // Needs https://github.com/ipfs/js-ipfs-api/issues/339 to be fixed // for js-ipfs-api + go-ipfs @@ -232,6 +254,52 @@ module.exports = (common) => { }) }) + it('add a nested dir as array with progress', (done) => { + // Needs https://github.com/ipfs/js-ipfs-api/issues/339 to be fixed + // for js-ipfs-api + go-ipfs + if (!isNode) { return done() } + + const content = (name) => ({ + path: `test-folder/${name}`, + content: directoryContent[name] + }) + + const emptyDir = (name) => ({ + path: `test-folder/${name}` + }) + + const expectedRootMultihash = 'QmVvjDy7yF7hdnqE8Hrf4MHo5ABDtb5AbX6hWbD3Y42bXP' + + const dirs = [ + content('pp.txt'), + content('holmes.txt'), + content('jungle.txt'), + content('alice.txt'), + emptyDir('empty-folder'), + content('files/hello.txt'), + content('files/ipfs.txt'), + emptyDir('files/empty') + ] + + let progCount = 0 + let progress = 0 + const handler = (p) => { + progCount += 1 + progress = p + } + + ipfs.files.add(dirs, {progress: handler}, (err, res) => { + expect(err).to.not.exist() + const root = res[res.length - 1] + + expect(root.path).to.equal('test-folder') + expect(root.hash).to.equal(expectedRootMultihash) + expect(progCount).to.equal(8) + expect(progress).to.equal(5) + done() + }) + }) + describe('.createAddStream', () => { it('stream of valid files and dirs', (done) => { const content = (name) => ({ From c31253922577d0bc4836ec254bee70a028fbce15 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Tue, 10 Oct 2017 00:08:50 -0600 Subject: [PATCH 2/4] feat: fixing progress bar tests --- src/files.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/files.js b/src/files.js index 793a5c2e..9a79c60a 100644 --- a/src/files.js +++ b/src/files.js @@ -152,7 +152,7 @@ module.exports = (common) => { let progress = 0 const handler = (p) => { progCount += 1 - progress = p + progress += p } ipfs.files.add(bigFile, {progress: handler}, (err, res) => { @@ -162,7 +162,7 @@ module.exports = (common) => { expect(file.hash).to.equal(expectedMultihash) expect(file.path).to.equal(file.hash) expect(progCount).to.equal(58) - expect(progress).to.equal(57792) + expect(progress).to.equal(bigFile.byteLength) done() }) }) @@ -281,11 +281,15 @@ module.exports = (common) => { emptyDir('files/empty') ] + const total = dirs.reduce((i, entry) => { + return i + (entry.content ? entry.content.length : 0) + }, 0) + let progCount = 0 let progress = 0 const handler = (p) => { progCount += 1 - progress = p + progress += p } ipfs.files.add(dirs, {progress: handler}, (err, res) => { @@ -295,7 +299,7 @@ module.exports = (common) => { expect(root.path).to.equal('test-folder') expect(root.hash).to.equal(expectedRootMultihash) expect(progCount).to.equal(8) - expect(progress).to.equal(5) + expect(progress).to.equal(total) done() }) }) From 7751aa4e4c1232bba9dfc6e34c996977d3855be8 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Wed, 18 Oct 2017 05:22:16 -0700 Subject: [PATCH 3/4] fix: consistent tests across js-ipfs and go-ipfs progress --- src/files.js | 80 +++------------------------------------------------- 1 file changed, 4 insertions(+), 76 deletions(-) diff --git a/src/files.js b/src/files.js index 9a79c60a..efff1544 100644 --- a/src/files.js +++ b/src/files.js @@ -130,32 +130,10 @@ module.exports = (common) => { let progress = 0 const handler = (p) => { progCount += 1 - progress += p + progress = p } - ipfs.files.add(bigFile, {progress: handler}, (err, res) => { - expect(err).to.not.exist() - expect(res).to.have.length(1) - const file = res[0] - expect(file.hash).to.equal(expectedMultihash) - expect(file.path).to.equal(file.hash) - expect(progCount).to.equal(58) - expect(progress).to.equal(bigFile.byteLength) - done() - }) - }) - - it('BIG buffer with progress', (done) => { - const expectedMultihash = 'Qme79tX2bViL26vNjPsF3DP1R9rMKMvnPYJiKTTKPrXJjq' - - let progCount = 0 - let progress = 0 - const handler = (p) => { - progCount += 1 - progress += p - } - - ipfs.files.add(bigFile, {progress: handler}, (err, res) => { + ipfs.files.add(bigFile, { progress: handler }, (err, res) => { expect(err).to.not.exist() expect(res).to.have.length(1) const file = res[0] @@ -242,64 +220,14 @@ module.exports = (common) => { progress += p } - ipfs.files.add(dirs, {progress: handler}, (err, res) => { - expect(err).to.not.exist() - const root = res[res.length - 1] - - expect(root.path).to.equal('test-folder') - expect(root.hash).to.equal(expectedRootMultihash) - expect(progCount).to.equal(8) - expect(progress).to.equal(total) - done() - }) - }) - - it('add a nested dir as array with progress', (done) => { - // Needs https://github.com/ipfs/js-ipfs-api/issues/339 to be fixed - // for js-ipfs-api + go-ipfs - if (!isNode) { return done() } - - const content = (name) => ({ - path: `test-folder/${name}`, - content: directoryContent[name] - }) - - const emptyDir = (name) => ({ - path: `test-folder/${name}` - }) - - const expectedRootMultihash = 'QmVvjDy7yF7hdnqE8Hrf4MHo5ABDtb5AbX6hWbD3Y42bXP' - - const dirs = [ - content('pp.txt'), - content('holmes.txt'), - content('jungle.txt'), - content('alice.txt'), - emptyDir('empty-folder'), - content('files/hello.txt'), - content('files/ipfs.txt'), - emptyDir('files/empty') - ] - - const total = dirs.reduce((i, entry) => { - return i + (entry.content ? entry.content.length : 0) - }, 0) - - let progCount = 0 - let progress = 0 - const handler = (p) => { - progCount += 1 - progress += p - } - - ipfs.files.add(dirs, {progress: handler}, (err, res) => { + ipfs.files.add(dirs, { progress: handler }, (err, res) => { expect(err).to.not.exist() const root = res[res.length - 1] expect(root.path).to.equal('test-folder') expect(root.hash).to.equal(expectedRootMultihash) expect(progCount).to.equal(8) - expect(progress).to.equal(total) + expect(progress).to.be.at.least(total) done() }) }) From 5c0f00ce802f3b8d995173877fa8355ec0cc53a1 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Wed, 18 Oct 2017 06:14:17 -0700 Subject: [PATCH 4/4] fix: rename progress acumulators for clarity --- src/files.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/files.js b/src/files.js index efff1544..09d91e3d 100644 --- a/src/files.js +++ b/src/files.js @@ -127,10 +127,10 @@ module.exports = (common) => { const expectedMultihash = 'Qme79tX2bViL26vNjPsF3DP1R9rMKMvnPYJiKTTKPrXJjq' let progCount = 0 - let progress = 0 + let accumProgress = 0 const handler = (p) => { progCount += 1 - progress = p + accumProgress = p } ipfs.files.add(bigFile, { progress: handler }, (err, res) => { @@ -140,7 +140,7 @@ module.exports = (common) => { expect(file.hash).to.equal(expectedMultihash) expect(file.path).to.equal(file.hash) expect(progCount).to.equal(58) - expect(progress).to.equal(bigFile.byteLength) + expect(accumProgress).to.equal(bigFile.byteLength) done() }) }) @@ -214,10 +214,10 @@ module.exports = (common) => { }, 0) let progCount = 0 - let progress = 0 + let accumProgress = 0 const handler = (p) => { progCount += 1 - progress += p + accumProgress += p } ipfs.files.add(dirs, { progress: handler }, (err, res) => { @@ -227,7 +227,7 @@ module.exports = (common) => { expect(root.path).to.equal('test-folder') expect(root.hash).to.equal(expectedRootMultihash) expect(progCount).to.equal(8) - expect(progress).to.be.at.least(total) + expect(accumProgress).to.be.at.least(total) done() }) })