Skip to content

Commit

Permalink
test for lower hand using web sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
iAmmar7 committed Nov 7, 2023
1 parent 3626db3 commit 7c02890
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 9 deletions.
66 changes: 57 additions & 9 deletions internal/e2e-realtime-api/src/playwright/videoHandRaise.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ test.describe('Video room hand raise/lower', () => {
await context.close()
})

test('should raise member one hand using room session instance', async () => {
test('should raise memberOne hand using room session instance via Node SDK', async () => {
// Expect no hand raise from both members
expect(memberOne.handraised).toBe(false)
expect(memberTwo.handraised).toBe(false)
Expand Down Expand Up @@ -55,16 +55,18 @@ test.describe('Video room hand raise/lower', () => {
)

// Wait for member.updated events to be received on the Web SDK for both pages
const memberOneUpdatedWeb = await memberOnePageOne
await memberOnePageTwo
const memberOnePageOneUpdatedWeb = await memberOnePageOne
const memberOnePageTwoUpdatedWeb = await memberOnePageTwo

// Expect a hand raise to be true on both Node & Web SDKs for memberOne only
expect(memberOneUpdatedNode.handraised).toBe(true)
expect(memberOneUpdatedWeb.handraised).toBe(true)
expect(memberOnePageOneUpdatedWeb.handraised).toBe(true)
expect(memberOnePageTwoUpdatedWeb.handraised).toBe(true)

expect(memberTwo.handraised).toBe(false)
})

test('should raise member two hand using member instance', async () => {
test('should raise memberTwo hand using member instance via Node SDK', async () => {
// Expect member.updated event on pageOne via Web SDK for memberTwo
const memberTwoPageOne = expectMemberUpdated({
page: pageOne,
Expand All @@ -77,7 +79,7 @@ test.describe('Video room hand raise/lower', () => {
memberName: memberTwo.name,
})

// Raise memberTwo hand using a member object using Node SDK
// Raise memberTwo hand using a member object via Node SDK
const memberTwoUpdatedNode = await new Promise<Video.RoomSessionMember>(
async (resolve, _reject) => {
roomSession.on('member.updated', (member) => {
Expand All @@ -90,11 +92,57 @@ test.describe('Video room hand raise/lower', () => {
)

// Wait for member.updated events to be received on the Web SDK for both pages
const memberTwoUpdatedWeb = await memberTwoPageOne
await memberTwoPageTwo
const memberTwoPageOneUpdatedWeb = await memberTwoPageOne
const memberTwoPageTwoUpdatedWeb = await memberTwoPageTwo

// Expect a hand raise to be true on both Node & Web SDKs for memberTwo only
expect(memberTwoUpdatedNode.handraised).toBe(true)
expect(memberTwoUpdatedWeb.handraised).toBe(true)
expect(memberTwoPageOneUpdatedWeb.handraised).toBe(true)
expect(memberTwoPageTwoUpdatedWeb.handraised).toBe(true)
})

test('should lower memberOne hand using room session instance via Web SDK', async () => {
// Expect member.updated event on pageOne via Web SDK for memberOne
const memberOnePageOne = expectMemberUpdated({
page: pageOne,
memberName: memberOne.name,
})

// Expect member.updated event on pageTwo via Web SDK for memberOne
const memberOnePageTwo = expectMemberUpdated({
page: pageTwo,
memberName: memberOne.name,
})

// Expect member.updated event via Node SDK for memberOne
const memberOneNode = new Promise<Video.RoomSessionMember>(
async (resolve, _reject) => {
roomSession.on('member.updated', (member) => {
if (member.name === memberOne.name) {
resolve(member)
}
})
}
)

await pageOne.evaluate(async () => {
// @ts-expect-error
const roomSession = window._roomObj

// MemberId is not needed here since roomSession on pageOne refers to memberOne's roomSession
await roomSession.setRaisedHand({ raised: false })
})

// Wait for member.updated events to be received on the Web SDK for both pages
const memberOnePageOneUpdatedWeb = await memberOnePageOne
const memberOnePageTwoUpdatedWeb = await memberOnePageTwo

// Wait for member.updated events to be received on the Node SDK
const memberOneUpdatedNode = await memberOneNode

// Expect a hand raise to be false on both Node & Web SDKs for memberOne only
expect(memberOneUpdatedNode.handraised).toBe(false)
expect(memberOnePageOneUpdatedWeb.handraised).toBe(false)
expect(memberOnePageTwoUpdatedWeb.handraised).toBe(false)
})
})
4 changes: 4 additions & 0 deletions internal/e2e-realtime-api/src/playwright/videoUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ const PERMISSIONS = [
'room.recording',
'room.playback',
'room.playback_seek',
'room.member.raisehand',
'room.member.lowerhand',
'room.self.raisehand',
'room.self.lowerhand',
]

type CreateVRTParams = {
Expand Down

0 comments on commit 7c02890

Please sign in to comment.