diff --git a/app/e2e/server/beforeCreateRoom.js b/app/e2e/server/beforeCreateRoom.js index ce3b21ad693..a8c6a893351 100644 --- a/app/e2e/server/beforeCreateRoom.js +++ b/app/e2e/server/beforeCreateRoom.js @@ -3,9 +3,8 @@ import { settings } from '../../settings/server'; callbacks.add('beforeCreateRoom', ({ type, extraData }) => { if ( - settings.get('E2E_Enabled') && ((type === 'd' && settings.get('E2E_Enabled_Default_DirectRooms')) - || (type === 'p' && settings.get('E2E_Enabled_Default_PrivateRooms'))) - ) { + settings.get('E2E_Enable') && ((type === 'd' && settings.get('E2E_Enabled_Default_DirectRooms')) + || (type === 'p' && settings.get('E2E_Enabled_Default_PrivateRooms')))) { extraData.encrypted = extraData.encrypted ?? true; } }); diff --git a/app/e2e/server/settings.ts b/app/e2e/server/settings.ts index 3b3aad9e6dc..20c624fed9b 100644 --- a/app/e2e/server/settings.ts +++ b/app/e2e/server/settings.ts @@ -11,11 +11,13 @@ settingsRegistry.addGroup('E2E Encryption', function() { this.add('E2E_Enabled_Default_DirectRooms', false, { type: 'boolean', + public: true, enableQuery: { _id: 'E2E_Enable', value: true }, }); this.add('E2E_Enabled_Default_PrivateRooms', false, { type: 'boolean', + public: true, enableQuery: { _id: 'E2E_Enable', value: true }, }); }); diff --git a/tests/end-to-end/api/03-groups.js b/tests/end-to-end/api/03-groups.js index b20d253fb17..5cc6f531aa4 100644 --- a/tests/end-to-end/api/03-groups.js +++ b/tests/end-to-end/api/03-groups.js @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { getCredentials, api, request, credentials, group, apiPrivateChannelName } from '../../data/api-data.js'; import { adminUsername, password } from '../../data/user.js'; import { createUser, login } from '../../data/users.helper'; -import { updatePermission } from '../../data/permissions.helper'; +import { updatePermission, updateSetting } from '../../data/permissions.helper'; import { createRoom } from '../../data/rooms.helper'; import { createIntegration, removeIntegration } from '../../data/integration.helper'; @@ -43,7 +43,49 @@ describe('[Groups]', function() { }) .end(done); }); + describe('/groups.create (encrypted)', () => { + it('should create a new encrypted group', async () => { + await request.post(api('groups.create')) + .set(credentials) + .send({ + name: `encrypted-${ apiPrivateChannelName }`, + extraData: { + encrypted: true, + }, + }) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + expect(res.body).to.have.nested.property('group.name', `encrypted-${ apiPrivateChannelName }`); + expect(res.body).to.have.nested.property('group.t', 'p'); + expect(res.body).to.have.nested.property('group.msgs', 0); + expect(res.body).to.have.nested.property('group.encrypted', true); + }); + }); + it('should create the encrypted room by default', async () => { + await updateSetting('E2E_Enabled_Default_PrivateRooms', true); + try { + await request.post(api('groups.create')) + .set(credentials) + .send({ + name: `default-encrypted-${ apiPrivateChannelName }`, + }) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + expect(res.body).to.have.nested.property('group.name', `default-encrypted-${ apiPrivateChannelName }`); + expect(res.body).to.have.nested.property('group.t', 'p'); + expect(res.body).to.have.nested.property('group.msgs', 0); + expect(res.body).to.have.nested.property('group.encrypted', true); + }); + } finally { + await updateSetting('E2E_Enabled_Default_PrivateRooms', false); + } + }); + }); describe('[/groups.info]', () => { let testGroup = {}; let groupMessage = {}; @@ -177,7 +219,6 @@ describe('[Groups]', function() { it('/groups.invite', async () => { const roomInfo = await getRoomInfo(group._id); - return request.post(api('groups.invite')) .set(credentials) .send({