Implement testing framework with Vitest, add unit tests for API routes and utility functions, and configure CI workflow for automated testing. Update package dependencies for testing libraries and add test scripts to package.json.
Some checks are pending
CI / test (push) Waiting to run
Some checks are pending
CI / test (push) Waiting to run
This commit is contained in:
52
lib/mime.test.ts
Normal file
52
lib/mime.test.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
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')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user