/** * 05-terminal: FS 操作(终端底层) */ import { describe, it, expect, beforeEach } from 'vitest' import { fs } from '../../src/composables/useFS' describe('05-terminal — FS 操作', () => { beforeEach(() => { localStorage.clear(); (fs as any).root = null fs.init() }) it('list 列出桌面文件', () => { const items = fs.list(fs.HOME + '/Desktop') expect(items.length).toBeGreaterThanOrEqual(2) expect(items.map((i: any) => i.name)).toContain('welcome.txt') }) it('read 读取文件', () => { expect(fs.read(fs.HOME + '/Desktop/welcome.txt')).toContain('欢迎') }) it('write + read 一致', () => { fs.write(fs.HOME + '/t.txt', 'hi'); expect(fs.read(fs.HOME + '/t.txt')).toBe('hi'); fs.remove(fs.HOME + '/t.txt') }) it('mkdir 创建目录', () => { fs.mkdir(fs.HOME + '/td'); expect(fs.isDir(fs.HOME + '/td')).toBe(true); fs.remove(fs.HOME + '/td') }) it('rename 重命名', () => { fs.write(fs.HOME + '/a.txt', ''); fs.rename(fs.HOME + '/a.txt', 'b.txt'); expect(fs.exists(fs.HOME + '/b.txt')).toBe(true); fs.remove(fs.HOME + '/b.txt') }) it('move 移动', () => { fs.write(fs.HOME + '/m.txt', ''); fs.move(fs.HOME + '/m.txt', fs.HOME + '/Documents'); expect(fs.exists(fs.HOME + '/Documents/m.txt')).toBe(true); fs.remove(fs.HOME + '/Documents/m.txt') }) it('copy 复制', () => { fs.copy(fs.HOME + '/Desktop/welcome.txt', fs.HOME + '/Documents'); const items = fs.list(fs.HOME + '/Documents'); const c = items.find((i: any) => i.name.includes('welcome')); expect(c).toBeTruthy(); fs.remove(fs.HOME + '/Documents/' + c!.name) }) it('trash + restore', () => { fs.write(fs.HOME + '/z.txt', ''); fs.trash(fs.HOME + '/z.txt'); expect(fs.exists(fs.HOME + '/z.txt')).toBe(false); fs.restore('z.txt'); expect(fs.exists(fs.HOME + '/z.txt')).toBe(true); fs.remove(fs.HOME + '/z.txt') }) })