test(adapters/recognition): add tests for adapters recognition

This commit is contained in:
xtrullor73
2024-07-04 11:32:35 -07:00
parent f8b7cd7b3e
commit 151d8ca037
2 changed files with 110 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
import { expect } from 'chai';
import sinon from 'sinon';
import esmock from 'esmock';
describe('recognizeAudioFiles', () => {
let recognizeAudioStub;
let recognizeAudioFiles;
beforeEach(async () => {
recognizeAudioStub = sinon.stub();
// Mocking the acosutidAdapter and its dependency
const module = await esmock('../../../src/adapters/recognition/acoustidAdapter.js', {
'../../../src/api/recognition/acoustidApi.js': {
default: recognizeAudioStub
}
});
recognizeAudioFiles = module.default;
});
afterEach(() => {
sinon.restore();
esmock.purge();
});
it('should recognize audio files and return their ids', async () => {
const audioFiles = ['file1.mp3', 'file2.mp3'];
recognizeAudioStub.withArgs('file1.mp3').resolves('id1');
recognizeAudioStub.withArgs('file2.mp3').resolves('id2');
const result = await recognizeAudioFiles(audioFiles);
expect(result).to.deep.equal([
{ filePath: 'file1.mp3', id: 'id1' },
{ filePath: 'file2.mp3', id: 'id2' }
]);
expect(recognizeAudioStub.callCount).to.equal(2);
});
it('should handle failures and return null ids', async () => {
const audioFiles = ['file1.mp3', 'file2.mp3'];
recognizeAudioStub.withArgs('file1.mp3').resolves('id1');
recognizeAudioStub.withArgs('file2.mp3').rejects(new Error('Recognition failed'));
const result = await recognizeAudioFiles(audioFiles);
expect(result).to.deep.equal([
{ filePath: 'file1.mp3', id: 'id1' },
{ filePath: 'file2.mp3', id: null }
]);
expect(recognizeAudioStub.callCount).to.equal(2);
});
});

View File

@@ -0,0 +1,55 @@
import { expect } from 'chai';
import sinon from 'sinon';
import esmock from 'esmock';
describe('recognizeAudioFiles', () => {
let recognizeAudioStub;
let recognizeAudioFiles;
beforeEach(async () => {
recognizeAudioStub = sinon.stub();
// Mocking the auddAdapter and its dependency
const module = await esmock('../../../src/adapters/recognition/auddAdapter.js', {
'../../../src/api/recognition/auddApi.js': {
default: recognizeAudioStub
}
});
recognizeAudioFiles = module.default;
});
afterEach(() => {
sinon.restore();
esmock.purge();
});
it('should recognize audio files and return their ids', async () => {
const audioFiles = ['file1.mp3', 'file2.mp3'];
recognizeAudioStub.withArgs('file1.mp3').resolves({ id: 'id1' });
recognizeAudioStub.withArgs('file2.mp3').resolves({ id: 'id2' });
const result = await recognizeAudioFiles(audioFiles);
expect(result).to.deep.equal([
{ id: 'id1' },
{ id: 'id2' }
]);
expect(recognizeAudioStub.callCount).to.equal(2);
});
it('should handle failures and return null ids', async () => {
const audioFiles = ['file1.mp3', 'file2.mp3'];
recognizeAudioStub.withArgs('file1.mp3').resolves({ id: 'id1' });
recognizeAudioStub.withArgs('file2.mp3').rejects(new Error('Recognition failed'));
const result = await recognizeAudioFiles(audioFiles);
expect(result).to.deep.equal([
{ id: 'id1' },
null
]);
expect(recognizeAudioStub.callCount).to.equal(2);
});
});