tests: update participant token tests to include participantIdentity parameter

This commit is contained in:
juancarmore 2025-08-14 13:51:55 +02:00
parent 13c88d201c
commit 7bffed69f0
4 changed files with 66 additions and 20 deletions

View File

@ -492,7 +492,11 @@ export const expectValidRoomRoleAndPermissionsResponse = (
}); });
}; };
export const getPermissions = (roomId: string, role: ParticipantRole, addJoinPermission = true): ParticipantPermissions => { export const getPermissions = (
roomId: string,
role: ParticipantRole,
addJoinPermission = true
): ParticipantPermissions => {
switch (role) { switch (role) {
case ParticipantRole.MODERATOR: case ParticipantRole.MODERATOR:
return { return {
@ -536,6 +540,7 @@ export const expectValidParticipantTokenResponse = (
roomId: string, roomId: string,
participantRole: ParticipantRole, participantRole: ParticipantRole,
participantName?: string, participantName?: string,
participantIdentity?: string,
otherRoles: ParticipantRole[] = [] otherRoles: ParticipantRole[] = []
) => { ) => {
expect(response.status).toBe(200); expect(response.status).toBe(200);
@ -558,8 +563,16 @@ export const expectValidParticipantTokenResponse = (
} }
if (participantName) { if (participantName) {
expect(decodedToken).toHaveProperty('sub', participantName); expect(decodedToken).toHaveProperty('name', participantName);
expect(decodedToken).toHaveProperty('sub');
if (participantIdentity) {
expect(decodedToken.sub).toBe(participantIdentity);
} else {
expect(decodedToken.sub).toContain(participantName.replace(/\s+/g, '')); // Ensure sub contains the name without spaces
}
} else { } else {
expect(decodedToken).not.toHaveProperty('name');
expect(decodedToken).not.toHaveProperty('sub'); expect(decodedToken).not.toHaveProperty('sub');
} }

View File

@ -82,6 +82,7 @@ describe('Participant API Tests', () => {
roomData.room.roomId, roomData.room.roomId,
ParticipantRole.SPEAKER, ParticipantRole.SPEAKER,
`${participantName}_SPEAKER`, `${participantName}_SPEAKER`,
undefined,
[ParticipantRole.MODERATOR] [ParticipantRole.MODERATOR]
); );
}); });

View File

@ -41,7 +41,8 @@ describe('Participant API Tests', () => {
{ {
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );
@ -49,6 +50,7 @@ describe('Participant API Tests', () => {
response, response,
roomData.room.roomId, roomData.room.roomId,
ParticipantRole.MODERATOR, ParticipantRole.MODERATOR,
participantName,
participantName participantName
); );
}); });
@ -58,7 +60,8 @@ describe('Participant API Tests', () => {
{ {
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.speakerSecret, secret: roomData.speakerSecret,
participantName participantName,
participantIdentity: participantName
}, },
roomData.speakerCookie roomData.speakerCookie
); );
@ -66,6 +69,7 @@ describe('Participant API Tests', () => {
response, response,
roomData.room.roomId, roomData.room.roomId,
ParticipantRole.SPEAKER, ParticipantRole.SPEAKER,
participantName,
participantName participantName
); );
}); });
@ -75,7 +79,8 @@ describe('Participant API Tests', () => {
{ {
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: 'invalid_secret', secret: 'invalid_secret',
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );
@ -87,7 +92,8 @@ describe('Participant API Tests', () => {
{ {
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName participantName,
participantIdentity: participantName
}, },
'' ''
); );
@ -95,13 +101,26 @@ describe('Participant API Tests', () => {
expect(response.body.message).toBe('No participant token provided'); expect(response.body.message).toBe('No participant token provided');
}); });
it('should fail with 400 when participantIdentity is not provided', async () => {
const response = await refreshParticipantToken(
{
roomId: roomData.room.roomId,
secret: 'invalid_secret',
participantName
},
roomData.moderatorCookie
);
expect(response.status).toBe(400);
});
it('should fail with 404 when participant does not exist in the room', async () => { it('should fail with 404 when participant does not exist in the room', async () => {
const newRoomData = await setupSingleRoom(); const newRoomData = await setupSingleRoom();
const response = await refreshParticipantToken( const response = await refreshParticipantToken(
{ {
roomId: newRoomData.room.roomId, roomId: newRoomData.room.roomId,
secret: newRoomData.moderatorSecret, secret: newRoomData.moderatorSecret,
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );
@ -113,7 +132,8 @@ describe('Participant API Tests', () => {
{ {
roomId: 'non_existent_room', roomId: 'non_existent_room',
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );
@ -126,7 +146,8 @@ describe('Participant API Tests', () => {
const response = await refreshParticipantToken( const response = await refreshParticipantToken(
{ {
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );
@ -137,7 +158,8 @@ describe('Participant API Tests', () => {
const response = await refreshParticipantToken( const response = await refreshParticipantToken(
{ {
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );
@ -149,7 +171,8 @@ describe('Participant API Tests', () => {
{ {
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: '', secret: '',
participantName participantName,
participantIdentity: participantName
}, },
roomData.moderatorCookie roomData.moderatorCookie
); );

View File

@ -162,7 +162,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.speakerSecret, secret: roomData.speakerSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(200); expect(response.status).toBe(200);
}); });
@ -176,7 +177,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(200); expect(response.status).toBe(200);
}); });
@ -190,7 +192,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.speakerSecret, secret: roomData.speakerSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(200); expect(response.status).toBe(200);
}); });
@ -204,7 +207,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(200); expect(response.status).toBe(200);
}); });
@ -218,7 +222,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(401); expect(response.status).toBe(401);
}); });
@ -232,7 +237,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.speakerSecret, secret: roomData.speakerSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(200); expect(response.status).toBe(200);
}); });
@ -246,7 +252,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.speakerSecret, secret: roomData.speakerSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(401); expect(response.status).toBe(401);
}); });
@ -260,7 +267,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(200); expect(response.status).toBe(200);
}); });
@ -274,7 +282,8 @@ describe('Participant API Security Tests', () => {
.send({ .send({
roomId: roomData.room.roomId, roomId: roomData.room.roomId,
secret: roomData.moderatorSecret, secret: roomData.moderatorSecret,
participantName: PARTICIPANT_NAME participantName: PARTICIPANT_NAME,
participantIdentity: PARTICIPANT_NAME
}); });
expect(response.status).toBe(401); expect(response.status).toBe(401);
}); });