mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2025-12-30 03:12:29 +00:00
137 lines
4.5 KiB
TypeScript
137 lines
4.5 KiB
TypeScript
import { isEqual } from 'lodash-es';
|
|
|
|
import { setTestProperties } from '../../helpers/TestProperties';
|
|
import { ensureTwoParticipants } from '../../helpers/participants';
|
|
|
|
import { checkIframeApi } from './util';
|
|
|
|
setTestProperties(__filename, {
|
|
usesBrowsers: [ 'p1', 'p2' ]
|
|
});
|
|
|
|
describe('Kick participants', () => {
|
|
it('joining the meeting', async () => {
|
|
await ensureTwoParticipants({}, { name: 'p1', iFrameApi: true });
|
|
|
|
const { p1, p2 } = ctx;
|
|
|
|
if (!await checkIframeApi(p1)) {
|
|
return;
|
|
}
|
|
|
|
await Promise.all([
|
|
p1.switchToMainFrame(),
|
|
p2.switchToMainFrame()
|
|
]);
|
|
|
|
expect(await p1.getIframeAPI().getEventResult('isModerator')).toBe(true);
|
|
|
|
expect(await p1.getIframeAPI().getEventResult('videoConferenceJoined')).toBeDefined();
|
|
expect(await p2.getIframeAPI().getEventResult('videoConferenceJoined')).toBeDefined();
|
|
});
|
|
|
|
it('kick participant', async () => {
|
|
await ctx.p2.getIframeAPI().clearEventResults('videoConferenceLeft');
|
|
await ctx.p2.getIframeAPI().addEventListener('videoConferenceLeft');
|
|
await ctx.p2.switchToMainFrame();
|
|
await ctx.p2.getIframeAPI().executeCommand('hangup');
|
|
await ctx.p2.driver.waitUntil(() =>
|
|
ctx.p2.getIframeAPI().getEventResult('videoConferenceLeft'), {
|
|
timeout: 4000,
|
|
timeoutMsg: 'videoConferenceLeft not received'
|
|
});
|
|
|
|
await ensureTwoParticipants({}, { name: 'p1', iFrameApi: true });
|
|
|
|
const { p1, p2, roomName } = ctx;
|
|
|
|
const p1EpId = await p1.getEndpointId();
|
|
const p2EpId = await p2.getEndpointId();
|
|
|
|
const p1DisplayName = await p1.getLocalDisplayName();
|
|
const p2DisplayName = await p2.getLocalDisplayName();
|
|
|
|
await p1.switchToMainFrame();
|
|
await p2.switchToMainFrame();
|
|
|
|
await p1.getIframeAPI().addEventListener('participantKickedOut');
|
|
await p2.getIframeAPI().addEventListener('participantKickedOut');
|
|
|
|
await p2.getIframeAPI().clearEventResults('videoConferenceLeft');
|
|
await p2.getIframeAPI().addEventListener('videoConferenceLeft');
|
|
|
|
await p1.getIframeAPI().executeCommand('kickParticipant', p2EpId);
|
|
|
|
const eventP1 = await p1.driver.waitUntil(() => p1.getIframeAPI().getEventResult('participantKickedOut'), {
|
|
timeout: 2000,
|
|
timeoutMsg: 'participantKickedOut event not received on p1 side'
|
|
});
|
|
const eventP2 = await p2.driver.waitUntil(() => p2.getIframeAPI().getEventResult('participantKickedOut'), {
|
|
timeout: 2000,
|
|
timeoutMsg: 'participantKickedOut event not received on p2 side'
|
|
});
|
|
|
|
expect(eventP1).toBeDefined();
|
|
expect(eventP2).toBeDefined();
|
|
|
|
expect(isEqual(eventP1, {
|
|
kicked: {
|
|
id: p2EpId,
|
|
local: false,
|
|
name: p2DisplayName
|
|
},
|
|
kicker: {
|
|
id: p1EpId,
|
|
local: true,
|
|
name: p1DisplayName
|
|
}
|
|
})).toBe(true);
|
|
|
|
expect(isEqual(eventP2, {
|
|
kicked: {
|
|
id: 'local',
|
|
local: true,
|
|
name: p2DisplayName
|
|
},
|
|
kicker: {
|
|
id: p1EpId,
|
|
name: p1DisplayName
|
|
}
|
|
})).toBe(true);
|
|
|
|
const eventConferenceLeftP2 = await p2.driver.waitUntil(() =>
|
|
p2.getIframeAPI().getEventResult('videoConferenceLeft'), {
|
|
timeout: 4000,
|
|
timeoutMsg: 'videoConferenceLeft not received'
|
|
});
|
|
|
|
expect(eventConferenceLeftP2).toBeDefined();
|
|
expect(eventConferenceLeftP2.roomName).toBe(roomName);
|
|
});
|
|
|
|
it('join after kick', async () => {
|
|
const { p1 } = ctx;
|
|
|
|
await p1.getIframeAPI().addEventListener('participantJoined');
|
|
|
|
// join again
|
|
await ensureTwoParticipants({}, { name: 'p1', iFrameApi: true });
|
|
const { p2 } = ctx;
|
|
|
|
await p1.switchToMainFrame();
|
|
|
|
const event = await p1.driver.waitUntil(() => p1.getIframeAPI().getEventResult('participantJoined'), {
|
|
timeout: 2000,
|
|
timeoutMsg: 'participantJoined not received'
|
|
});
|
|
|
|
const p2DisplayName = await p2.getLocalDisplayName();
|
|
|
|
expect(event).toBeDefined();
|
|
expect(event.id).toBe(await p2.getEndpointId());
|
|
expect(event.displayName).toBe(p2DisplayName);
|
|
expect(event.formattedDisplayName).toBe(p2DisplayName);
|
|
|
|
});
|
|
});
|