import { newResult , TestResult } from './utils' ; export async function diagConverse ( test , { settingsManager } ) { const result = newResult ( test ) ; result . label = 'Builtin ConverseJS on XMPP service' ; const builtinSettings = await settingsManager . getSettings ( [ 'chat-server' , 'chat-room' , 'chat-bosh-uri' , 'chat-ws-uri' ] ) ; let isBuiltinError = false ; const chatServer = ( builtinSettings [ 'chat-server' ] as string ) || '' ; if ( chatServer === '' ) { result . messages . push ( 'Missing chat server configuration' ) ; isBuiltinError = true ; } else if ( ! /^([a-z0-9.]+)+[a-z0-9]+$/ . test ( chatServer ) ) { result . messages . push ( 'Invalid value for the webchat server: "' + chatServer + '"' ) ; isBuiltinError = true ; } else { result . messages . push ( 'Chat server is correct' ) ; } const chatRoom = ( builtinSettings [ 'chat-room' ] as string ) || '' ; if ( chatRoom === '' ) { result . messages . push ( 'Missing chat room configuration' ) ; isBuiltinError = true ; } else if ( ! /^(\w|{{(VIDEO_UUID|CHANNEL_ID|CHANNEL_NAME)}})+@([a-z0-9.]+)+[a-z0-9]+$/ . test ( chatRoom ) ) { result . messages . push ( 'Invalid value for the webchat room: "' + chatRoom + '"' ) ; isBuiltinError = true ; } else { result . messages . push ( 'Chat room is correct and will be: ' + chatRoom ) ; } const chatBoshUri = ( builtinSettings [ 'chat-bosh-uri' ] as string ) || '' ; const chatWsUri = ( builtinSettings [ 'chat-ws-uri' ] as string ) || '' ; if ( chatBoshUri === '' && chatWsUri === '' ) { result . messages . push ( 'Missing BOSH or Websocket uri' ) ; isBuiltinError = true ; } if ( chatBoshUri !== '' ) { if ( ! /^https?:\/\// . test ( chatBoshUri ) ) { result . messages . push ( 'Invalid BOSH Uri, should begin with https://' ) ; isBuiltinError = true ; } else { result . messages . push ( 'Valid Bosh Uri' ) ; } } if ( chatWsUri !== '' ) { if ( ! /^wss?:\/\// . test ( chatWsUri ) ) { result . messages . push ( 'Invalid Websocket Uri, should begin with wss://' ) ; isBuiltinError = true ; } else { result . messages . push ( 'Valid Websocket Uri' ) ; } } if ( ! isBuiltinError ) { result . messages . push ( 'Builtin converse is correctly configured' ) ; result . ok = true ; } return result ; }