import { expect, tap } from '@push.rocks/tapbundle'; import * as qenv from '@push.rocks/qenv'; import * as smartfile from '@push.rocks/smartfile'; const testQenv = new qenv.Qenv('./', './.nogit/'); import * as smartai from '../ts/index.js'; let testSmartai: smartai.SmartAi; tap.test('OpenAI Audio: should create a smartai instance with OpenAI provider', async () => { testSmartai = new smartai.SmartAi({ openaiToken: await testQenv.getEnvVarOnDemand('OPENAI_TOKEN'), }); await testSmartai.start(); }); tap.test('OpenAI Audio: should create audio response', async () => { // Call the audio method with a sample message. const audioStream = await testSmartai.openaiProvider.audio({ message: 'This is a test of audio generation.', }); // Read all chunks from the stream. const chunks: Uint8Array[] = []; for await (const chunk of audioStream) { chunks.push(chunk as Uint8Array); } const audioBuffer = Buffer.concat(chunks); await smartfile.fs.toFs(audioBuffer, './.nogit/testoutput.mp3'); console.log(`Audio Buffer length: ${audioBuffer.length}`); // Assert that the resulting buffer is not empty. expect(audioBuffer.length).toBeGreaterThan(0); }); tap.test('OpenAI Audio: should stop the smartai instance', async () => { await testSmartai.stop(); }); export default tap.start();