mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2025-12-19 05:47:46 +00:00
65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
const test = require('tape') ;
|
|
const jwt = require('jsonwebtoken');
|
|
const ADMIN_TOKEN = '38700987-c7a4-4685-a5bb-af378f9734de';
|
|
const authAdmin = {bearer: ADMIN_TOKEN};
|
|
const { createClient } = require('./http-client');
|
|
const request = createClient({
|
|
baseUrl: 'http://127.0.0.1:3000/v1'
|
|
});
|
|
const crypto = require('crypto');
|
|
const logger = require('../lib/logger');
|
|
|
|
const {
|
|
client,
|
|
} = require('@jambonz/speech-utils')({
|
|
host: process.env.JAMBONES_REDIS_HOST,
|
|
port: process.env.JAMBONES_REDIS_PORT || 6379
|
|
}, logger);
|
|
|
|
function makeSynthKey({account_sid = '', vendor, language, voice, engine = '', text}) {
|
|
const hash = crypto.createHash('sha1');
|
|
hash.update(`${language}:${vendor}:${voice}:${engine}:${text}`);
|
|
return `tts${account_sid ? (':' + account_sid) : ''}:${hash.digest('hex')}`;
|
|
}
|
|
|
|
test('tts-cache', async(t) => {
|
|
const app = require('../app');
|
|
try {
|
|
// clear cache to start
|
|
let result = await request.delete('/TtsCache', {
|
|
auth: authAdmin,
|
|
resolveWithFullResponse: true,
|
|
});
|
|
t.ok(result.statusCode === 204, 'successfully purged cache for start of test');
|
|
|
|
// create caches
|
|
const minRecords = 8;
|
|
for (const i in Array(minRecords).fill(0)) {
|
|
await client.set(makeSynthKey({vendor: i, language: i, voice: i, engine: i, text: i}), i);
|
|
}
|
|
|
|
result = await request.get('/TtsCache', {
|
|
auth: authAdmin,
|
|
json: true,
|
|
});
|
|
//console.log(result);
|
|
|
|
t.ok(result.size === minRecords, 'get cache correctly');
|
|
|
|
result = await request.delete('/TtsCache', {
|
|
auth: authAdmin,
|
|
resolveWithFullResponse: true,
|
|
});
|
|
t.ok(result.statusCode === 204, 'successfully purged cache');
|
|
|
|
result = await request.get('/TtsCache', {
|
|
auth: authAdmin,
|
|
json: true,
|
|
});
|
|
|
|
t.ok(result.size === 0, 'deleted cache successfully');
|
|
} catch(err) {
|
|
console.error(err);
|
|
t.end(err);
|
|
}
|
|
}); |