50 lines
1.7 KiB
TypeScript
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')
|
|
})
|
|
})
|