Merge remote-tracking branch 'refs/remotes/origin/master' into develop

This commit is contained in:
Baris Usakli
2017-08-15 13:00:18 -04:00
21 changed files with 504 additions and 6 deletions

View File

@@ -424,6 +424,31 @@ describe('Admin Controllers', function () {
});
});
it('should load /admin/manage/post-queue', function (done) {
request(nconf.get('url') + '/api/admin/manage/post-queue', { jar: jar, json: true }, function (err, res, body) {
assert.ifError(err);
assert(body);
done();
});
});
it('/post-queue should 404 for regular user', function (done) {
request(nconf.get('url') + '/api/post-queue', { json: true }, function (err, res, body) {
assert.ifError(err);
assert(body);
assert.equal(res.statusCode, 404);
done();
});
});
it('should load /post-queue', function (done) {
request(nconf.get('url') + '/api/post-queue', { jar: jar, json: true }, function (err, res, body) {
assert.ifError(err);
assert(body);
done();
});
});
it('should load /admin/manage/ip-blacklist', function (done) {
request(nconf.get('url') + '/api/admin/manage/ip-blacklist', { jar: jar, json: true }, function (err, res, body) {
assert.ifError(err);

View File

@@ -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();
});
});
});
});