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 after = parseInt(data.after || 0, 10);
|
||||
let response;
|
||||
if (query) {
|
||||
if (query && query.length) {
|
||||
response = await groups.searchMembers({
|
||||
uid: caller.uid,
|
||||
query,
|
||||
|
||||
@@ -9,6 +9,7 @@ const db = require('./mocks/databasemock');
|
||||
const helpers = require('./helpers');
|
||||
const Groups = require('../src/groups');
|
||||
const User = require('../src/user');
|
||||
const plugins = require('../src/plugins');
|
||||
const utils = require('../src/utils');
|
||||
const socketGroups = require('../src/socket.io/groups');
|
||||
const apiGroups = require('../src/api/groups');
|
||||
@@ -20,6 +21,12 @@ describe('Groups', () => {
|
||||
let adminUid;
|
||||
let testUid;
|
||||
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');
|
||||
await navigation.save(navData);
|
||||
|
||||
@@ -76,6 +83,14 @@ describe('Groups', () => {
|
||||
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()', () => {
|
||||
it('should list the groups present', (done) => {
|
||||
Groups.getGroupsFromSet('groups:visible:createtime', 0, -1, (err, groups) => {
|
||||
@@ -167,16 +182,13 @@ describe('Groups', () => {
|
||||
}
|
||||
await createAndJoinGroup('newuser', 'newuser@b.com');
|
||||
await createAndJoinGroup('bob', 'bob@b.com');
|
||||
const data = await socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: '' });
|
||||
assert.equal(data.users.length, 3);
|
||||
const { users } = await apiGroups.listMembers({ uid: adminUid }, { slug: 'test', query: '' });
|
||||
assert.equal(users.length, 3);
|
||||
});
|
||||
|
||||
it('should search group members', (done) => {
|
||||
socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: 'test' }, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual('testuser', data.users[0].username);
|
||||
done();
|
||||
});
|
||||
it('should search group members', async () => {
|
||||
const { users } = await apiGroups.listMembers({ uid: adminUid }, { slug: 'test', query: 'test' });
|
||||
assert.strictEqual('testuser', users[0].username);
|
||||
});
|
||||
|
||||
it('should not return hidden groups', async () => {
|
||||
@@ -1050,34 +1062,25 @@ describe('Groups', () => {
|
||||
}
|
||||
});
|
||||
|
||||
it('should fail to load more groups with invalid data', (done) => {
|
||||
socketGroups.loadMore({ uid: adminUid }, {}, (err) => {
|
||||
assert.equal(err.message, '[[error:invalid-data]]');
|
||||
done();
|
||||
});
|
||||
it('should load initial set of groups when passed no arguments', async () => {
|
||||
const { groups } = await apiGroups.list({ uid: adminUid }, {});
|
||||
assert(Array.isArray(groups));
|
||||
});
|
||||
|
||||
it('should load more groups', (done) => {
|
||||
socketGroups.loadMore({ uid: adminUid }, { after: 0, sort: 'count' }, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert(Array.isArray(data.groups));
|
||||
done();
|
||||
});
|
||||
it('should load more groups', async () => {
|
||||
const { groups } = await apiGroups.list({ uid: adminUid }, { after: 0, sort: 'count' });
|
||||
assert(Array.isArray(groups));
|
||||
});
|
||||
|
||||
it('should fail to load more members with invalid data', (done) => {
|
||||
socketGroups.loadMoreMembers({ uid: adminUid }, {}, (err) => {
|
||||
assert.equal(err.message, '[[error:invalid-data]]');
|
||||
done();
|
||||
});
|
||||
it('should load initial set of group members when passed no arguments', async () => {
|
||||
const { users } = await apiGroups.listMembers({ uid: adminUid }, {});
|
||||
assert(users);
|
||||
assert(Array.isArray(users));
|
||||
});
|
||||
|
||||
it('should load more members', (done) => {
|
||||
socketGroups.loadMoreMembers({ uid: adminUid }, { after: 0, groupName: 'PrivateCanJoin' }, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert(Array.isArray(data.users));
|
||||
done();
|
||||
});
|
||||
it('should load more members', async () => {
|
||||
const { users } = await apiGroups.listMembers({ uid: adminUid }, { after: 0, groupName: 'PrivateCanJoin' });
|
||||
assert(Array.isArray(users));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user