11import { treeStringToJson } from "../treeStringToJson" ;
22import * as fs from "fs" ;
33import * as path from "path" ;
4- import { TreeType } from "../types" ;
4+ import { defaultSettings , ISettings , TreeType } from "../types" ;
55import { treeJsonToString } from "../treeJsonToString" ;
66
77const dirPath = path . join ( __dirname , "trees" ) ;
8- const trees = fs . readdirSync ( dirPath ) ;
9- trees . forEach ( ( file ) => {
10- const treeString = fs . readFileSync ( path . join ( dirPath , file ) ) . toString ( ) ;
8+ const tabTrees = fs . readdirSync ( dirPath + "/tab-tests" ) ;
9+ const settingsTree = fs . readFileSync ( dirPath + "/settings-tests/base.tree" ) . toString ( ) ;
10+ const noDotsTree = fs . readFileSync ( dirPath + "/settings-tests/no-dots.tree" ) . toString ( ) ;
11+ const noFilesTree = fs . readFileSync ( dirPath + "/settings-tests/no-files.tree" ) . toString ( ) ;
12+ const depth2Tree = fs . readFileSync ( dirPath + "/settings-tests/depth-2.tree" ) . toString ( ) ;
13+
14+ tabTrees . forEach ( ( file ) => {
15+ const treeString = fs . readFileSync ( path . join ( dirPath + "/tab-tests" , file ) ) . toString ( ) ;
1116 let tree : TreeType [ ] ;
12- test ( `can convert file to TreeType format: ${ file } ` , ( ) => {
17+ test ( `treeStringToJson can convert file to TreeType format: ${ file } ` , ( ) => {
1318 tree = treeStringToJson ( treeString ) ;
1419
1520 // Number of parents
@@ -18,8 +23,49 @@ trees.forEach((file) => {
1823 expect ( tree [ 2 ] . name ) . toBe ( "static" ) ;
1924 } ) ;
2025
21- test ( "can convert TreeType format back to original string" , ( ) => {
22- const newTreeString = treeJsonToString ( tree ) ;
26+ test ( "treeJsonToString can convert TreeType format back to original string" , ( ) => {
27+ const newTreeString = treeJsonToString ( { tree } ) ;
2328 expect ( treeString === newTreeString ) ;
2429 } ) ;
30+
31+ } ) ;
32+
33+
34+ test ( "treeJsonToString base options works" , ( ) => {
35+ const baseTree = treeStringToJson ( settingsTree ) ;
36+ const newTreeString = treeJsonToString ( { tree : baseTree , options : defaultSettings } ) ;
37+ expect ( settingsTree === newTreeString ) ;
38+ } ) ;
39+
40+ test ( "treeJsonToString depth option works" , ( ) => {
41+ const options : ISettings = {
42+ ...defaultSettings ,
43+ depth : 2 ,
44+ } ;
45+ const baseTree = treeStringToJson ( settingsTree ) ;
46+ const newTreeString = treeJsonToString ( { tree : baseTree , options } ) ;
47+ expect ( settingsTree !== newTreeString ) ;
48+ expect ( depth2Tree === newTreeString ) ;
49+ } ) ;
50+
51+ test ( "treeJsonToString hideDots option works" , ( ) => {
52+ const options : ISettings = {
53+ ...defaultSettings ,
54+ hideDots : true ,
55+ } ;
56+ const baseTree = treeStringToJson ( settingsTree ) ;
57+ const newTreeString = treeJsonToString ( { tree : baseTree , options } ) ;
58+ expect ( settingsTree !== newTreeString ) ;
59+ expect ( noDotsTree === newTreeString ) ;
60+ } ) ;
61+
62+ test ( "treeJsonToString hideFiles option works" , ( ) => {
63+ const options : ISettings = {
64+ ...defaultSettings ,
65+ hideFiles : true ,
66+ } ;
67+ const baseTree = treeStringToJson ( settingsTree ) ;
68+ const newTreeString = treeJsonToString ( { tree : baseTree , options } ) ;
69+ expect ( settingsTree !== newTreeString ) ;
70+ expect ( noFilesTree === newTreeString ) ;
2571} ) ;
0 commit comments