require_relative '../call_utils'
# Integration Tests for Bandwidth::TranscriptionsApi
describe 'TranscriptionsApi Integration Tests' do
before(:all) do
Bandwidth.configure do |config|
config.username = BW_USERNAME
config.password = BW_PASSWORD
end
@transcriptions_api_instance = Bandwidth::TranscriptionsApi.new
@calls_api_instance = Bandwidth::CallsApi.new
# transcription info
$manteca_test_id = setup_manteca('CALL')
$manteca_call_id = create_manteca_call($manteca_test_id, '/bxml/idle', @calls_api_instance)
$transcription_id = ''
end
# Create Call Transcription
describe 'create_call_transcription' do
it 'creates a call transcription' do
sleep(SLEEP_TIME_S)
start_transcription_bxml = ""
_start_data, start_status_code = @calls_api_instance.update_call_bxml_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, start_transcription_bxml)
expect(start_status_code).to eq(204)
sleep(SLEEP_TIME_S)
stop_transcription_bxml = ""
_stop_data, stop_status_code = @calls_api_instance.update_call_bxml_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, stop_transcription_bxml)
expect(stop_status_code).to eq(204)
sleep(SLEEP_TIME_S)
_complete_data, complete_status_code = @calls_api_instance.update_call_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $complete_call_body)
expect(complete_status_code).to eq(200)
end
end
# List Real Time Call Transcriptions
describe 'list_real_time_transcriptions' do
it 'lists call transcriptions' do
sleep(SLEEP_TIME_S * 20)
data, status_code, _headers = @transcriptions_api_instance.list_real_time_transcriptions_with_http_info(BW_ACCOUNT_ID, $manteca_call_id)
expect(status_code).to eq(200)
expect(data).to be_instance_of(Array)
expect(data[0]).to be_instance_of(Bandwidth::CallTranscriptionMetadata)
expect(data[0].transcription_id).to be_instance_of(String)
expect(data[0].transcription_url).to be_instance_of(String)
expect(data[0].transcription_name).to be_instance_of(String)
$transcription_id = data[0].transcription_id
end
end
# Get Real Time Call Transcription
describe 'get_real_time_transcription' do
it 'gets the specified call transcription' do
data, status_code, _headers = @transcriptions_api_instance.get_real_time_transcription_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $transcription_id)
expect(status_code).to eq(200)
expect(data).to be_instance_of(Bandwidth::CallTranscriptionResponse)
expect(data.account_id).to eq(BW_ACCOUNT_ID)
expect(data.call_id).to eq($manteca_call_id)
expect(data.transcription_id).to eq($transcription_id)
expect(data.tracks).to be_instance_of(Array)
expect(data.tracks[0]).to be_instance_of(Bandwidth::CallTranscription)
expect(data.tracks[0].track).to eq('inbound')
expect(data.tracks[0].confidence).to be_instance_of(Float)
end
end
# Delete Real Time Call Transcription
describe 'delete_real_time_transcription' do
it 'deletes the specified call transcription' do
_data, status_code = @transcriptions_api_instance.delete_real_time_transcription_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $transcription_id)
expect(status_code).to eq(200) # This is a bug in the API, it should return 204. VAPI-1863 should fix this.
end
end
end