53 lines
1.9 KiB
TypeScript
53 lines
1.9 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import { getMimeType, VIDEO_MIME, AUDIO_MIME } from './mime'
|
|
|
|
describe('VIDEO_MIME', () => {
|
|
it('has correct MIME types for all video formats', () => {
|
|
expect(VIDEO_MIME.mp4).toBe('video/mp4')
|
|
expect(VIDEO_MIME.webm).toBe('video/webm')
|
|
expect(VIDEO_MIME.mkv).toBe('video/x-matroska')
|
|
expect(VIDEO_MIME.avi).toBe('video/x-msvideo')
|
|
})
|
|
})
|
|
|
|
describe('AUDIO_MIME', () => {
|
|
it('has correct MIME types for all audio formats', () => {
|
|
expect(AUDIO_MIME.mp3).toBe('audio/mpeg')
|
|
expect(AUDIO_MIME.wav).toBe('audio/wav')
|
|
expect(AUDIO_MIME.m4a).toBe('audio/mp4')
|
|
expect(AUDIO_MIME.opus).toBe('audio/ogg')
|
|
})
|
|
})
|
|
|
|
describe('getMimeType', () => {
|
|
it('returns correct MIME type for video formats', () => {
|
|
expect(getMimeType('video', 'mp4')).toBe('video/mp4')
|
|
expect(getMimeType('video', 'webm')).toBe('video/webm')
|
|
expect(getMimeType('video', 'mkv')).toBe('video/x-matroska')
|
|
expect(getMimeType('video', 'avi')).toBe('video/x-msvideo')
|
|
})
|
|
|
|
it('returns correct MIME type for audio formats', () => {
|
|
expect(getMimeType('audio', 'mp3')).toBe('audio/mpeg')
|
|
expect(getMimeType('audio', 'wav')).toBe('audio/wav')
|
|
expect(getMimeType('audio', 'm4a')).toBe('audio/mp4')
|
|
expect(getMimeType('audio', 'opus')).toBe('audio/ogg')
|
|
})
|
|
|
|
it('returns fallback for unknown video format', () => {
|
|
expect(getMimeType('video', 'unknown' as any)).toBe('application/octet-stream')
|
|
})
|
|
|
|
it('returns fallback for unknown audio format', () => {
|
|
expect(getMimeType('audio', 'unknown' as any)).toBe('application/octet-stream')
|
|
})
|
|
|
|
it('handles audio format passed with video type gracefully', () => {
|
|
expect(getMimeType('video', 'mp3')).toBe('application/octet-stream')
|
|
})
|
|
|
|
it('handles video format passed with audio type gracefully', () => {
|
|
expect(getMimeType('audio', 'mp4')).toBe('application/octet-stream')
|
|
})
|
|
})
|