Files
jambonz-api-server/test/utils.js
xquanluu 2db8cb4d3a feat: auto choose speech synthezier from account/service level for createCall (#60)
* feat: auto choose speech synthezier from account/service level

* wip: add integration test

* fix: review comment

* fix: review comment
2022-08-24 10:06:38 +02:00

141 lines
3.2 KiB
JavaScript

const { v4: uuid } = require('uuid');
const fs = require('fs');
const request_fs_mock = require('request-promise-native').defaults({
baseUrl: 'http://127.0.0.1:3100'
});
const ADMIN_TOKEN = '38700987-c7a4-4685-a5bb-af378f9734de';
const authAdmin = {bearer: ADMIN_TOKEN};
async function createServiceProvider(request, name = 'daveh') {
const result = await request.post('/ServiceProviders', {
auth: authAdmin,
json: true,
body: {
name
}
});
return result.sid;
}
async function createVoipCarrier(request, name = 'daveh') {
const result = await request.post('/VoipCarriers', {
auth: authAdmin,
json: true,
body: {
name
}
});
return result.sid;
}
async function createPhoneNumber(request, voip_carrier_sid, number = '15083333456') {
const result = await request.post('/PhoneNumbers', {
auth: authAdmin,
json: true,
body: {
number,
voip_carrier_sid
}
});
return result.sid;
}
async function createAccount(request, service_provider_sid, name = 'daveh') {
const result = await request.post('/Accounts', {
auth: authAdmin,
json: true,
body: {
name,
service_provider_sid,
webhook_secret: 'foobar'
}
});
return result.sid;
}
async function createApplication(request, account_sid, name = 'daveh') {
const result = await request.post('/Applications', {
auth: authAdmin,
json: true,
body: {
name,
account_sid,
call_hook: {
url: 'http://example.com'
},
call_status_hook: {
url: 'http://example.com'
}
}
});
return result.sid;
}
async function createApiKey(request, account_sid) {
const result = await request.post('/ApiKeys', {
auth: authAdmin,
json: true,
body: {
account_sid,
token: uuid()
}
});
return result.sid;
}
async function deleteObjectBySid(request, path, sid) {
const result = await request.delete(`${path}/${sid}`, {
auth: authAdmin,
});
return result;
}
async function createGoogleSpeechCredentials(request, account_sid, service_provider_sid,token, use_tts, use_stt) {
const jsonKey = fs.readFileSync(`${__dirname}/data/test.json`, {encoding: 'utf8'});
if(account_sid) {
const result = await request.post(`/Accounts/${account_sid}/SpeechCredentials`, {
auth: token ? token : authAdmin,
json: true,
body: {
vendor: 'google',
service_key: jsonKey,
use_for_tts: use_tts,
use_for_stt: use_stt
}
});
return result.sid;
} else if(service_provider_sid) {
const result = await request.post(`/ServiceProviders/${service_provider_sid}/SpeechCredentials`, {
auth: token ? token : authAdmin,
json: true,
body: {
vendor: 'google',
service_key: jsonKey,
use_for_tts: use_tts,
use_for_stt: use_stt
}
});
return result.sid;
}
}
async function getLastRequestFromFeatureServer(key) {
const result = await request_fs_mock.get(`/lastRequest/${key}`);
return result;
}
module.exports = {
createServiceProvider,
createVoipCarrier,
createPhoneNumber,
createAccount,
createApplication,
createApiKey,
deleteObjectBySid,
createGoogleSpeechCredentials,
getLastRequestFromFeatureServer
};