mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-26 16:46:12 +01:00 
			
		
		
		
	test: migrate socket.io groups tests to use api v3
This commit is contained in:
		| @@ -85,7 +85,7 @@ groupsAPI.listMembers = async (caller, data) => { | |||||||
| 	const { query } = data; | 	const { query } = data; | ||||||
| 	const after = parseInt(data.after || 0, 10); | 	const after = parseInt(data.after || 0, 10); | ||||||
| 	let response; | 	let response; | ||||||
| 	if (query) { | 	if (query && query.length) { | ||||||
| 		response = await groups.searchMembers({ | 		response = await groups.searchMembers({ | ||||||
| 			uid: caller.uid, | 			uid: caller.uid, | ||||||
| 			query, | 			query, | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ const db = require('./mocks/databasemock'); | |||||||
| const helpers = require('./helpers'); | const helpers = require('./helpers'); | ||||||
| const Groups = require('../src/groups'); | const Groups = require('../src/groups'); | ||||||
| const User = require('../src/user'); | const User = require('../src/user'); | ||||||
|  | const plugins = require('../src/plugins'); | ||||||
| const utils = require('../src/utils'); | const utils = require('../src/utils'); | ||||||
| const socketGroups = require('../src/socket.io/groups'); | const socketGroups = require('../src/socket.io/groups'); | ||||||
| const apiGroups = require('../src/api/groups'); | const apiGroups = require('../src/api/groups'); | ||||||
| @@ -20,6 +21,12 @@ describe('Groups', () => { | |||||||
| 	let adminUid; | 	let adminUid; | ||||||
| 	let testUid; | 	let testUid; | ||||||
| 	before(async () => { | 	before(async () => { | ||||||
|  | 		// Attach an emailer hook so related requests do not error | ||||||
|  | 		plugins.hooks.register('emailer-test', { | ||||||
|  | 			hook: 'static:email.send', | ||||||
|  | 			method: dummyEmailerHook, | ||||||
|  | 		}); | ||||||
|  |  | ||||||
| 		const navData = require('../install/data/navigation.json'); | 		const navData = require('../install/data/navigation.json'); | ||||||
| 		await navigation.save(navData); | 		await navigation.save(navData); | ||||||
|  |  | ||||||
| @@ -76,6 +83,14 @@ describe('Groups', () => { | |||||||
| 		await Groups.join('administrators', adminUid); | 		await Groups.join('administrators', adminUid); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
|  | 	async function dummyEmailerHook(data) { | ||||||
|  | 		// pretend to handle sending emails | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	after(async () => { | ||||||
|  | 		plugins.hooks.unregister('emailer-test', 'static:email.send'); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
| 	describe('.list()', () => { | 	describe('.list()', () => { | ||||||
| 		it('should list the groups present', (done) => { | 		it('should list the groups present', (done) => { | ||||||
| 			Groups.getGroupsFromSet('groups:visible:createtime', 0, -1, (err, groups) => { | 			Groups.getGroupsFromSet('groups:visible:createtime', 0, -1, (err, groups) => { | ||||||
| @@ -167,16 +182,13 @@ describe('Groups', () => { | |||||||
| 			} | 			} | ||||||
| 			await createAndJoinGroup('newuser', 'newuser@b.com'); | 			await createAndJoinGroup('newuser', 'newuser@b.com'); | ||||||
| 			await createAndJoinGroup('bob', 'bob@b.com'); | 			await createAndJoinGroup('bob', 'bob@b.com'); | ||||||
| 			const data = await socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: '' }); | 			const { users } = await apiGroups.listMembers({ uid: adminUid }, { slug: 'test', query: '' }); | ||||||
| 			assert.equal(data.users.length, 3); | 			assert.equal(users.length, 3); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		it('should search group members', (done) => { | 		it('should search group members', async () => { | ||||||
| 			socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: 'test' }, (err, data) => { | 			const { users } = await apiGroups.listMembers({ uid: adminUid }, { slug: 'test', query: 'test' }); | ||||||
| 				assert.ifError(err); | 			assert.strictEqual('testuser', users[0].username); | ||||||
| 				assert.strictEqual('testuser', data.users[0].username); |  | ||||||
| 				done(); |  | ||||||
| 			}); |  | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		it('should not return hidden groups', async () => { | 		it('should not return hidden groups', async () => { | ||||||
| @@ -1050,34 +1062,25 @@ describe('Groups', () => { | |||||||
| 			} | 			} | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		it('should fail to load more groups with invalid data', (done) => { | 		it('should load initial set of groups when passed no arguments', async () => { | ||||||
| 			socketGroups.loadMore({ uid: adminUid }, {}, (err) => { | 			const { groups } = await apiGroups.list({ uid: adminUid }, {}); | ||||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | 			assert(Array.isArray(groups)); | ||||||
| 				done(); |  | ||||||
| 			}); |  | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		it('should load more groups', (done) => { | 		it('should load more groups', async () => { | ||||||
| 			socketGroups.loadMore({ uid: adminUid }, { after: 0, sort: 'count' }, (err, data) => { | 			const { groups } = await apiGroups.list({ uid: adminUid }, { after: 0, sort: 'count' }); | ||||||
| 				assert.ifError(err); | 			assert(Array.isArray(groups)); | ||||||
| 				assert(Array.isArray(data.groups)); |  | ||||||
| 				done(); |  | ||||||
| 			}); |  | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		it('should fail to load more members with invalid data', (done) => { | 		it('should load initial set of group members when passed no arguments', async () => { | ||||||
| 			socketGroups.loadMoreMembers({ uid: adminUid }, {}, (err) => { | 			const { users } = await apiGroups.listMembers({ uid: adminUid }, {}); | ||||||
| 				assert.equal(err.message, '[[error:invalid-data]]'); | 			assert(users); | ||||||
| 				done(); | 			assert(Array.isArray(users)); | ||||||
| 			}); |  | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		it('should load more members', (done) => { | 		it('should load more members', async () => { | ||||||
| 			socketGroups.loadMoreMembers({ uid: adminUid }, { after: 0, groupName: 'PrivateCanJoin' }, (err, data) => { | 			const { users } = await apiGroups.listMembers({ uid: adminUid }, { after: 0, groupName: 'PrivateCanJoin' }); | ||||||
| 				assert.ifError(err); | 			assert(Array.isArray(users)); | ||||||
| 				assert(Array.isArray(data.users)); |  | ||||||
| 				done(); |  | ||||||
| 			}); |  | ||||||
| 		}); | 		}); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user