@@ -4,6 +4,7 @@ import { createTestClient } from './create-test-client';
44import { StreamCall } from '../src/StreamCall' ;
55import { StreamClient } from '../src/StreamClient' ;
66import {
7+ VideoDeleteCallResponse ,
78 VideoRecordSettingsRequestModeEnum ,
89 VideoRecordSettingsRequestQualityEnum ,
910} from '../src/gen/video' ;
@@ -158,127 +159,136 @@ describe('call API', () => {
158159 ) ;
159160 } ) ;
160161
161- describe ( 'recording' , ( ) => {
162- it ( 'enable call recording' , async ( ) => {
163- let response = await call . update ( {
164- settings_override : {
165- recording : {
166- mode : VideoRecordSettingsRequestModeEnum . DISABLED ,
167- audio_only : true ,
168- } ,
162+ it ( 'enable call recording' , async ( ) => {
163+ let response = await call . update ( {
164+ settings_override : {
165+ recording : {
166+ mode : VideoRecordSettingsRequestModeEnum . DISABLED ,
167+ audio_only : true ,
169168 } ,
170- } ) ;
171- let settings = response . call . settings . recording ;
169+ } ,
170+ } ) ;
171+ let settings = response . call . settings . recording ;
172172
173- expect ( settings . mode ) . toBe ( VideoRecordSettingsRequestModeEnum . DISABLED ) ;
173+ expect ( settings . mode ) . toBe ( VideoRecordSettingsRequestModeEnum . DISABLED ) ;
174174
175- response = await call . update ( {
176- settings_override : {
177- recording : {
178- mode : VideoRecordSettingsRequestModeEnum . AVAILABLE ,
179- } ,
175+ response = await call . update ( {
176+ settings_override : {
177+ recording : {
178+ mode : VideoRecordSettingsRequestModeEnum . AVAILABLE ,
180179 } ,
181- } ) ;
180+ } ,
181+ } ) ;
182182
183- settings = response . call . settings . recording ;
184- expect ( settings . mode ) . toBe ( VideoRecordSettingsRequestModeEnum . AVAILABLE ) ;
183+ settings = response . call . settings . recording ;
184+ expect ( settings . mode ) . toBe ( VideoRecordSettingsRequestModeEnum . AVAILABLE ) ;
185185
186- response = await call . update ( {
187- settings_override : {
188- recording : {
189- audio_only : false ,
190- quality : VideoRecordSettingsRequestQualityEnum . _1080P ,
191- mode : VideoRecordSettingsRequestModeEnum . AUTO_ON ,
192- } ,
186+ response = await call . update ( {
187+ settings_override : {
188+ recording : {
189+ audio_only : false ,
190+ quality : VideoRecordSettingsRequestQualityEnum . _1080P ,
191+ mode : VideoRecordSettingsRequestModeEnum . AUTO_ON ,
193192 } ,
194- } ) ;
195-
196- settings = response . call . settings . recording ;
197- expect ( settings . audio_only ) . toBe ( false ) ;
198- expect ( settings . quality ) . toBe (
199- VideoRecordSettingsRequestQualityEnum . _1080P ,
200- ) ;
193+ } ,
201194 } ) ;
202195
203- it ( 'start recording' , async ( ) => {
204- // somewhat dummy test, we should do a proper test in the future where we join a call and start recording
205- await expect ( ( ) => call . startRecording ( ) ) . rejects . toThrowError (
206- 'Stream error code 4: StartRecording failed with error: "cannot record inactive call"' ,
207- ) ;
208- } ) ;
196+ settings = response . call . settings . recording ;
197+ expect ( settings . audio_only ) . toBe ( false ) ;
198+ expect ( settings . quality ) . toBe ( VideoRecordSettingsRequestQualityEnum . _1080P ) ;
199+ } ) ;
209200
210- it ( 'stop recording' , async ( ) => {
211- // somewhat dummy test, we should do a proper test in the future
212- await expect ( ( ) => call . stopRecording ( ) ) . rejects . toThrowError (
213- 'Stream error code 4: StopRecording failed with error: "call is not being recorded "' ,
214- ) ;
215- } ) ;
201+ it ( 'start recording' , async ( ) => {
202+ // somewhat dummy test, we should do a proper test in the future where we join a call and start recording
203+ await expect ( ( ) => call . startRecording ( ) ) . rejects . toThrowError (
204+ 'Stream error code 4: StartRecording failed with error: "cannot record inactive call "' ,
205+ ) ;
206+ } ) ;
216207
217- it ( 'delete recording' , async ( ) => {
218- // somewhat dummy test, we should do a proper test in the future
219- await expect ( ( ) =>
220- call . deleteRecording ( { session : 'test' , filename : 'test' } ) ,
221- ) . rejects . toThrowError (
222- `Stream error code 16: DeleteRecording failed with error: "recording doesn't exist"` ,
223- ) ;
224- } ) ;
208+ it ( 'stop recording' , async ( ) => {
209+ // somewhat dummy test, we should do a proper test in the future
210+ await expect ( ( ) => call . stopRecording ( ) ) . rejects . toThrowError (
211+ 'Stream error code 4: StopRecording failed with error: "call is not being recorded"' ,
212+ ) ;
213+ } ) ;
225214
226- it ( 'query recordings' , async ( ) => {
227- // somewhat dummy test, we should do a proper test in the future
228- const response = await call . listRecordings ( ) ;
215+ it ( 'delete recording' , async ( ) => {
216+ // somewhat dummy test, we should do a proper test in the future
217+ await expect ( ( ) =>
218+ call . deleteRecording ( { session : 'test' , filename : 'test' } ) ,
219+ ) . rejects . toThrowError (
220+ `Stream error code 16: DeleteRecording failed with error: "recording doesn't exist"` ,
221+ ) ;
222+ } ) ;
229223
230- expect ( response . recordings ) . toBeDefined ( ) ;
224+ it ( 'query recordings' , async ( ) => {
225+ // somewhat dummy test, we should do a proper test in the future
226+ const response = await call . listRecordings ( ) ;
227+
228+ expect ( response . recordings ) . toBeDefined ( ) ;
229+ } ) ;
230+
231+ it ( 'enable backstage mode' , async ( ) => {
232+ const response = await call . update ( {
233+ settings_override : {
234+ backstage : {
235+ enabled : true ,
236+ } ,
237+ } ,
231238 } ) ;
232239
233- describe ( 'streaming' , ( ) => {
234- it ( 'enable backstage mode' , async ( ) => {
235- const response = await call . update ( {
236- settings_override : {
237- backstage : {
238- enabled : true ,
239- } ,
240- } ,
241- } ) ;
240+ expect ( response . call . settings . backstage . enabled ) . toBe ( true ) ;
241+ } ) ;
242242
243- expect ( response . call . settings . backstage . enabled ) . toBe ( true ) ;
244- } ) ;
243+ it ( 'go live' , async ( ) => {
244+ const response = await call . goLive ( ) ;
245245
246- it ( 'go live' , async ( ) => {
247- const response = await call . goLive ( ) ;
246+ expect ( response . call . backstage ) . toBe ( false ) ;
247+ } ) ;
248248
249- expect ( response . call . backstage ) . toBe ( false ) ;
250- } ) ;
249+ it ( 'stop live' , async ( ) => {
250+ const response = await call . stopLive ( ) ;
251251
252- it ( 'stop live' , async ( ) => {
253- const response = await call . stopLive ( ) ;
252+ expect ( response . call . backstage ) . toBe ( true ) ;
253+ } ) ;
254254
255- expect ( response . call . backstage ) . toBe ( true ) ;
256- } ) ;
257- } ) ;
255+ it ( 'start transcribing' , async ( ) => {
256+ // somewhat dummy test, we should do a proper test in the future where we join a call and start recording
257+ await expect ( ( ) => call . startTranscription ( ) ) . rejects . toThrowError (
258+ 'Stream error code 4: StartTranscription failed with error: "cannot transcribe inactive call"' ,
259+ ) ;
260+ } ) ;
258261
259- describe ( 'transcriptions' , ( ) => {
260- it ( 'start transcribing' , async ( ) => {
261- // somewhat dummy test, we should do a proper test in the future where we join a call and start recording
262- await expect ( ( ) => call . startTranscription ( ) ) . rejects . toThrowError (
263- 'Stream error code 4: StartTranscription failed with error: "cannot transcribe inactive call"' ,
264- ) ;
265- } ) ;
262+ it ( 'stop transcribing' , async ( ) => {
263+ // somewhat dummy test, we should do a proper test in the future
264+ await expect ( ( ) => call . stopTranscription ( ) ) . rejects . toThrowError (
265+ 'Stream error code 4: StopTranscription failed with error: "call is not being transcribed"' ,
266+ ) ;
267+ } ) ;
266268
267- it ( 'stop transcribing' , async ( ) => {
268- // somewhat dummy test, we should do a proper test in the future
269- await expect ( ( ) => call . stopTranscription ( ) ) . rejects . toThrowError (
270- 'Stream error code 4: StopTranscription failed with error: "call is not being transcribed"' ,
271- ) ;
272- } ) ;
269+ it ( 'delete transcription' , async ( ) => {
270+ // somewhat dummy test, we should do a proper test in the future
271+ await expect ( ( ) =>
272+ call . deleteTranscription ( { session : 'test' , filename : 'test' } ) ,
273+ ) . rejects . toThrowError (
274+ `Stream error code 16: DeleteTranscription failed with error: "transcription doesn't exist"` ,
275+ ) ;
276+ } ) ;
273277
274- it ( 'delete transcription' , async ( ) => {
275- // somewhat dummy test, we should do a proper test in the future
276- await expect ( ( ) =>
277- call . deleteTranscription ( { session : 'test' , filename : 'test' } ) ,
278- ) . rejects . toThrowError (
279- `Stream error code 16: DeleteTranscription failed with error: "transcription doesn't exist"` ,
280- ) ;
278+ it ( 'delete call' , async ( ) => {
279+ let response : VideoDeleteCallResponse ;
280+ try {
281+ response = await call . delete ( { hard : true } ) ;
282+ } catch ( e ) {
283+ // the first request fails on backend sometimes
284+ // retry it
285+ await new Promise < void > ( ( resolve ) => {
286+ setTimeout ( ( ) => resolve ( ) , 2000 ) ;
281287 } ) ;
282- } ) ;
288+
289+ response = await call . delete ( { hard : true } ) ;
290+ }
291+
292+ expect ( response . duration ) . toBeDefined ( ) ;
283293 } ) ;
284294} ) ;
0 commit comments