From db0ba920b7ccb81619c8a5f7714bbdea71e75caf Mon Sep 17 00:00:00 2001 From: JP Richardson Date: Wed, 21 Jan 2015 05:25:01 -0600 Subject: [PATCH] test/ncp/ncp: added a test that demonstrates flakey callback behavior in ncp --- test/ncp/ncp.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/test/ncp/ncp.js b/test/ncp/ncp.js index d1a3863..58b906b 100644 --- a/test/ncp/ncp.js +++ b/test/ncp/ncp.js @@ -190,6 +190,45 @@ describe('ncp', function () { }) }) }) + }) + + describe.skip('Issue 71: Odd Async Behaviors', function(cb){ + var fixtures = path.join(__dirname, 'regular-fixtures'), + src = path.join(fixtures, 'src'), + out = path.join(fixtures, 'out') + var totalCallbacks = 0 + function copyAssertAndCount(cb){ + // rimraf(out, function() { + ncp(src, out, function(err){ + totalCallbacks += 1 + readDirFiles(src, 'utf8', function (srcErr, srcFiles) { + readDirFiles(out, 'utf8', function (outErr, outFiles) { + assert.ifError(srcErr) + assert.deepEqual(srcFiles, outFiles) + cb() + }) + }) + }) + // }) + } + + describe('when copying a directory of files without cleaning the destination', function () { + it('callback fires once per run and directories are equal', function (cb) { + var expected = 10 + var count = 10 + (function next(){ + if (count > 0) { + count-- + setTimeout(function(){copyAssertAndCount(next)}, 100) + + } else { + console.log('Total callback count is', totalCallbacks) + assert.equal(totalCallbacks, expected) + cb() + } + }()) + }) + }) }) })