Skip to content

Commit b7cb62b

Browse files
committed
test(federation): refactor tests to create users on synapse
1 parent f21ed3a commit b7cb62b

8 files changed

Lines changed: 601 additions & 440 deletions

File tree

ee/packages/federation-matrix/docker-compose.test.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ services:
5858
echo '';
5959
echo '=====> Running register_new_matrix_user...';
6060
register_new_matrix_user -u admin -p admin --admin http://localhost:8008 -c /data/homeserver.yaml | sed 's/^/=======> /';
61-
register_new_matrix_user -u alice -p alice --admin http://localhost:8008 -c /data/homeserver.yaml | sed 's/^/=======> /';
62-
register_new_matrix_user -u bob -p bob --admin http://localhost:8008 -c /data/homeserver.yaml | sed 's/^/=======> /';
63-
register_new_matrix_user -u cleiton -p cleiton --admin http://localhost:8008 -c /data/homeserver.yaml | sed 's/^/=======> /';
6461
echo '=====> Finished register_new_matrix_user.';
6562
wait"
6663
volumes:

ee/packages/federation-matrix/tests/end-to-end/ban.spec.ts

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import { SynapseClient } from '../helper/synapse-client';
1414
let rc1AdminRequestConfig: IRequestConfig;
1515
let rc1User1RequestConfig: IRequestConfig;
1616
let hs1AdminApp: SynapseClient;
17+
let hs1PrimaryApp: SynapseClient;
18+
let hs1PrimaryMatrixUserId: string;
1719

1820
beforeAll(async () => {
1921
rc1AdminRequestConfig = await getRequestConfig(
@@ -40,9 +42,23 @@ import { SynapseClient } from '../helper/synapse-client';
4042

4143
hs1AdminApp = new SynapseClient(federationConfig.hs1.url, federationConfig.hs1.adminUser, federationConfig.hs1.adminPassword);
4244
await hs1AdminApp.initialize();
45+
46+
const primaryUser = await SynapseClient.createAndInitializeUser(federationConfig.hs1.url, federationConfig.hs1.domain, {
47+
sharedSecret: federationConfig.hs1.registrationSharedSecret,
48+
admin: true,
49+
});
50+
hs1PrimaryApp = primaryUser.client;
51+
hs1PrimaryMatrixUserId = primaryUser.matrixUserId;
4352
});
4453

4554
afterAll(async () => {
55+
const adminAccessToken = hs1AdminApp?.matrixClient?.getAccessToken();
56+
if (hs1PrimaryApp) {
57+
await hs1PrimaryApp.close();
58+
}
59+
if (hs1PrimaryMatrixUserId && adminAccessToken) {
60+
await SynapseClient.deactivateUser(federationConfig.hs1.url, hs1PrimaryMatrixUserId, adminAccessToken);
61+
}
4662
if (hs1AdminApp) {
4763
await hs1AdminApp.close();
4864
}
@@ -58,15 +74,15 @@ import { SynapseClient } from '../helper/synapse-client';
5874
const createResponse = await createRoom({
5975
type: 'p',
6076
name: channelName,
61-
members: [federationConfig.hs1.adminMatrixUserId, federationConfig.rc1.additionalUser1.username],
77+
members: [hs1PrimaryMatrixUserId, federationConfig.rc1.additionalUser1.username],
6278
extraData: { federated: true },
6379
config: rc1AdminRequestConfig,
6480
});
6581

6682
federatedChannelId = createResponse.body.group._id;
6783

6884
// Accept invitation on Synapse side
69-
await hs1AdminApp.acceptInvitationForRoomName(channelName);
85+
await hs1PrimaryApp.acceptInvitationForRoomName(channelName);
7086

7187
// Accept invitation for the local RC user
7288
await acceptRoomInvite(federatedChannelId, rc1User1RequestConfig);
@@ -75,7 +91,7 @@ import { SynapseClient } from '../helper/synapse-client';
7591
await retry(
7692
'wait for RC user on Synapse',
7793
async () => {
78-
const member = await hs1AdminApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
94+
const member = await hs1PrimaryApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
7995
expect(member).not.toBeNull();
8096
expect(member!.membership).toBe('join');
8197
},
@@ -110,7 +126,7 @@ import { SynapseClient } from '../helper/synapse-client';
110126
await retry(
111127
'wait for ban on Synapse',
112128
async () => {
113-
const member = await hs1AdminApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
129+
const member = await hs1PrimaryApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
114130
expect(member).not.toBeNull();
115131
expect(member!.membership).toBe('ban');
116132
},
@@ -149,7 +165,7 @@ import { SynapseClient } from '../helper/synapse-client';
149165
await retry(
150166
'wait for unban on Synapse',
151167
async () => {
152-
const member = await hs1AdminApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
168+
const member = await hs1PrimaryApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
153169
expect(member).not.toBeNull();
154170
expect(member!.membership).not.toBe('ban');
155171
},
@@ -168,15 +184,15 @@ import { SynapseClient } from '../helper/synapse-client';
168184
const createResponse = await createRoom({
169185
type: 'p',
170186
name: channelName,
171-
members: [federationConfig.hs1.adminMatrixUserId, federationConfig.rc1.additionalUser1.username],
187+
members: [hs1PrimaryMatrixUserId, federationConfig.rc1.additionalUser1.username],
172188
extraData: { federated: true },
173189
config: rc1AdminRequestConfig,
174190
});
175191

176192
federatedChannelId = createResponse.body.group._id;
177193

178194
// Accept invitation on Synapse side only — RC user stays as INVITED
179-
await hs1AdminApp.acceptInvitationForRoomName(channelName);
195+
await hs1PrimaryApp.acceptInvitationForRoomName(channelName);
180196
}, 30000);
181197

182198
it('should ban the invited user before they accept', async () => {
@@ -228,10 +244,10 @@ import { SynapseClient } from '../helper/synapse-client';
228244

229245
beforeAll(async () => {
230246
channelName = `fed-ban-synapse-${Date.now()}`;
231-
synapseRoomId = await hs1AdminApp.createRoom(channelName, Visibility.Private);
247+
synapseRoomId = await hs1PrimaryApp.createRoom(channelName, Visibility.Private);
232248

233-
await hs1AdminApp.inviteUserToRoom(synapseRoomId, federationConfig.rc1.additionalUser1.matrixUserId);
234-
await hs1AdminApp.inviteUserToRoom(synapseRoomId, federationConfig.rc1.adminMatrixUserId);
249+
await hs1PrimaryApp.inviteUserToRoom(synapseRoomId, federationConfig.rc1.additionalUser1.matrixUserId);
250+
await hs1PrimaryApp.inviteUserToRoom(synapseRoomId, federationConfig.rc1.adminMatrixUserId);
235251

236252
const roomsResponse = await rc1AdminRequestConfig.request.get(api('rooms.get')).set(rc1AdminRequestConfig.credentials).expect(200);
237253

@@ -254,7 +270,7 @@ import { SynapseClient } from '../helper/synapse-client';
254270
await retry(
255271
'wait for RC user on Synapse',
256272
async () => {
257-
const member = await hs1AdminApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
273+
const member = await hs1PrimaryApp.findRoomMember(channelName, federationConfig.rc1.additionalUser1.matrixUserId);
258274
expect(member).not.toBeNull();
259275
expect(member!.membership).toBe('join');
260276
},
@@ -263,7 +279,7 @@ import { SynapseClient } from '../helper/synapse-client';
263279
}, 30000);
264280

265281
it('should ban the RC user from Synapse', async () => {
266-
await hs1AdminApp.banUser(synapseRoomId, federationConfig.rc1.additionalUser1.matrixUserId, 'federation ban test');
282+
await hs1PrimaryApp.banUser(synapseRoomId, federationConfig.rc1.additionalUser1.matrixUserId, 'federation ban test');
267283
});
268284

269285
it('should reflect ban on RC side', async () => {
@@ -291,7 +307,7 @@ import { SynapseClient } from '../helper/synapse-client';
291307
});
292308

293309
it('should unban the RC user from Synapse', async () => {
294-
await hs1AdminApp.unbanUser(synapseRoomId, federationConfig.rc1.additionalUser1.matrixUserId);
310+
await hs1PrimaryApp.unbanUser(synapseRoomId, federationConfig.rc1.additionalUser1.matrixUserId);
295311
});
296312

297313
it('should reflect unban on RC side', async () => {

0 commit comments

Comments
 (0)