Files
CloudSSH/tests/sftp-selection.test.ts
TanXinandTanXin 4eeb050576 release: 发布 v1.10.0 自定义命令片段库版本 (#93)
合并 `test` 的 v1.10.0 提交到 `main`。

**包含提交**
- `28c9433` feat: 添加自定义命令片段库
- `9aa2e80` release: 发布 v1.10.0 自定义命令片段库版本

**关联**
- Related to #90

> 本 PR 仅关联 #90,不自动关闭该 Issue。

**验证**
- `pnpm run typecheck` 0 错
- `pnpm test` 47/47 603/603 通过
- `pnpm run build:frontend` 成功

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-08-20 11:42:28 +08:00

38 lines
995 B
TypeScript

import { describe, expect, it } from 'vitest';
import { updateSelection } from '../frontend/src/sftp-selection';
describe('SFTP multi selection', () => {
it('replaces the selection on a plain click', () => {
const result = updateSelection(new Set([1, 2]), 4, 2, 10, {
additive: false,
range: false,
});
expect([...result.selected]).toEqual([4]);
expect(result.anchor).toBe(4);
});
it('toggles items with Ctrl/Cmd', () => {
expect([
...updateSelection(new Set([1, 2]), 2, 1, 10, {
additive: true,
range: false,
}).selected,
]).toEqual([1]);
expect([
...updateSelection(new Set([1]), 3, 1, 10, {
additive: true,
range: false,
}).selected,
]).toEqual([1, 3]);
});
it('selects a contiguous range with Shift', () => {
expect([
...updateSelection(new Set([2]), 5, 2, 10, {
additive: false,
range: true,
}).selected,
]).toEqual([2, 3, 4, 5]);
});
});