feat(cli): enforce minio ingestion extractor checks in setup and doctor
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import {
|
||||
checkMinioExtractorStatus,
|
||||
renderMinioExtractorSetupLines,
|
||||
summarizeMinioExtractorStatus,
|
||||
} from './minioExtractors.js';
|
||||
|
||||
describe('minio extractor requirements', () => {
|
||||
it('skips checks when backup.minio is not enabled', async () => {
|
||||
const status = await checkMinioExtractorStatus({});
|
||||
|
||||
expect(status.minioEnabled).toBe(false);
|
||||
expect(status.missingRequirements).toEqual([]);
|
||||
expect(renderMinioExtractorSetupLines(status)).toEqual([]);
|
||||
});
|
||||
|
||||
it('reports missing pdf/docx extractors', async () => {
|
||||
const status = await checkMinioExtractorStatus(
|
||||
{ backup: { minio: { enabled: true } } },
|
||||
async () => false,
|
||||
);
|
||||
|
||||
expect(status.minioEnabled).toBe(true);
|
||||
expect(status.pdfSupported).toBe(false);
|
||||
expect(status.docxSupported).toBe(false);
|
||||
expect(status.missingRequirements).toEqual(['pdftotext', 'pandoc or docx2txt']);
|
||||
expect(summarizeMinioExtractorStatus(status)).toBe('pdf:missing(pdftotext), docx:missing(pandoc|docx2txt)');
|
||||
});
|
||||
|
||||
it('accepts pandoc as docx extractor', async () => {
|
||||
const status = await checkMinioExtractorStatus(
|
||||
{ backup: { minio: { enabled: true } } },
|
||||
async (command) => command === 'pdftotext' || command === 'pandoc',
|
||||
);
|
||||
|
||||
expect(status.pdfSupported).toBe(true);
|
||||
expect(status.docxSupported).toBe(true);
|
||||
expect(status.availableDocxExtractors).toEqual(['pandoc']);
|
||||
expect(status.missingRequirements).toEqual([]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user