import { expect, tap } from '@push.rocks/tapbundle'; import * as smartocr from '../ts/index.js'; import type { ISmartAiOcrEngine } from '@push.rocks/smartai/ocr'; let testOcrInstance: smartocr.SmartOcr; tap.test('should create a valid instance of Smartocr', async () => { testOcrInstance = await smartocr.SmartOcr.createAndInit(); expect(testOcrInstance).toBeInstanceOf(smartocr.SmartOcr); }); tap.test('should recognize image buffers through SmartAI OCR', async () => { const calls: unknown[] = []; const smartAiOcrEngine: ISmartAiOcrEngine = { recognizeImage: async (input) => { calls.push(input); return { text: 'hello from smartai', confidence: 0.92, pages: [ { index: 0, text: 'hello from smartai', confidence: 0.92, }, ], raw: { pages: [ { index: 0, markdown: 'hello from smartai', }, ], model: 'mock-ocr', }, }; }, }; const result = await testOcrInstance.recognizeImageBufferWithSmartAi(Buffer.from('image data'), { mimeType: 'image/png', smartAiOcrEngine, }); expect(result.text).toEqual('hello from smartai'); expect(result.confidence).toEqual(0.92); expect(calls[0]).toEqual({ dataBase64: Buffer.from('image data').toString('base64'), mimeType: 'image/png', }); }); tap.test('should ocr a pdfBuffer', async () => { const smartfile = await import('@push.rocks/smartfile'); const smartfileFactory = smartfile.SmartFileFactory.nodeFs(); const pdfFile = await smartfileFactory.fromFilePath('./test/demo_without_textlayer.pdf'); const resultBuffer = await testOcrInstance.processPdfBuffer(pdfFile.contentBuffer); console.log(resultBuffer); }); tap.start();