♻️ refactor(vscode): 卡片里的子块只留挂在子行上、点了才展开的一种,测试假数据换掉旧 React 卡片的名字

This commit is contained in:
cruldra committed 2026-10-08 07:17:25 +08:00
1 parent f6bc217e91
commit 5e994cd90e
16 files changed
+121 -130

No files matched your search

@@ -115,31 +115,29 @@ describe('foldUnchanged', () => {
})
})
/** 一张卡片:两个副作用放在第 7 行下面,两个处理函数放在第 8 行的子行上,后面一个留下的子块;只有第二个处理函数改了 */
/** 一张卡片:两个子块挂在第 8 行的子行上,后面一个留下的子块;只有第二个子块改了,它里面挂在第 2 行子行上的子块自己改了 */
const CARD_BLOCKS = [
block('0', 'card', [
block('0.0', 'e1', [], { slot: { row: 7 } }),
block('0.1', 'e2', [], { slot: { row: 7 } }),
block('0.2', 'h1', [], { slot: { row: 8, item: 0 } }),
block('0.3', 'h2', [block('0.3.0', 'h2s', [], { slot: { row: 2 } })], { slot: { row: 8, item: 1 }, startLine: 4 }),
block('0.4', 'rest'),
block('0.0', 'm1', [], { slot: { row: 8, item: 0 } }),
block('0.1', 'm2', [block('0.1.0', 'm2s', [], { slot: { row: 2, item: 0 } })], { slot: { row: 8, item: 1 }, startLine: 4 }),
block('0.2', 'rest'),
]),
]
function cardTree(): NonNullable<ReturnType<typeof diffTree>> {
return diffTree(CARD_BLOCKS, diff({ blocks: { card: { change: 'mod' }, h2: { change: 'mod' }, h2s: { change: 'mod', own: true } } }), 2, () => true)!
return diffTree(CARD_BLOCKS, diff({ blocks: { card: { change: 'mod' }, m2: { change: 'mod' }, m2s: { change: 'mod', own: true } } }), 2, () => true)!
}
describe('放进卡片属性表里的子块', () => {
it('只看改动:画在卡片里的按所在的行分开折,点子行才展开的不折、改了的照样往里看', () => {
describe('挂在卡片子行上的子块', () => {
it('只看改动:挂在子行上的不折、改了的照样往里看,卡片后面留下的照常折', () => {
const { runs, folded } = foldUnchanged(CARD_BLOCKS, cardTree(), () => true, new Set(), new Set())
expect([...runs]).toEqual([['0.0', 2], ['0.4', 1]])
expect([...folded].sort()).toEqual(['0.0', '0.1', '0.4'])
expect([...runs]).toEqual([['0.2', 1]])
expect([...folded].sort()).toEqual(['0.2'])
})
it('上一处 / 下一处:要展开的是子块所在的那一行(点子行才展开的连它自己),不是卡片', () => {
it('上一处 / 下一处:要展开的是子块所在的那一行和它自己,不是卡片', () => {
expect(changeStops(CARD_BLOCKS, cardTree(), new Set()).map(stop => [stop.id, stop.ancestors])).toEqual([
['0.3.0', ['0/p8', '0.3', '0.3/p2']],
['0.1.0', ['0/p8', '0.1', '0.1/p2', '0.1.0']],
])
})
})