test: migrate socket.io groups tests to use api v3

This commit is contained in:
Julian Lam
2023-12-05 10:41:14 -05:00
parent b6b569c0a8
commit 2c1c4dfe41
2 changed files with 34 additions and 31 deletions

View File

@@ -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,

View File

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