mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 19:46:01 +01:00
* axios migration * controller tests * add missing deps * feeds * remove unused async * flags * locale-detect * messaging/middleware * remove log * meta * plugins * posts * search * topics/thumbs * user/emails * uploads.js * socket.io * cleaunup * test native fetch * cleanup * increase engine to 18 fix remaining tests * remove testing file * fix comments,typo * revert debug
This commit is contained in:
committed by
GitHub
parent
451430006e
commit
c15bdd4cf0
118
test/posts.js
118
test/posts.js
@@ -2,8 +2,7 @@
|
||||
|
||||
|
||||
const assert = require('assert');
|
||||
const async = require('async');
|
||||
const request = require('request-promise-native');
|
||||
|
||||
const nconf = require('nconf');
|
||||
const path = require('path');
|
||||
const util = require('util');
|
||||
@@ -24,6 +23,7 @@ const meta = require('../src/meta');
|
||||
const file = require('../src/file');
|
||||
const helpers = require('./helpers');
|
||||
const utils = require('../src/utils');
|
||||
const request = require('../src/request');
|
||||
|
||||
describe('Post\'s', () => {
|
||||
let voterUid;
|
||||
@@ -33,52 +33,26 @@ describe('Post\'s', () => {
|
||||
let topicData;
|
||||
let cid;
|
||||
|
||||
before((done) => {
|
||||
async.series({
|
||||
voterUid: function (next) {
|
||||
user.create({ username: 'upvoter' }, next);
|
||||
},
|
||||
voteeUid: function (next) {
|
||||
user.create({ username: 'upvotee' }, next);
|
||||
},
|
||||
globalModUid: function (next) {
|
||||
user.create({ username: 'globalmod', password: 'globalmodpwd' }, next);
|
||||
},
|
||||
category: function (next) {
|
||||
categories.create({
|
||||
name: 'Test Category',
|
||||
description: 'Test category created by testing script',
|
||||
}, next);
|
||||
},
|
||||
}, (err, results) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
before(async () => {
|
||||
voterUid = await user.create({ username: 'upvoter' });
|
||||
voteeUid = await user.create({ username: 'upvotee' });
|
||||
globalModUid = await user.create({ username: 'globalmod', password: 'globalmodpwd' });
|
||||
({ cid } = await categories.create({
|
||||
name: 'Test Category',
|
||||
description: 'Test category created by testing script',
|
||||
}));
|
||||
|
||||
voterUid = results.voterUid;
|
||||
voteeUid = results.voteeUid;
|
||||
globalModUid = results.globalModUid;
|
||||
cid = results.category.cid;
|
||||
|
||||
topics.post({
|
||||
uid: results.voteeUid,
|
||||
cid: results.category.cid,
|
||||
title: 'Test Topic Title',
|
||||
content: 'The content of test topic',
|
||||
}, (err, data) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
postData = data.postData;
|
||||
topicData = data.topicData;
|
||||
|
||||
groups.join('Global Moderators', globalModUid, done);
|
||||
});
|
||||
});
|
||||
({ topicData, postData } = await topics.post({
|
||||
uid: voteeUid,
|
||||
cid: cid,
|
||||
title: 'Test Topic Title',
|
||||
content: 'The content of test topic',
|
||||
}));
|
||||
await groups.join('Global Moderators', globalModUid);
|
||||
});
|
||||
|
||||
it('should update category teaser properly', async () => {
|
||||
const getCategoriesAsync = async () => await request(`${nconf.get('url')}/api/categories`, { json: true });
|
||||
const getCategoriesAsync = async () => (await request.get(`${nconf.get('url')}/api/categories`, { })).body;
|
||||
const postResult = await topics.post({ uid: globalModUid, cid: cid, title: 'topic title', content: '123456789' });
|
||||
|
||||
let data = await getCategoriesAsync();
|
||||
@@ -372,24 +346,14 @@ describe('Post\'s', () => {
|
||||
assert.strictEqual(isDeleted, 1);
|
||||
});
|
||||
|
||||
it('should not see post content if global mod does not have posts:view_deleted privilege', (done) => {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
user.create({ username: 'global mod', password: '123456' }, next);
|
||||
},
|
||||
function (uid, next) {
|
||||
groups.join('Global Moderators', uid, next);
|
||||
},
|
||||
function (next) {
|
||||
privileges.categories.rescind(['groups:posts:view_deleted'], cid, 'Global Moderators', next);
|
||||
},
|
||||
async () => {
|
||||
const { jar } = await helpers.loginUser('global mod', '123456');
|
||||
const { posts } = await request(`${nconf.get('url')}/api/topic/${tid}`, { jar, json: true });
|
||||
assert.equal(posts[1].content, '[[topic:post-is-deleted]]');
|
||||
await privileges.categories.give(['groups:posts:view_deleted'], cid, 'Global Moderators');
|
||||
},
|
||||
], done);
|
||||
it('should not see post content if global mod does not have posts:view_deleted privilege', async () => {
|
||||
const uid = await user.create({ username: 'global mod', password: '123456' });
|
||||
await groups.join('Global Moderators', uid);
|
||||
await privileges.categories.rescind(['groups:posts:view_deleted'], cid, 'Global Moderators');
|
||||
const { jar } = await helpers.loginUser('global mod', '123456');
|
||||
const { body } = await request.get(`${nconf.get('url')}/api/topic/${tid}`, { jar });
|
||||
assert.equal(body.posts[1].content, '[[topic:post-is-deleted]]');
|
||||
await privileges.categories.give(['groups:posts:view_deleted'], cid, 'Global Moderators');
|
||||
});
|
||||
|
||||
it('should restore a post', async () => {
|
||||
@@ -1013,7 +977,8 @@ describe('Post\'s', () => {
|
||||
|
||||
it('should load queued posts', async () => {
|
||||
({ jar } = await helpers.loginUser('globalmod', 'globalmodpwd'));
|
||||
const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
|
||||
const { body } = await request.get(`${nconf.get('url')}/api/post-queue`, { jar });
|
||||
const { posts } = body;
|
||||
assert.equal(posts[0].type, 'topic');
|
||||
assert.equal(posts[0].data.content, 'queued topic content');
|
||||
assert.equal(posts[1].type, 'reply');
|
||||
@@ -1029,21 +994,24 @@ describe('Post\'s', () => {
|
||||
|
||||
it('should edit post in queue', async () => {
|
||||
await socketPosts.editQueuedContent({ uid: globalModUid }, { id: queueId, content: 'newContent' });
|
||||
const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
|
||||
const { body } = await request.get(`${nconf.get('url')}/api/post-queue`, { jar });
|
||||
const { posts } = body;
|
||||
assert.equal(posts[1].type, 'reply');
|
||||
assert.equal(posts[1].data.content, 'newContent');
|
||||
});
|
||||
|
||||
it('should edit topic title in queue', async () => {
|
||||
await socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, title: 'new topic title' });
|
||||
const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
|
||||
const { body } = await request.get(`${nconf.get('url')}/api/post-queue`, { jar });
|
||||
const { posts } = body;
|
||||
assert.equal(posts[0].type, 'topic');
|
||||
assert.equal(posts[0].data.title, 'new topic title');
|
||||
});
|
||||
|
||||
it('should edit topic category in queue', async () => {
|
||||
await socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, cid: 2 });
|
||||
const { posts } = await request(`${nconf.get('url')}/api/post-queue`, { jar: jar, json: true });
|
||||
const { body } = await request.get(`${nconf.get('url')}/api/post-queue`, { jar });
|
||||
const { posts } = body;
|
||||
assert.equal(posts[0].type, 'topic');
|
||||
assert.equal(posts[0].data.cid, 2);
|
||||
await socketPosts.editQueuedContent({ uid: globalModUid }, { id: topicQueueId, cid: cid });
|
||||
@@ -1063,20 +1031,10 @@ describe('Post\'s', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should accept queued posts and submit', (done) => {
|
||||
let ids;
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
db.getSortedSetRange('post:queue', 0, -1, next);
|
||||
},
|
||||
function (_ids, next) {
|
||||
ids = _ids;
|
||||
socketPosts.accept({ uid: globalModUid }, { id: ids[0] }, next);
|
||||
},
|
||||
function (next) {
|
||||
socketPosts.accept({ uid: globalModUid }, { id: ids[1] }, next);
|
||||
},
|
||||
], done);
|
||||
it('should accept queued posts and submit', async () => {
|
||||
const ids = await db.getSortedSetRange('post:queue', 0, -1);
|
||||
await socketPosts.accept({ uid: globalModUid }, { id: ids[0] });
|
||||
await socketPosts.accept({ uid: globalModUid }, { id: ids[1] });
|
||||
});
|
||||
|
||||
it('should not crash if id does not exist', (done) => {
|
||||
|
||||
Reference in New Issue
Block a user