diff --git a/test/posts.js b/test/posts.js index 00c9aa01a3..24a2521b99 100644 --- a/test/posts.js +++ b/test/posts.js @@ -14,6 +14,8 @@ describe('Post\'s', function () { var voterUid; var voteeUid; var postData; + var topicData; + var cid; before(function (done) { async.parallel({ @@ -36,6 +38,7 @@ describe('Post\'s', function () { voterUid = results.voterUid; voteeUid = results.voteeUid; + cid = results.category.cid; topics.post({ uid: results.voteeUid, @@ -47,6 +50,7 @@ describe('Post\'s', function () { return done(err); } postData = data.postData; + topicData = data.topicData; done(); }); }); @@ -129,6 +133,58 @@ describe('Post\'s', function () { }); }); + describe('delete/restore/purge', function () { + var pid; + before(function (done) { + topics.reply({ + uid: voterUid, + tid: topicData.tid, + timestamp: Date.now(), + content: 'A post to delete/restore and purge' + }, function (err, data) { + assert.ifError(err); + pid = data.pid; + done(); + }); + }); + + it('should delete a post', function (done) { + posts.delete(pid, voterUid, function (err, postData) { + assert.ifError(err); + assert(postData); + posts.getPostField(pid, 'deleted', function (err, isDeleted) { + assert.ifError(err); + assert.equal(parseInt(isDeleted, 10), 1); + done(); + }); + }); + }); + + it('should restore a post', function (done) { + posts.restore(pid, voterUid, function (err, postData) { + assert.ifError(err); + assert(postData); + posts.getPostField(pid, 'deleted', function (err, isDeleted) { + assert.ifError(err); + assert.equal(parseInt(isDeleted, 10), 0); + done(); + }); + }); + }); + + it('should purge a post', function (done) { + posts.purge(pid, voterUid, function (err) { + assert.ifError(err); + assert.equal(arguments.length, 1); + posts.exists('post:' + pid, function (err, exists) { + assert.ifError(err); + assert.equal(exists, false); + done(); + }); + }); + }); + }); + after(function (done) { db.flushdb(done);