mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	post tests
This commit is contained in:
		| @@ -31,25 +31,26 @@ SocketPosts.reply = function (socket, data, callback) { | ||||
| 	data.req = websockets.reqFromSocket(socket); | ||||
| 	data.timestamp = Date.now(); | ||||
|  | ||||
| 	topics.reply(data, function (err, postData) { | ||||
| 		if (err) { | ||||
| 			return callback(err); | ||||
| 	async.waterfall([ | ||||
| 		function (next) { | ||||
| 			topics.reply(data, next); | ||||
| 		}, | ||||
| 		function (postData, next) { | ||||
| 			var result = { | ||||
| 				posts: [postData], | ||||
| 				'reputation:disabled': parseInt(meta.config['reputation:disabled'], 10) === 1, | ||||
| 				'downvote:disabled': parseInt(meta.config['downvote:disabled'], 10) === 1, | ||||
| 			}; | ||||
|  | ||||
| 			next(null, postData); | ||||
|  | ||||
| 			websockets.in('uid_' + socket.uid).emit('event:new_post', result); | ||||
|  | ||||
| 			user.updateOnlineUsers(socket.uid); | ||||
|  | ||||
| 			socketHelpers.notifyNew(socket.uid, 'newPost', result); | ||||
| 		} | ||||
|  | ||||
| 		var result = { | ||||
| 			posts: [postData], | ||||
| 			'reputation:disabled': parseInt(meta.config['reputation:disabled'], 10) === 1, | ||||
| 			'downvote:disabled': parseInt(meta.config['downvote:disabled'], 10) === 1, | ||||
| 		}; | ||||
|  | ||||
| 		callback(null, postData); | ||||
|  | ||||
| 		websockets.in('uid_' + socket.uid).emit('event:new_post', result); | ||||
|  | ||||
| 		user.updateOnlineUsers(socket.uid); | ||||
|  | ||||
| 		socketHelpers.notifyNew(socket.uid, 'newPost', result); | ||||
| 	}); | ||||
| 	], callback); | ||||
| }; | ||||
|  | ||||
| SocketPosts.getRawPost = function (socket, pid, callback) { | ||||
| @@ -120,7 +121,7 @@ SocketPosts.getPidIndex = function (socket, data, callback) { | ||||
|  | ||||
| SocketPosts.getReplies = function (socket, pid, callback) { | ||||
| 	if (!utils.isNumber(pid)) { | ||||
| 		return callback(new Error('[[error:invalid-data]')); | ||||
| 		return callback(new Error('[[error:invalid-data]]')); | ||||
| 	} | ||||
| 	var postPrivileges; | ||||
| 	async.waterfall([ | ||||
|   | ||||
							
								
								
									
										138
									
								
								test/posts.js
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								test/posts.js
									
									
									
									
									
								
							| @@ -755,6 +755,144 @@ describe('Post\'s', function () { | ||||
| 		}); | ||||
| 	}); | ||||
|  | ||||
| 	describe('socket methods', function () { | ||||
|  | ||||
| 		var pid; | ||||
| 		before(function (done) { | ||||
| 			topics.reply({ | ||||
| 				uid: voterUid, | ||||
| 				tid: topicData.tid, | ||||
| 				timestamp: Date.now(), | ||||
| 				content: 'raw content' | ||||
| 			}, function (err, postData) { | ||||
| 				assert.ifError(err); | ||||
| 				pid = postData.pid; | ||||
| 				privileges.categories.rescind(['read'], cid, 'guests', done); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		var socketPosts = require('../src/socket.io/posts'); | ||||
| 		it('should error with invalid data', function (done) { | ||||
| 			socketPosts.reply({uid: 0}, null, function (err) { | ||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should error with invalid tid', function (done) { | ||||
| 			socketPosts.reply({uid: 0}, {tid: 0, content: 'derp'}, function (err) { | ||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should fail to get raw post because of privilege', function (done) { | ||||
| 			socketPosts.getRawPost({uid: 0}, pid, function (err) { | ||||
| 				assert.equal(err.message, '[[error:no-privileges]]'); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should fail to get raw post because post is deleted', function (done) { | ||||
| 			posts.setPostField(pid, 'deleted', 1, function (err) { | ||||
| 				assert.ifError(err); | ||||
| 				socketPosts.getRawPost({uid: voterUid}, pid, function (err) { | ||||
| 					assert.equal(err.message, '[[error:no-post]]'); | ||||
| 					done(); | ||||
| 				}); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should get raw post content', function (done) { | ||||
| 			posts.setPostField(pid, 'deleted', 0, function (err) { | ||||
| 				assert.ifError(err); | ||||
| 				socketPosts.getRawPost({uid: voterUid}, pid, function (err, postContent) { | ||||
| 					assert.ifError(err); | ||||
| 					assert.equal(postContent, 'raw content'); | ||||
| 					done(); | ||||
| 				}); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should get post', function (done) { | ||||
| 			socketPosts.getPost({uid: voterUid}, pid, function (err, postData) { | ||||
| 				assert.ifError(err); | ||||
| 				assert(postData); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('shold error with invalid data', function (done) { | ||||
| 			socketPosts.loadMoreBookmarks({uid: voterUid}, {uid: voterUid, after: null}, function (err, postData) { | ||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should load more bookmarks', function (done) { | ||||
| 			socketPosts.loadMoreBookmarks({uid: voterUid}, {uid: voterUid, after: 0}, function (err, data) { | ||||
| 				assert.ifError(err); | ||||
| 				assert(data); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should load more user posts', function (done) { | ||||
| 			socketPosts.loadMoreUserPosts({uid: voterUid}, {uid: voterUid, after: 0}, function (err, data) { | ||||
| 				assert.ifError(err); | ||||
| 				assert(data); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should load more best posts', function (done) { | ||||
| 			socketPosts.loadMoreBestPosts({uid: voterUid}, {uid: voterUid, after: 0}, function (err, data) { | ||||
| 				assert.ifError(err); | ||||
| 				assert(data); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should load more up voted posts', function (done) { | ||||
| 			socketPosts.loadMoreUpVotedPosts({uid: voterUid}, {uid: voterUid, after: 0}, function (err, data) { | ||||
| 				assert.ifError(err); | ||||
| 				assert(data); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should load more down voted posts', function (done) { | ||||
| 			socketPosts.loadMoreDownVotedPosts({uid: voterUid}, {uid: voterUid, after: 0}, function (err, data) { | ||||
| 				assert.ifError(err); | ||||
| 				assert(data); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should get post category', function (done) { | ||||
| 			socketPosts.getCategory({uid: voterUid}, pid, function (err, postCid) { | ||||
| 				assert.ifError(err); | ||||
| 				assert.equal(cid, postCid); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should error with invalid data', function (done) { | ||||
| 			socketPosts.getPidIndex({uid: voterUid}, null, function (err) { | ||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should get pid index', function (done) { | ||||
| 			socketPosts.getPidIndex({uid: voterUid}, {pid: pid, tid: topicData.tid, topicPostSort: 'oldest-to-newest'}, function (err, index) { | ||||
| 				assert.ifError(err); | ||||
| 				assert.equal(index, 2); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
| 	}); | ||||
|  | ||||
| 	after(function (done) { | ||||
| 		db.emptydb(done); | ||||
| 	}); | ||||
|   | ||||
| @@ -130,6 +130,13 @@ describe('Topic\'s', function () { | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should error if pid is not a number', function (done) { | ||||
| 			socketPosts.getReplies({uid: 0}, 'abc', function (err) { | ||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | ||||
| 				done(); | ||||
| 			}); | ||||
| 		}); | ||||
|  | ||||
| 		it('should fail to create new reply with invalid user id', function (done) { | ||||
| 			topics.reply({uid: null, content: 'test post', tid: newTopic.tid}, function (err) { | ||||
| 				assert.equal(err.message, '[[error:no-privileges]]'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user