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

This commit is contained in:
2025-12-22 12:50:35 -06:00
parent f92b73c7db
commit c7e7d63be5
16 changed files with 3110 additions and 35 deletions

52
lib/mime.test.ts Normal file
View 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')
})
})