@@ -43,7 +43,7 @@ describe('Cube Folders', () => {
4343 ) ;
4444 } ) ;
4545
46- it ( 'a nested folders with some * and named members' , async ( ) => {
46+ it ( 'a nested folders with some * and named members (merged) ' , async ( ) => {
4747 const testView = metaTransformer . cubes . find (
4848 ( it ) => it . config . name === 'test_view4'
4949 ) ;
@@ -69,6 +69,111 @@ describe('Cube Folders', () => {
6969 const folder3 = testView . config . folders . find (
7070 ( it ) => it . name === 'folder3'
7171 ) ;
72+ expect ( folder3 . members . length ) . toBe ( 9 ) ;
73+ expect ( folder3 . members ) . toEqual ( [
74+ 'test_view4.users_city' ,
75+ 'test_view4.renamed_orders_status' ,
76+ 'test_view4.renamed_orders_count' ,
77+ 'test_view4.renamed_orders_id' ,
78+ 'test_view4.renamed_orders_number' ,
79+ 'test_view4.users_age' ,
80+ 'test_view4.users_state' ,
81+ 'test_view4.users_gender' ,
82+ 'test_view4.users_renamed_in_view3_gender' ,
83+ ] ) ;
84+ } ) ;
85+
86+ it ( 'a nested folders with some * and named members (flattened)' , async ( ) => {
87+ process . env . CUBEJS_NESTED_FOLDERS_DELIMITER = '/' ;
88+ const modelContent = fs . readFileSync (
89+ path . join ( process . cwd ( ) , '/test/unit/fixtures/folders.yml' ) ,
90+ 'utf8'
91+ ) ;
92+ const prepared = prepareYamlCompiler ( modelContent ) ;
93+ const compilerL = prepared . compiler ;
94+ const metaTransformerL = prepared . metaTransformer ;
95+
96+ await compilerL . compile ( ) ;
97+
98+ const testView = metaTransformerL . cubes . find (
99+ ( it ) => it . config . name === 'test_view4'
100+ ) ;
101+
102+ expect ( testView . config . folders . length ) . toBe ( 5 ) ;
103+
104+ const folder1 = testView . config . folders . find (
105+ ( it ) => it . name === 'folder1'
106+ ) ;
107+ expect ( folder1 . members ) . toEqual ( [
108+ 'test_view4.users_age' ,
109+ 'test_view4.users_state' ,
110+ 'test_view4.renamed_orders_status' ,
111+ ] ) ;
112+
113+ const folder2 = testView . config . folders . find (
114+ ( it ) => it . name === 'folder2'
115+ ) ;
116+ expect ( folder2 . members ) . toEqual (
117+ expect . arrayContaining ( [ 'test_view4.users_city' , 'test_view4.users_renamed_in_view3_gender' ] )
118+ ) ;
119+
120+ const folder3 = testView . config . folders . find (
121+ ( it ) => it . name === 'folder3'
122+ ) ;
123+ expect ( folder3 . members . length ) . toBe ( 1 ) ;
124+ expect ( folder3 . members ) . toEqual ( [
125+ 'test_view4.users_city' ,
126+ ] ) ;
127+
128+ const folder4 = testView . config . folders . find (
129+ ( it ) => it . name === 'folder3/inner folder 4'
130+ ) ;
131+ expect ( folder4 . members . length ) . toBe ( 1 ) ;
132+ expect ( folder4 . members ) . toEqual ( [ 'test_view4.renamed_orders_status' ] ) ;
133+
134+ const folder5 = testView . config . folders . find (
135+ ( it ) => it . name === 'folder3/inner folder 5'
136+ ) ;
137+ expect ( folder5 . members . length ) . toBe ( 9 ) ;
138+ expect ( folder5 . members ) . toEqual ( [
139+ 'test_view4.renamed_orders_count' ,
140+ 'test_view4.renamed_orders_id' ,
141+ 'test_view4.renamed_orders_number' ,
142+ 'test_view4.renamed_orders_status' ,
143+ 'test_view4.users_age' ,
144+ 'test_view4.users_state' ,
145+ 'test_view4.users_gender' ,
146+ 'test_view4.users_city' ,
147+ 'test_view4.users_renamed_in_view3_gender' ,
148+ ] ) ;
149+ } ) ;
150+
151+ it ( 'a nested folders with some * and named members (nested)' , async ( ) => {
152+ const testView = metaTransformer . cubes . find (
153+ ( it ) => it . config . name === 'test_view4'
154+ ) ;
155+
156+ expect ( testView . config . nestedFolders . length ) . toBe ( 3 ) ;
157+
158+ const folder1 = testView . config . nestedFolders . find (
159+ ( it ) => it . name === 'folder1'
160+ ) ;
161+ expect ( folder1 . members ) . toEqual ( [
162+ 'test_view4.users_age' ,
163+ 'test_view4.users_state' ,
164+ 'test_view4.renamed_orders_status' ,
165+ ] ) ;
166+
167+ const folder2 = testView . config . nestedFolders . find (
168+ ( it ) => it . name === 'folder2'
169+ ) ;
170+ expect ( folder2 . members ) . toEqual (
171+ expect . arrayContaining ( [ 'test_view4.users_city' , 'test_view4.users_renamed_in_view3_gender' ] )
172+ ) ;
173+
174+ const folder3 = testView . config . nestedFolders . find (
175+ ( it ) => it . name === 'folder3'
176+ ) ;
72177 expect ( folder3 . members . length ) . toBe ( 3 ) ;
73178 expect ( folder3 . members [ 1 ] ) . toEqual (
74179 { name : 'inner folder 4' , members : [ 'test_view4.renamed_orders_status' ] }
0 commit comments