Skip to content

Commit cb5e69a

Browse files
committed
Update tests
1 parent 9bef9bf commit cb5e69a

File tree

1 file changed

+124
-5
lines changed

1 file changed

+124
-5
lines changed

src/vscode-tree/helpers.test.ts

Lines changed: 124 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {expect, fixture, html} from '@open-wc/testing';
2-
import {findLastChildItem, findPrevItem} from './helpers';
2+
import {findLastChildItem, findNextItem, findPrevItem} from './helpers';
33
import {VscodeTreeItem} from '../vscode-tree-item';
44
import '../vscode-tree-item/vscode-tree-item.js';
55
import {VscodeTree} from './vscode-tree';
@@ -66,7 +66,7 @@ describe('vscode-tree helpers', () => {
6666
expect(findPrevItem(item2)).to.eq(item1);
6767
});
6868

69-
it('returns last children of the opened branch', async () => {
69+
it('returns last child of the opened branch', async () => {
7070
const el = await fixture<VscodeTree>(html`
7171
<vscode-tree>
7272
<vscode-tree-item id="item1" open>
@@ -114,16 +114,135 @@ describe('vscode-tree helpers', () => {
114114
<vscode-tree-item id="item1" open>
115115
1
116116
<vscode-tree-item>1.1</vscode-tree-item>
117-
<vscode-tree-item id="item1_2">1.2</vscode-tree-item>
117+
<vscode-tree-item>1.2</vscode-tree-item>
118+
<vscode-tree-item open>
119+
1.3
120+
<vscode-tree-item>1.3.1</vscode-tree-item>
121+
<vscode-tree-item>1.3.2</vscode-tree-item>
122+
<vscode-tree-item id="item1_3_3">1.3.3</vscode-tree-item>
123+
</vscode-tree-item>
118124
</vscode-tree-item>
119125
<vscode-tree-item>2</vscode-tree-item>
120126
</vscode-tree>
121127
`);
122128

123129
const item1 = el.querySelector<VscodeTreeItem>('#item1')!;
124-
const item1_2 = el.querySelector<VscodeTreeItem>('#item1_2')!;
130+
const item1_3_3 = el.querySelector<VscodeTreeItem>('#item1_3_3')!;
131+
132+
expect(findLastChildItem(item1)).to.eq(item1_3_3);
133+
});
134+
135+
it('does not traverse the closed branches', async () => {
136+
const el = await fixture(html`
137+
<vscode-tree>
138+
<vscode-tree-item id="item1" open>
139+
1
140+
<vscode-tree-item>1.1</vscode-tree-item>
141+
<vscode-tree-item>1.2</vscode-tree-item>
142+
<vscode-tree-item id="item1_3">
143+
1.3
144+
<vscode-tree-item>1.3.1</vscode-tree-item>
145+
<vscode-tree-item>1.3.2</vscode-tree-item>
146+
<vscode-tree-item>1.3.3</vscode-tree-item>
147+
</vscode-tree-item>
148+
</vscode-tree-item>
149+
<vscode-tree-item>2</vscode-tree-item>
150+
</vscode-tree>
151+
`);
152+
153+
const item1 = el.querySelector<VscodeTreeItem>('#item1')!;
154+
const item1_3 = el.querySelector<VscodeTreeItem>('#item1_3')!;
155+
156+
expect(findLastChildItem(item1)).to.eq(item1_3);
157+
});
158+
159+
it('returns the passed item if it is not a tree-item', async () => {
160+
const el = await fixture(html`<div></div>`);
161+
162+
expect(findLastChildItem(el as VscodeTreeItem)).to.eq(el);
163+
});
164+
165+
it('returns the passed item if it does not have a child', async () => {
166+
await fixture(
167+
html` <vscode-tree>
168+
<vscode-tree-item id="leaf">leaf</vscode-tree-item>
169+
</vscode-tree>`
170+
);
171+
172+
const item = document.getElementById('leaf')! as VscodeTreeItem;
173+
174+
expect(findLastChildItem(item)).to.eq(item);
175+
});
176+
});
177+
178+
describe('findNextItem()', () => {
179+
it('returns null if does not have parent element', () => {
180+
const el = document.createElement('vscode-tree-item');
181+
182+
expect(findNextItem(el)).to.be.null;
183+
});
184+
185+
it('returns null if it is not a tree item', async () => {
186+
const el = await fixture(
187+
html`<vscode-tree><div id="item"></div></vscode-tree>`
188+
);
189+
190+
expect(findNextItem(el.querySelector('#item') as VscodeTreeItem)).to.be
191+
.null;
192+
});
193+
194+
it('returns last children of the opened branch', async () => {
195+
const el = await fixture<VscodeTree>(html`
196+
<vscode-tree>
197+
<vscode-tree-item id="item1" open>
198+
1
199+
<vscode-tree-item id="item1_1">1.1</vscode-tree-item>
200+
<vscode-tree-item>1.2</vscode-tree-item>
201+
</vscode-tree-item>
202+
<vscode-tree-item>2</vscode-tree-item>
203+
</vscode-tree>
204+
`);
205+
206+
const item1 = el.querySelector<VscodeTreeItem>('#item1')!;
207+
const item1_1 = el.querySelector<VscodeTreeItem>('#item1_1')!;
208+
209+
expect(findNextItem(item1)).to.eq(item1_1);
210+
});
211+
212+
it('returns the next sibling if the opened branch does not contain any item', async () => {
213+
const el = await fixture<VscodeTree>(html`
214+
<vscode-tree>
215+
<vscode-tree-item id="item1" open>1</vscode-tree-item>
216+
<vscode-tree-item id="item2">2</vscode-tree-item>
217+
</vscode-tree>
218+
`);
219+
220+
const item1 = el.querySelector<VscodeTreeItem>('#item1')!;
221+
const item2 = el.querySelector<VscodeTreeItem>('#item2')!;
222+
223+
expect(findNextItem(item1)).to.eq(item2);
224+
});
225+
226+
it('returns the next ancestor', async () => {
227+
const el = await fixture<VscodeTree>(html`
228+
<vscode-tree>
229+
<vscode-tree-item open>
230+
1
231+
<vscode-tree-item>
232+
1.1
233+
<vscode-tree-item id="item1_1_1">
234+
1.1.1
235+
</vscode-tree-item>
236+
</vscode-tree-item>
237+
</vscode-tree-item>
238+
<vscode-tree-item id="item2">2</vscode-tree-item>
239+
</vscode-tree>
240+
`);
241+
242+
const item1_1_1 = el.querySelector<VscodeTreeItem>('#item1_1_1')!;
243+
const item2 = el.querySelector<VscodeTreeItem>('#item2')!;
125244

126-
expect(findLastChildItem(item1)).to.eq(item1_2);
245+
expect(findNextItem(item1_1_1)).to.eq(item2);
127246
});
128247
});
129248
});

0 commit comments

Comments
 (0)