macos-web/tests/cases/09-preview.test.ts
2026-07-20 14:30:44 +08:00

50 lines
1.7 KiB
TypeScript

/**
* 09-preview: 预览——FS 图标类型判断
*/
import { describe, it, expect, beforeEach } from 'vitest'
import { fs } from '../../src/composables/useFS'
describe('09-preview — 预览类型判断', () => {
beforeEach(() => { localStorage.clear(); (fs as any).root = null; fs.init() })
it('图片扩展名返回 preview 图标', () => {
fs.write(fs.HOME + '/test.png', '')
fs.write(fs.HOME + '/test.jpg', '')
fs.write(fs.HOME + '/test.webp', '')
expect(fs.iconFor(fs.HOME + '/test.png')).toContain('preview')
expect(fs.iconFor(fs.HOME + '/test.jpg')).toContain('preview')
expect(fs.iconFor(fs.HOME + '/test.webp')).toContain('preview')
fs.remove(fs.HOME + '/test.png')
fs.remove(fs.HOME + '/test.jpg')
fs.remove(fs.HOME + '/test.webp')
})
it('PDF 返回 pdf 图标', () => {
fs.write(fs.HOME + '/test.pdf', '')
expect(fs.iconFor(fs.HOME + '/test.pdf')).toContain('pdf')
fs.remove(fs.HOME + '/test.pdf')
})
it('文本文件返回 txt 图标', () => {
expect(fs.iconFor(fs.HOME + '/Desktop/welcome.txt')).toContain('txt')
})
it('kindOf 正确分类', () => {
expect(fs.kindOf(fs.HOME + '/Desktop')).toBe('文件夹')
fs.write(fs.HOME + '/kind-test.png', '')
expect(fs.kindOf(fs.HOME + '/kind-test.png')).toBe('文件')
fs.remove(fs.HOME + '/kind-test.png')
})
it('不存在文件返回默认图标', () => {
const icon = fs.iconFor('/nonexistent/path.txt')
expect(icon).toContain('txt') // 默认回退
})
it('mimeOf 返回正确 MIME 类型', () => {
expect(fs.mimeOf('doc.txt')).toBe('text/plain')
expect(fs.mimeOf('readme.md')).toBe('text/markdown')
expect(fs.mimeOf('data.json')).toBe('application/json')
})
})