/** * 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') }) })