feat: add polar x tts and storage integration adapters with tests
This commit is contained in:
59
test/audio-generation.test.js
Normal file
59
test/audio-generation.test.js
Normal file
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert/strict");
|
||||
const { createAudioGenerationService } = require("../src/services/audio-generation");
|
||||
|
||||
test("enqueueJob generates audio and uploads it", async () => {
|
||||
const uploaded = [];
|
||||
const service = createAudioGenerationService({
|
||||
tts: {
|
||||
async synthesize() {
|
||||
return Buffer.from("bytes");
|
||||
},
|
||||
},
|
||||
storage: {
|
||||
async uploadAudio(payload) {
|
||||
uploaded.push(payload);
|
||||
},
|
||||
},
|
||||
logger: { error() {} },
|
||||
});
|
||||
|
||||
const result = await service.enqueueJob({
|
||||
assetId: "a1",
|
||||
text: "hello",
|
||||
});
|
||||
|
||||
assert.equal(result.storageKey, "audio/a1.mp3");
|
||||
assert.equal(uploaded.length, 1);
|
||||
assert.equal(uploaded[0].key, "audio/a1.mp3");
|
||||
});
|
||||
|
||||
test("enqueueJob invokes onFailed on error", async () => {
|
||||
let failed = false;
|
||||
const service = createAudioGenerationService({
|
||||
tts: {
|
||||
async synthesize() {
|
||||
throw new Error("tts_fail");
|
||||
},
|
||||
},
|
||||
storage: {
|
||||
async uploadAudio() {},
|
||||
},
|
||||
logger: { error() {} },
|
||||
});
|
||||
|
||||
await assert.rejects(
|
||||
() => service.enqueueJob({
|
||||
assetId: "a2",
|
||||
text: "hello",
|
||||
onFailed() {
|
||||
failed = true;
|
||||
},
|
||||
}),
|
||||
/tts_fail/,
|
||||
);
|
||||
|
||||
assert.equal(failed, true);
|
||||
});
|
||||
Reference in New Issue
Block a user