mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 03:55:55 +01:00
Post queue (#5878)
* #5876 * add user to post queue table * add time of post into queue add posting restrictions to queue * fix shouldQueueLogic for guests * add test for post-queue route
This commit is contained in:
committed by
GitHub
parent
1864a50826
commit
f161bbf956
@@ -12,6 +12,8 @@ var privileges = require('../src/privileges');
|
||||
var user = require('../src/user');
|
||||
var groups = require('../src/groups');
|
||||
var socketPosts = require('../src/socket.io/posts');
|
||||
var socketTopics = require('../src/socket.io/topics');
|
||||
var meta = require('../src/meta');
|
||||
|
||||
describe('Post\'s', function () {
|
||||
var voterUid;
|
||||
@@ -296,7 +298,6 @@ describe('Post\'s', function () {
|
||||
var pid;
|
||||
var replyPid;
|
||||
var tid;
|
||||
var meta = require('../src/meta');
|
||||
before(function (done) {
|
||||
topics.post({
|
||||
uid: voterUid,
|
||||
@@ -553,7 +554,6 @@ describe('Post\'s', function () {
|
||||
});
|
||||
|
||||
it('should parse signature and remove links and images', function (done) {
|
||||
var meta = require('../src/meta');
|
||||
meta.config['signatures:disableLinks'] = 1;
|
||||
meta.config['signatures:disableImages'] = 1;
|
||||
var userData = {
|
||||
@@ -749,4 +749,76 @@ describe('Post\'s', function () {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('post queue', function () {
|
||||
var uid;
|
||||
before(function (done) {
|
||||
meta.config.postQueue = 1;
|
||||
user.create({ username: 'newuser' }, function (err, _uid) {
|
||||
assert.ifError(err);
|
||||
uid = _uid;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
meta.config.postQueue = 0;
|
||||
done();
|
||||
});
|
||||
|
||||
it('should add topic to post queue', function (done) {
|
||||
socketTopics.post({ uid: uid }, { title: 'should be queued', content: 'queued topic content', cid: cid }, function (err, result) {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(result.queued, true);
|
||||
assert.equal(result.message, '[[success:post-queued]]');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should add reply to post queue', function (done) {
|
||||
socketPosts.reply({ uid: uid }, { content: 'this is a queued reply', tid: topicData.tid }, function (err, result) {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(result.queued, true);
|
||||
assert.equal(result.message, '[[success:post-queued]]');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should get queued posts and submit', function (done) {
|
||||
var ids;
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
db.getSortedSetRange('post:queue', 0, -1, next);
|
||||
},
|
||||
function (_ids, next) {
|
||||
ids = _ids;
|
||||
var keys = ids.map(function (id) {
|
||||
return 'post:queue:' + id;
|
||||
});
|
||||
db.getObjects(keys, next);
|
||||
},
|
||||
function (data, next) {
|
||||
data.forEach(function (data) {
|
||||
data.data = JSON.parse(data.data);
|
||||
});
|
||||
assert.equal(data[0].type, 'topic');
|
||||
assert.equal(data[0].data.content, 'queued topic content');
|
||||
assert.equal(data[1].type, 'reply');
|
||||
assert.equal(data[1].data.content, 'this is a queued reply');
|
||||
|
||||
socketPosts.accept({ uid: globalModUid }, { id: ids[0] }, next);
|
||||
},
|
||||
function (next) {
|
||||
socketPosts.accept({ uid: globalModUid }, { id: ids[1] }, next);
|
||||
},
|
||||
], done);
|
||||
});
|
||||
|
||||
it('should prevent regular users from approving posts', function (done) {
|
||||
socketPosts.accept({ uid: uid }, { id: 1 }, function (err) {
|
||||
assert.equal(err.message, '[[error:no-privileges]]');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user