modified lib-jitsi-meet dev repo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

JitsiConferenceEvents.spec.ts 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. import * as exported from "./JitsiConferenceEvents";
  2. // this test is brittle on purpose because it's designed to ensure that the TypeScript conversion maintains backward compatibility
  3. describe( "/JitsiConferenceEvents members", () => {
  4. const {
  5. AUDIO_INPUT_STATE_CHANGE,
  6. AUDIO_UNMUTE_PERMISSIONS_CHANGED,
  7. AUTH_STATUS_CHANGED,
  8. BEFORE_STATISTICS_DISPOSED,
  9. CONFERENCE_ERROR,
  10. CONFERENCE_FAILED,
  11. CONFERENCE_JOIN_IN_PROGRESS,
  12. CONFERENCE_JOINED,
  13. CONFERENCE_LEFT,
  14. CONFERENCE_UNIQUE_ID_SET,
  15. CONNECTION_ESTABLISHED,
  16. CONNECTION_INTERRUPTED,
  17. CONNECTION_RESTORED,
  18. DATA_CHANNEL_OPENED,
  19. DATA_CHANNEL_CLOSED,
  20. DISPLAY_NAME_CHANGED,
  21. DOMINANT_SPEAKER_CHANGED,
  22. CONFERENCE_CREATED_TIMESTAMP,
  23. DTMF_SUPPORT_CHANGED,
  24. E2EE_VERIFICATION_AVAILABLE,
  25. E2EE_VERIFICATION_READY,
  26. E2EE_VERIFICATION_COMPLETED,
  27. ENDPOINT_MESSAGE_RECEIVED,
  28. ENDPOINT_STATS_RECEIVED,
  29. JVB121_STATUS,
  30. KICKED,
  31. PARTICIPANT_KICKED,
  32. PARTICIPANT_SOURCE_UPDATED,
  33. LAST_N_ENDPOINTS_CHANGED,
  34. FORWARDED_SOURCES_CHANGED,
  35. LOCK_STATE_CHANGED,
  36. SERVER_REGION_CHANGED,
  37. _MEDIA_SESSION_STARTED,
  38. _MEDIA_SESSION_ACTIVE_CHANGED,
  39. MEMBERS_ONLY_CHANGED,
  40. MESSAGE_RECEIVED,
  41. NO_AUDIO_INPUT,
  42. NOISY_MIC,
  43. NON_PARTICIPANT_MESSAGE_RECEIVED,
  44. PRIVATE_MESSAGE_RECEIVED,
  45. PARTCIPANT_FEATURES_CHANGED,
  46. PARTICIPANT_PROPERTY_CHANGED,
  47. P2P_STATUS,
  48. PHONE_NUMBER_CHANGED,
  49. PROPERTIES_CHANGED,
  50. RECORDER_STATE_CHANGED,
  51. VIDEO_SIP_GW_AVAILABILITY_CHANGED,
  52. VIDEO_SIP_GW_SESSION_STATE_CHANGED,
  53. START_MUTED_POLICY_CHANGED,
  54. STARTED_MUTED,
  55. SUBJECT_CHANGED,
  56. SUSPEND_DETECTED,
  57. TALK_WHILE_MUTED,
  58. TRACK_ADDED,
  59. TRACK_AUDIO_LEVEL_CHANGED,
  60. TRACK_MUTE_CHANGED,
  61. TRACK_REMOVED,
  62. TRACK_UNMUTE_REJECTED,
  63. TRANSCRIPTION_STATUS_CHANGED,
  64. USER_JOINED,
  65. USER_LEFT,
  66. USER_ROLE_CHANGED,
  67. USER_STATUS_CHANGED,
  68. VIDEO_UNMUTE_PERMISSIONS_CHANGED,
  69. BOT_TYPE_CHANGED,
  70. LOBBY_USER_JOINED,
  71. LOBBY_USER_UPDATED,
  72. LOBBY_USER_LEFT,
  73. AV_MODERATION_APPROVED,
  74. AV_MODERATION_REJECTED,
  75. AV_MODERATION_CHANGED,
  76. AV_MODERATION_PARTICIPANT_APPROVED,
  77. AV_MODERATION_PARTICIPANT_REJECTED,
  78. BREAKOUT_ROOMS_MOVE_TO_ROOM,
  79. BREAKOUT_ROOMS_UPDATED,
  80. METADATA_UPDATED,
  81. JitsiConferenceEvents,
  82. ...others
  83. } = exported;
  84. it( "known members", () => {
  85. expect( AUDIO_INPUT_STATE_CHANGE ).toBe( 'conference.audio_input_state_changed' );
  86. expect( AUDIO_UNMUTE_PERMISSIONS_CHANGED ).toBe( 'conference.audio_unmute_permissions_changed' );
  87. expect( AUTH_STATUS_CHANGED ).toBe( 'conference.auth_status_changed' );
  88. expect( BEFORE_STATISTICS_DISPOSED ).toBe( 'conference.beforeStatisticsDisposed' );
  89. expect( CONFERENCE_ERROR ).toBe( 'conference.error' );
  90. expect( CONFERENCE_FAILED ).toBe( 'conference.failed' );
  91. expect( CONFERENCE_JOIN_IN_PROGRESS ).toBe( 'conference.join_in_progress' );
  92. expect( CONFERENCE_JOINED ).toBe( 'conference.joined' );
  93. expect( CONFERENCE_LEFT ).toBe( 'conference.left' );
  94. expect( CONFERENCE_UNIQUE_ID_SET ).toBe( 'conference.unique_id_set' );
  95. expect( CONNECTION_ESTABLISHED ).toBe( 'conference.connectionEstablished' );
  96. expect( CONNECTION_INTERRUPTED ).toBe( 'conference.connectionInterrupted' );
  97. expect( CONNECTION_RESTORED ).toBe( 'conference.connectionRestored' );
  98. expect( DATA_CHANNEL_OPENED ).toBe( 'conference.dataChannelOpened' );
  99. expect( DATA_CHANNEL_CLOSED ).toBe( 'conference.dataChannelClosed' );
  100. expect( DISPLAY_NAME_CHANGED ).toBe( 'conference.displayNameChanged' );
  101. expect( DOMINANT_SPEAKER_CHANGED ).toBe( 'conference.dominantSpeaker' );
  102. expect( CONFERENCE_CREATED_TIMESTAMP ).toBe( 'conference.createdTimestamp' );
  103. expect( DTMF_SUPPORT_CHANGED ).toBe( 'conference.dtmfSupportChanged' );
  104. expect( ENDPOINT_MESSAGE_RECEIVED ).toBe( 'conference.endpoint_message_received' );
  105. expect( ENDPOINT_STATS_RECEIVED ).toBe( 'conference.endpoint_stats_received' );
  106. expect( JVB121_STATUS ).toBe( 'conference.jvb121Status' );
  107. expect( KICKED ).toBe( 'conference.kicked' );
  108. expect( PARTICIPANT_KICKED ).toBe( 'conference.participant_kicked' );
  109. expect( PARTICIPANT_SOURCE_UPDATED ).toBe( 'conference.participant_source_updated' );
  110. expect( LAST_N_ENDPOINTS_CHANGED ).toBe( 'conference.lastNEndpointsChanged' );
  111. expect( FORWARDED_SOURCES_CHANGED ).toBe( 'conference.forwardedSourcesChanged' );
  112. expect( LOCK_STATE_CHANGED ).toBe( 'conference.lock_state_changed' );
  113. expect( SERVER_REGION_CHANGED ).toBe( 'conference.server_region_changed' );
  114. expect( _MEDIA_SESSION_STARTED ).toBe( 'conference.media_session.started' );
  115. expect( _MEDIA_SESSION_ACTIVE_CHANGED ).toBe( 'conference.media_session.active_changed' );
  116. expect( MEMBERS_ONLY_CHANGED ).toBe( 'conference.membersOnlyChanged' );
  117. expect( MESSAGE_RECEIVED ).toBe( 'conference.messageReceived' );
  118. expect( NO_AUDIO_INPUT ).toBe( 'conference.no_audio_input' );
  119. expect( NOISY_MIC ).toBe( 'conference.noisy_mic' );
  120. expect( NON_PARTICIPANT_MESSAGE_RECEIVED ).toBe( 'conference.non_participant_message_received' );
  121. expect( PRIVATE_MESSAGE_RECEIVED ).toBe( 'conference.privateMessageReceived' );
  122. expect( PARTCIPANT_FEATURES_CHANGED ).toBe( 'conference.partcipant_features_changed' );
  123. expect( PARTICIPANT_PROPERTY_CHANGED ).toBe( 'conference.participant_property_changed' );
  124. expect( P2P_STATUS ).toBe( 'conference.p2pStatus' );
  125. expect( PHONE_NUMBER_CHANGED ).toBe( 'conference.phoneNumberChanged' );
  126. expect( PROPERTIES_CHANGED ).toBe( 'conference.propertiesChanged' );
  127. expect( RECORDER_STATE_CHANGED ).toBe( 'conference.recorderStateChanged' );
  128. expect( VIDEO_SIP_GW_AVAILABILITY_CHANGED ).toBe( 'conference.videoSIPGWAvailabilityChanged' );
  129. expect( VIDEO_SIP_GW_SESSION_STATE_CHANGED ).toBe( 'conference.videoSIPGWSessionStateChanged' );
  130. expect( START_MUTED_POLICY_CHANGED ).toBe( 'conference.start_muted_policy_changed' );
  131. expect( STARTED_MUTED ).toBe( 'conference.started_muted' );
  132. expect( SUBJECT_CHANGED ).toBe( 'conference.subjectChanged' );
  133. expect( SUSPEND_DETECTED ).toBe( 'conference.suspendDetected' );
  134. expect( TALK_WHILE_MUTED ).toBe( 'conference.talk_while_muted' );
  135. expect( TRACK_ADDED ).toBe( 'conference.trackAdded' );
  136. expect( TRACK_AUDIO_LEVEL_CHANGED ).toBe( 'conference.audioLevelsChanged' );
  137. expect( TRACK_MUTE_CHANGED ).toBe( 'conference.trackMuteChanged' );
  138. expect( TRACK_REMOVED ).toBe( 'conference.trackRemoved' );
  139. expect( TRACK_UNMUTE_REJECTED ).toBe( 'conference.trackUnmuteRejected' );
  140. expect( TRANSCRIPTION_STATUS_CHANGED ).toBe( 'conference.transcriptionStatusChanged' );
  141. expect( USER_JOINED ).toBe( 'conference.userJoined' );
  142. expect( USER_LEFT ).toBe( 'conference.userLeft' );
  143. expect( USER_ROLE_CHANGED ).toBe( 'conference.roleChanged' );
  144. expect( USER_STATUS_CHANGED ).toBe( 'conference.statusChanged' );
  145. expect( VIDEO_UNMUTE_PERMISSIONS_CHANGED ).toBe( 'conference.video_unmute_permissions_changed' );
  146. expect( BOT_TYPE_CHANGED ).toBe( 'conference.bot_type_changed' );
  147. expect( LOBBY_USER_JOINED ).toBe( 'conference.lobby.userJoined' );
  148. expect( LOBBY_USER_UPDATED ).toBe( 'conference.lobby.userUpdated' );
  149. expect( LOBBY_USER_LEFT ).toBe( 'conference.lobby.userLeft' );
  150. expect( AV_MODERATION_APPROVED ).toBe( 'conference.av_moderation.approved' );
  151. expect( AV_MODERATION_REJECTED ).toBe( 'conference.av_moderation.rejected' );
  152. expect( AV_MODERATION_CHANGED ).toBe( 'conference.av_moderation.changed' );
  153. expect( AV_MODERATION_PARTICIPANT_APPROVED ).toBe( 'conference.av_moderation.participant.approved' );
  154. expect( AV_MODERATION_PARTICIPANT_REJECTED ).toBe( 'conference.av_moderation.participant.rejected' );
  155. expect( BREAKOUT_ROOMS_MOVE_TO_ROOM ).toBe( 'conference.breakout-rooms.move-to-room' );
  156. expect( BREAKOUT_ROOMS_UPDATED ).toBe( 'conference.breakout-rooms.updated' );
  157. expect( METADATA_UPDATED ).toBe( 'conference.metadata.updated' );
  158. expect( JitsiConferenceEvents ).toBeDefined();
  159. expect( JitsiConferenceEvents.AUDIO_INPUT_STATE_CHANGE ).toBe( 'conference.audio_input_state_changed' );
  160. expect( JitsiConferenceEvents.AUDIO_UNMUTE_PERMISSIONS_CHANGED ).toBe( 'conference.audio_unmute_permissions_changed' );
  161. expect( JitsiConferenceEvents.AUTH_STATUS_CHANGED ).toBe( 'conference.auth_status_changed' );
  162. expect( JitsiConferenceEvents.BEFORE_STATISTICS_DISPOSED ).toBe( 'conference.beforeStatisticsDisposed' );
  163. expect( JitsiConferenceEvents.CONFERENCE_ERROR ).toBe( 'conference.error' );
  164. expect( JitsiConferenceEvents.CONFERENCE_FAILED ).toBe( 'conference.failed' );
  165. expect( JitsiConferenceEvents.CONFERENCE_JOIN_IN_PROGRESS ).toBe( 'conference.join_in_progress' );
  166. expect( JitsiConferenceEvents.CONFERENCE_JOINED ).toBe( 'conference.joined' );
  167. expect( JitsiConferenceEvents.CONFERENCE_LEFT ).toBe( 'conference.left' );
  168. expect( JitsiConferenceEvents.CONFERENCE_UNIQUE_ID_SET ).toBe( 'conference.unique_id_set' );
  169. expect( JitsiConferenceEvents.CONNECTION_ESTABLISHED ).toBe( 'conference.connectionEstablished' );
  170. expect( JitsiConferenceEvents.CONNECTION_INTERRUPTED ).toBe( 'conference.connectionInterrupted' );
  171. expect( JitsiConferenceEvents.CONNECTION_RESTORED ).toBe( 'conference.connectionRestored' );
  172. expect( JitsiConferenceEvents.DATA_CHANNEL_OPENED ).toBe( 'conference.dataChannelOpened' );
  173. expect( JitsiConferenceEvents.DATA_CHANNEL_CLOSED ).toBe( 'conference.dataChannelClosed' );
  174. expect( JitsiConferenceEvents.DISPLAY_NAME_CHANGED ).toBe( 'conference.displayNameChanged' );
  175. expect( JitsiConferenceEvents.DOMINANT_SPEAKER_CHANGED ).toBe( 'conference.dominantSpeaker' );
  176. expect( JitsiConferenceEvents.CONFERENCE_CREATED_TIMESTAMP ).toBe( 'conference.createdTimestamp' );
  177. expect( JitsiConferenceEvents.DTMF_SUPPORT_CHANGED ).toBe( 'conference.dtmfSupportChanged' );
  178. expect( JitsiConferenceEvents.ENDPOINT_MESSAGE_RECEIVED ).toBe( 'conference.endpoint_message_received' );
  179. expect( JitsiConferenceEvents.ENDPOINT_STATS_RECEIVED ).toBe( 'conference.endpoint_stats_received' );
  180. expect( JitsiConferenceEvents.JVB121_STATUS ).toBe( 'conference.jvb121Status' );
  181. expect( JitsiConferenceEvents.KICKED ).toBe( 'conference.kicked' );
  182. expect( JitsiConferenceEvents.PARTICIPANT_KICKED ).toBe( 'conference.participant_kicked' );
  183. expect( JitsiConferenceEvents.LAST_N_ENDPOINTS_CHANGED ).toBe( 'conference.lastNEndpointsChanged' );
  184. expect( JitsiConferenceEvents.FORWARDED_SOURCES_CHANGED ).toBe( 'conference.forwardedSourcesChanged' );
  185. expect( JitsiConferenceEvents.LOCK_STATE_CHANGED ).toBe( 'conference.lock_state_changed' );
  186. expect( JitsiConferenceEvents.SERVER_REGION_CHANGED ).toBe( 'conference.server_region_changed' );
  187. expect( JitsiConferenceEvents._MEDIA_SESSION_STARTED ).toBe( 'conference.media_session.started' );
  188. expect( JitsiConferenceEvents._MEDIA_SESSION_ACTIVE_CHANGED ).toBe( 'conference.media_session.active_changed' );
  189. expect( JitsiConferenceEvents.MEMBERS_ONLY_CHANGED ).toBe( 'conference.membersOnlyChanged' );
  190. expect( JitsiConferenceEvents.MESSAGE_RECEIVED ).toBe( 'conference.messageReceived' );
  191. expect( JitsiConferenceEvents.NO_AUDIO_INPUT ).toBe( 'conference.no_audio_input' );
  192. expect( JitsiConferenceEvents.NOISY_MIC ).toBe( 'conference.noisy_mic' );
  193. expect( JitsiConferenceEvents.NON_PARTICIPANT_MESSAGE_RECEIVED ).toBe( 'conference.non_participant_message_received' );
  194. expect( JitsiConferenceEvents.PRIVATE_MESSAGE_RECEIVED ).toBe( 'conference.privateMessageReceived' );
  195. expect( JitsiConferenceEvents.PARTCIPANT_FEATURES_CHANGED ).toBe( 'conference.partcipant_features_changed' );
  196. expect( JitsiConferenceEvents.PARTICIPANT_PROPERTY_CHANGED ).toBe( 'conference.participant_property_changed' );
  197. expect( JitsiConferenceEvents.P2P_STATUS ).toBe( 'conference.p2pStatus' );
  198. expect( JitsiConferenceEvents.PHONE_NUMBER_CHANGED ).toBe( 'conference.phoneNumberChanged' );
  199. expect( JitsiConferenceEvents.PROPERTIES_CHANGED ).toBe( 'conference.propertiesChanged' );
  200. expect( JitsiConferenceEvents.RECORDER_STATE_CHANGED ).toBe( 'conference.recorderStateChanged' );
  201. expect( JitsiConferenceEvents.VIDEO_SIP_GW_AVAILABILITY_CHANGED ).toBe( 'conference.videoSIPGWAvailabilityChanged' );
  202. expect( JitsiConferenceEvents.VIDEO_SIP_GW_SESSION_STATE_CHANGED ).toBe( 'conference.videoSIPGWSessionStateChanged' );
  203. expect( JitsiConferenceEvents.START_MUTED_POLICY_CHANGED ).toBe( 'conference.start_muted_policy_changed' );
  204. expect( JitsiConferenceEvents.STARTED_MUTED ).toBe( 'conference.started_muted' );
  205. expect( JitsiConferenceEvents.SUBJECT_CHANGED ).toBe( 'conference.subjectChanged' );
  206. expect( JitsiConferenceEvents.SUSPEND_DETECTED ).toBe( 'conference.suspendDetected' );
  207. expect( JitsiConferenceEvents.TALK_WHILE_MUTED ).toBe( 'conference.talk_while_muted' );
  208. expect( JitsiConferenceEvents.TRACK_ADDED ).toBe( 'conference.trackAdded' );
  209. expect( JitsiConferenceEvents.TRACK_AUDIO_LEVEL_CHANGED ).toBe( 'conference.audioLevelsChanged' );
  210. expect( JitsiConferenceEvents.TRACK_MUTE_CHANGED ).toBe( 'conference.trackMuteChanged' );
  211. expect( JitsiConferenceEvents.TRACK_REMOVED ).toBe( 'conference.trackRemoved' );
  212. expect( JitsiConferenceEvents.TRACK_UNMUTE_REJECTED ).toBe( 'conference.trackUnmuteRejected' );
  213. expect( JitsiConferenceEvents.TRANSCRIPTION_STATUS_CHANGED ).toBe( 'conference.transcriptionStatusChanged' );
  214. expect( JitsiConferenceEvents.USER_JOINED ).toBe( 'conference.userJoined' );
  215. expect( JitsiConferenceEvents.USER_LEFT ).toBe( 'conference.userLeft' );
  216. expect( JitsiConferenceEvents.USER_ROLE_CHANGED ).toBe( 'conference.roleChanged' );
  217. expect( JitsiConferenceEvents.USER_STATUS_CHANGED ).toBe( 'conference.statusChanged' );
  218. expect( JitsiConferenceEvents.VIDEO_UNMUTE_PERMISSIONS_CHANGED ).toBe( 'conference.video_unmute_permissions_changed' );
  219. expect( JitsiConferenceEvents.BOT_TYPE_CHANGED ).toBe( 'conference.bot_type_changed' );
  220. expect( JitsiConferenceEvents.LOBBY_USER_JOINED ).toBe( 'conference.lobby.userJoined' );
  221. expect( JitsiConferenceEvents.LOBBY_USER_UPDATED ).toBe( 'conference.lobby.userUpdated' );
  222. expect( JitsiConferenceEvents.LOBBY_USER_LEFT ).toBe( 'conference.lobby.userLeft' );
  223. expect( JitsiConferenceEvents.AV_MODERATION_APPROVED ).toBe( 'conference.av_moderation.approved' );
  224. expect( JitsiConferenceEvents.AV_MODERATION_REJECTED ).toBe( 'conference.av_moderation.rejected' );
  225. expect( JitsiConferenceEvents.AV_MODERATION_CHANGED ).toBe( 'conference.av_moderation.changed' );
  226. expect( JitsiConferenceEvents.AV_MODERATION_PARTICIPANT_APPROVED ).toBe( 'conference.av_moderation.participant.approved' );
  227. expect( JitsiConferenceEvents.AV_MODERATION_PARTICIPANT_REJECTED ).toBe( 'conference.av_moderation.participant.rejected' );
  228. expect( JitsiConferenceEvents.BREAKOUT_ROOMS_MOVE_TO_ROOM ).toBe( 'conference.breakout-rooms.move-to-room' );
  229. expect( JitsiConferenceEvents.BREAKOUT_ROOMS_UPDATED ).toBe( 'conference.breakout-rooms.updated' );
  230. expect( JitsiConferenceEvents.METADATA_UPDATED ).toBe( 'conference.metadata.updated' );
  231. expect( JitsiConferenceEvents.E2EE_VERIFICATION_READY ).toBe( 'conference.e2ee.verification.ready' );
  232. expect( JitsiConferenceEvents.E2EE_VERIFICATION_COMPLETED ).toBe( 'conference.e2ee.verification.completed' );
  233. expect( JitsiConferenceEvents.E2EE_VERIFICATION_AVAILABLE ).toBe( 'conference.e2ee.verification.available' );
  234. } );
  235. it( "unknown members", () => {
  236. const keys = Object.keys( others );
  237. expect( keys ).withContext( `Extra members: ${ keys.join( ", " ) }` ).toEqual( [] );
  238. } );
  239. } );