feat: add MIME sniffing and output MIME lookup

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 09:00:45 +02:00
co-authored by Claude Sonnet 5
parent d0faa162dc
commit f7c7e547d2
3 changed files with 56 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import { describe, it, expect } from 'vitest';
import path from 'node:path';
import { detectInputMime, outputMimeType } from '../src/mime.js';
describe('detectInputMime', () => {
it('detects PNG from magic bytes regardless of file extension', async () => {
const fixturePath = path.join(import.meta.dirname, 'fixtures', 'sample.png');
const result = await detectInputMime(fixturePath);
expect(result).toEqual({ ext: 'png', mime: 'image/png' });
});
});
describe('outputMimeType', () => {
it('returns the MIME type for a known target format', () => {
expect(outputMimeType('pdf')).toBe('application/pdf');
expect(outputMimeType('png')).toBe('image/png');
expect(outputMimeType('docx')).toBe(
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
);
});
it('throws for an unknown target format', () => {
expect(() => outputMimeType('made-up-format')).toThrowError(/made-up-format/);
});
});