@@ -6,49 +6,55 @@ function stree(items: string[]): string[] {
6
6
}
7
7
8
8
describe ( "tree(items, options)" , ( ) => {
9
- it ( "creates implicit internal nodes" , ( ) => {
9
+ it ( "collapses single-child nodes" , ( ) => {
10
10
assert . deepStrictEqual ( stree ( [ "/a/b/c/d" ] ) , [
11
- "┌ (1 page) " ,
12
- "└── a (1 page) " ,
13
- " └── b (1 page) " ,
14
- " └── c (1 page) " ,
15
- " └── d "
11
+ "┌ (1 page) " ,
12
+ "└── a/b/c/d "
13
+ ] ) ; // prettier-ignore
14
+ } ) ;
15
+ it ( "collapses single-child nodes" , ( ) => {
16
+ assert . deepStrictEqual ( stree ( [ "/a/b/c/d" , "/a/b/c/e" ] ) , [
17
+ "┌ (2 pages) " ,
18
+ "└── a/b/c (2 pages) " ,
19
+ " ├── d " ,
20
+ " └── e "
16
21
] ) ;
17
22
} ) ;
23
+ it ( "creates implicit internal nodes" , ( ) => {
24
+ assert . deepStrictEqual ( stree ( [ "/a/b/c/d" ] ) , [
25
+ "┌ (1 page) " ,
26
+ "└── a/b/c/d "
27
+ ] ) ; // prettier-ignore
28
+ } ) ;
18
29
it ( "removes the .md extension, if present" , ( ) => {
19
30
assert . deepStrictEqual ( stree ( [ "/a/b/c/a.md" , "/a/b/c/b.md" , "/a/b/c/c.md" , "/a/b/c/d.md" ] ) , [
20
- "┌ (4 pages) " ,
21
- "└── a (4 pages) " ,
22
- " └── b (4 pages) " ,
23
- " └── c (4 pages) " ,
24
- " ├── a " ,
25
- " ├── b " ,
26
- " ├── c " ,
27
- " └── d "
31
+ "┌ (4 pages) " ,
32
+ "└── a/b/c (4 pages) " ,
33
+ " ├── a " ,
34
+ " ├── b " ,
35
+ " ├── c " ,
36
+ " └── d "
28
37
] ) ;
29
38
} ) ;
30
39
it ( "handles multiple leaves" , ( ) => {
31
40
assert . deepStrictEqual ( stree ( [ "/a/b/c/a" , "/a/b/c/b" , "/a/b/c/c" , "/a/b/c/d" ] ) , [
32
- "┌ (4 pages) " ,
33
- "└── a (4 pages) " ,
34
- " └── b (4 pages) " ,
35
- " └── c (4 pages) " ,
36
- " ├── a " ,
37
- " ├── b " ,
38
- " ├── c " ,
39
- " └── d "
41
+ "┌ (4 pages) " ,
42
+ "└── a/b/c (4 pages) " ,
43
+ " ├── a " ,
44
+ " ├── b " ,
45
+ " ├── c " ,
46
+ " └── d "
40
47
] ) ;
41
48
} ) ;
42
49
it ( "handles leaves at different levels" , ( ) => {
43
50
assert . deepStrictEqual ( stree ( [ "/a" , "/a/b" , "/a/b/c" , "/a/b/c/d" ] ) , [
44
- "┌ (4 pages) " ,
45
- "├── a (3 pages) " ,
46
- "│ ├── b (2 pages) " ,
47
- "│ │ ├── c (1 page) " ,
48
- "│ │ │ └── d " ,
49
- "│ │ └── c " ,
50
- "│ └── b " ,
51
- "└── a "
51
+ "┌ (4 pages) " ,
52
+ "├── a (3 pages) " ,
53
+ "│ ├── b (2 pages) " ,
54
+ "│ │ ├── c/d " ,
55
+ "│ │ └── c " ,
56
+ "│ └── b " ,
57
+ "└── a "
52
58
] ) ;
53
59
} ) ;
54
60
it ( "sorts nodes" , ( ) => {
@@ -62,12 +68,11 @@ describe("tree(items, options)", () => {
62
68
} ) ;
63
69
it ( "sorts folders before files" , ( ) => {
64
70
assert . deepStrictEqual ( stree ( [ "/d/a" , "/b" , "/c" , "/a" ] ) , [
65
- "┌ (4 pages) " ,
66
- "├── d (1 page) " ,
67
- "│ └── a " ,
68
- "├── a " ,
69
- "├── b " ,
70
- "└── c "
71
+ "┌ (4 pages) " ,
72
+ "├── d/a " ,
73
+ "├── a " ,
74
+ "├── b " ,
75
+ "└── c "
71
76
] ) ;
72
77
} ) ;
73
78
it ( "sorts nested folders" , ( ) => {
0 commit comments