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

27 lines
1.8 KiB
TypeScript

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