File tree Expand file tree Collapse file tree 3 files changed +221
-0
lines changed
packages/cubejs-schema-compiler/test/unit Expand file tree Collapse file tree 3 files changed +221
-0
lines changed Original file line number Diff line number Diff line change 1+ cubes :
2+ - name : orders
3+ sql : SELECT * FROM orders
4+ joins :
5+ - name : users
6+ sql : " {CUBE}.order_id = {orders}.id"
7+ relationship : many_to_one
8+ measures :
9+ - name : count
10+ sql : id
11+ type : count
12+ dimensions :
13+ - name : id
14+ sql : id
15+ type : number
16+ primary_key : true
17+
18+ - name : number
19+ sql : number
20+ type : number
21+
22+ - name : status
23+ sql : status
24+ type : string
25+ hierarchies :
26+ - name : orders_hierarchy
27+ levels :
28+ - " {CUBE}.status"
29+ - number
30+ - users.city
31+ - name : some_other_hierarchy
32+ title : Some other hierarchy
33+ levels :
34+ - users.state
35+ - users.city
36+ #
37+ - name : users
38+ sql : SELECT * FROM users
39+ hierarchies :
40+ - name : users_hierarchy
41+ levels :
42+ - users.age
43+ - city
44+ dimensions :
45+ - name : age
46+ sql : age
47+ type : number
48+ - name : state
49+ sql : state
50+ type : string
51+ - name : city
52+ sql : city
53+ type : string
54+ - name : gender
55+ sql : gender
56+ type : string
57+
58+ views :
59+ - name : test_view
60+ cubes :
61+ - join_path : orders
62+ includes : " *"
63+ - join_path : users
64+ includes :
65+ - age
66+ - state
67+ - name : gender
68+ alias : renamed_gender
69+ folders :
70+ - name : folder1
71+ includes :
72+ - age
73+ - renamed_gender
74+ - users.age
75+ - name : folder2
76+ includes : ' *'
77+ - name : test_view2
78+ cubes :
79+ - join_path : orders
80+ alias : renamed_orders
81+ prefix : true
82+ includes : " *"
83+ - join_path : users
84+ prefix : true
85+ includes :
86+ - age
87+ - state
88+ folders :
89+ - name : folder1
90+ includes :
91+ - users_age
92+ - users_state
93+ - renamed_orders_status
94+ # - name: empty_view
95+ # cubes:
96+ # - join_path: orders
97+ # includes:
98+ # - count
99+ # - status
100+
101+
102+
Original file line number Diff line number Diff line change 1+ cubes :
2+ - name : orders
3+ sql : SELECT * FROM orders
4+ joins :
5+ - name : users
6+ sql : " {CUBE}.order_id = {orders}.id"
7+ relationship : many_to_one
8+ measures :
9+ - name : count
10+ sql : id
11+ type : count
12+ dimensions :
13+ - name : id
14+ sql : id
15+ type : number
16+ primary_key : true
17+
18+ - name : number
19+ sql : number
20+ type : number
21+
22+ - name : status
23+ sql : status
24+ type : string
25+ hierarchies :
26+ - name : orders_hierarchy
27+ levels :
28+ - " {CUBE}.status"
29+ - number
30+ - users.city
31+ - name : some_other_hierarchy
32+ title : Some other hierarchy
33+ levels :
34+ - users.state
35+ - users.city
36+ #
37+ - name : users
38+ sql : SELECT * FROM users
39+ hierarchies :
40+ - name : users_hierarchy
41+ levels :
42+ - users.age
43+ - city
44+ dimensions :
45+ - name : age
46+ sql : age
47+ type : number
48+ - name : state
49+ sql : state
50+ type : string
51+ - name : city
52+ sql : city
53+ type : string
54+ - name : gender
55+ sql : gender
56+ type : string
57+
58+ views :
59+ - name : test_view
60+ cubes :
61+ - join_path : orders
62+ includes : " *"
63+ - join_path : users
64+ includes :
65+ - age
66+ - state
67+ - name : gender
68+ alias : renamed_gender
69+ folders :
70+ - name : folder1
71+ includes :
72+ - age
73+ - renamed_gender
74+ - non-existent
75+ - name : folder2
76+ includes : ' *'
77+ - name : test_view2
78+ cubes :
79+ - join_path : orders
80+ alias : renamed_orders
81+ prefix : true
82+ includes : " *"
83+ - join_path : users
84+ prefix : true
85+ includes :
86+ - age
87+ - state
88+ folders :
89+ - name : folder1
90+ includes :
91+ - users_age
92+ - users_state
93+ - renamed_orders_status
94+ # - name: empty_view
95+ # cubes:
96+ # - join_path: orders
97+ # includes:
98+ # - count
99+ # - status
100+
101+
102+
Original file line number Diff line number Diff line change @@ -43,6 +43,23 @@ describe('Cube Folders', () => {
4343 ) ;
4444 } ) ;
4545
46+ it ( 'throws errors for folder members with path' , async ( ) => {
47+ const modelContent = fs . readFileSync (
48+ path . join ( process . cwd ( ) , '/test/unit/fixtures/folders_invalid_path.yml' ) ,
49+ 'utf8'
50+ ) ;
51+ // eslint-disable-next-line @typescript-eslint/no-shadow
52+ const { compiler } = prepareYamlCompiler ( modelContent ) ;
53+
54+ try {
55+ await compiler . compile ( ) ;
56+ throw new Error ( 'should throw earlier' ) ;
57+ } catch ( e : any ) {
58+ expect ( e . toString ( ) ) . toMatch ( / P a t h s a r e n ' t a l l o w e d i n t h e ' f o l d e r s ' b u t ' u s e r s .a g e ' h a s b e e n p r o v i d e d f o r t e s t _ v i e w / ) ;
59+ expect ( e . toString ( ) ) . toMatch ( / M e m b e r ' u s e r s .a g e ' i n c l u d e d i n f o l d e r ' f o l d e r 1 ' n o t f o u n d / ) ;
60+ }
61+ } ) ;
62+
4663 it ( 'a folder with aliased and prefixed cubes' , async ( ) => {
4764 const view = metaTransformer . cubes . find (
4865 ( it ) => it . config . name === 'test_view2'
You can’t perform that action at this time.
0 commit comments