提交 00d5c289 编写于 作者: J Joao Moreno

fix expand tree tests

上级 d3c1eda9
......@@ -86,7 +86,7 @@ function getTreeElementIterator<T>(elements: Iterator<ITreeElement<T>> | ITreeEl
function treeElementToNode<T>(treeElement: ITreeElement<T>, parent: IMutableTreeNode<T>, visible: boolean, treeListElements: ITreeNode<T>[]): IMutableTreeNode<T> {
const depth = parent.depth + 1;
const { element, collapsible, collapsed } = treeElement;
const node = { parent, element, children: [], depth, collapsible: !!collapsible, collapsed: !!collapsed, visibleCount: 0 };
const node = { parent, element, children: [], depth, collapsible: !!collapsible, collapsed: !!collapsed, visibleCount: 1 };
if (visible) {
treeListElements.push(node);
......@@ -95,7 +95,10 @@ function treeElementToNode<T>(treeElement: ITreeElement<T>, parent: IMutableTree
const children = getTreeElementIterator(treeElement.children);
node.children = Iterator.collect(Iterator.map(children, el => treeElementToNode(el, node, visible && !treeElement.collapsed, treeListElements)));
node.collapsible = node.collapsible || node.children.length > 0;
node.visibleCount = 1 + getVisibleCount(node.children);
if (!collapsed) {
node.visibleCount += getVisibleCount(node.children);
}
return node;
}
......
......@@ -259,45 +259,45 @@ suite('TreeModel2', function () {
assert.deepEqual(list[2].depth, 1);
});
// test('expand', function () {
// const list = [] as ITreeNode<number>[];
// const model = new TreeModel<number>(toSpliceable(list));
// model.splice([0], 0, Iterator.fromArray([
// {
// element: 0, collapsed: true, children: Iterator.fromArray([
// { element: 10 },
// { element: 11 },
// { element: 12 },
// ])
// },
// { element: 1 },
// { element: 2 }
// ]));
// assert.deepEqual(list.length, 3);
// model.setCollapsed([0], false);
// assert.deepEqual(list.length, 6);
// assert.deepEqual(list[0].element, 0);
// assert.deepEqual(list[0].collapsed, false);
// assert.deepEqual(list[0].depth, 1);
// assert.deepEqual(list[1].element, 10);
// assert.deepEqual(list[1].collapsed, false);
// assert.deepEqual(list[1].depth, 2);
// assert.deepEqual(list[2].element, 11);
// assert.deepEqual(list[2].collapsed, false);
// assert.deepEqual(list[2].depth, 2);
// assert.deepEqual(list[3].element, 12);
// assert.deepEqual(list[3].collapsed, false);
// assert.deepEqual(list[3].depth, 2);
// assert.deepEqual(list[4].element, 1);
// assert.deepEqual(list[4].collapsed, false);
// assert.deepEqual(list[4].depth, 1);
// assert.deepEqual(list[5].element, 2);
// assert.deepEqual(list[5].collapsed, false);
// assert.deepEqual(list[5].depth, 1);
// });
test('expand', function () {
const list = [] as ITreeNode<number>[];
const model = new TreeModel<number>(toSpliceable(list));
model.splice([0], 0, Iterator.fromArray([
{
element: 0, collapsed: true, children: Iterator.fromArray([
{ element: 10 },
{ element: 11 },
{ element: 12 },
])
},
{ element: 1 },
{ element: 2 }
]));
assert.deepEqual(list.length, 3);
model.setCollapsed([0], false);
assert.deepEqual(list.length, 6);
assert.deepEqual(list[0].element, 0);
assert.deepEqual(list[0].collapsed, false);
assert.deepEqual(list[0].depth, 1);
assert.deepEqual(list[1].element, 10);
assert.deepEqual(list[1].collapsed, false);
assert.deepEqual(list[1].depth, 2);
assert.deepEqual(list[2].element, 11);
assert.deepEqual(list[2].collapsed, false);
assert.deepEqual(list[2].depth, 2);
assert.deepEqual(list[3].element, 12);
assert.deepEqual(list[3].collapsed, false);
assert.deepEqual(list[3].depth, 2);
assert.deepEqual(list[4].element, 1);
assert.deepEqual(list[4].collapsed, false);
assert.deepEqual(list[4].depth, 1);
assert.deepEqual(list[5].element, 2);
assert.deepEqual(list[5].collapsed, false);
assert.deepEqual(list[5].depth, 1);
});
test('collapse should recursively adjust visible count', function () {
const list = [] as ITreeNode<number>[];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册