diff --git a/packages/client/src/Call.ts b/packages/client/src/Call.ts index 92ac8c5a67..4a78bcfbc8 100644 --- a/packages/client/src/Call.ts +++ b/packages/client/src/Call.ts @@ -2436,9 +2436,8 @@ export class Call { UpdateCallRequest >(`${this.streamClientBasePath}`, updates); - const { call, members, own_capabilities } = response; + const { call, own_capabilities } = response; this.state.updateFromCallResponse(call); - this.state.setMembers(members); this.state.setOwnCapabilities(own_capabilities); return response; diff --git a/packages/client/src/__tests__/Call.test.ts b/packages/client/src/__tests__/Call.test.ts index 142a293003..1d0c622cf6 100644 --- a/packages/client/src/__tests__/Call.test.ts +++ b/packages/client/src/__tests__/Call.test.ts @@ -195,6 +195,23 @@ describe('state updates in reponse to coordinator API', () => { expect(call.state.members[0].role).toBe('admin'); }); + it('should not clear members when updating custom data', async () => { + await call.getOrCreate({ + data: { + members: [{ user_id: 'sara' }, { user_id: 'jane' }], + }, + }); + + expect(call.state.members.length).toBe(2); + + await call.update({ + custom: { messageId: 'test-message-id' }, + }); + + expect(call.state.members.length).toBe(2); + expect(call.state.custom.messageId).toBe('test-message-id'); + }); + it('should get and update state', async () => { await serverClient.video.call(call.type, call.id).create({ data: {