@@ -43,7 +43,7 @@ describe('Cube Folders', () => {
43
43
) ;
44
44
} ) ;
45
45
46
- it ( 'a nested folders with some * and named members' , async ( ) => {
46
+ it ( 'a nested folders with some * and named members (merged) ' , async ( ) => {
47
47
const testView = metaTransformer . cubes . find (
48
48
( it ) => it . config . name === 'test_view4'
49
49
) ;
@@ -69,6 +69,111 @@ describe('Cube Folders', () => {
69
69
const folder3 = testView . config . folders . find (
70
70
( it ) => it . name === 'folder3'
71
71
) ;
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
+ ) ;
72
177
expect ( folder3 . members . length ) . toBe ( 3 ) ;
73
178
expect ( folder3 . members [ 1 ] ) . toEqual (
74
179
{ name : 'inner folder 4' , members : [ 'test_view4.renamed_orders_status' ] }
0 commit comments