28 lines
964 B
JavaScript
28 lines
964 B
JavaScript
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/);
|
|
});
|
|
});
|