@@ -660,21 +660,30 @@ describe('SQL Generation', () => {
660660 /** @type {Compilers } */
661661 const compilers = prepareYamlCompiler (
662662 createSchemaYaml ( {
663- cubes : [
664- {
665- name : 'Order' ,
666- sql : 'select * from order where {FILTER_PARAMS.Order.type.filter(\'type\')}' ,
667- measures : [ {
668- name : 'count' ,
669- type : 'count' ,
670- } ] ,
671- dimensions : [ {
672- name : 'type' ,
673- sql : 'type' ,
674- type : 'string'
675- } ]
676- } ,
677- ]
663+ cubes : [ {
664+ name : 'Order' ,
665+ sql : 'select * from order where {FILTER_PARAMS.Order.type.filter(\'type\')}' ,
666+ measures : [ {
667+ name : 'count' ,
668+ type : 'count' ,
669+ } ] ,
670+ dimensions : [ {
671+ name : 'type' ,
672+ sql : 'type' ,
673+ type : 'string'
674+ } ]
675+ } ] ,
676+ views : [ {
677+ name : 'orders_view' ,
678+ cubes : [ {
679+ join_path : 'Order' ,
680+ prefix : true ,
681+ includes : [
682+ 'type' ,
683+ 'count' ,
684+ ]
685+ } ]
686+ } ]
678687 } )
679688 ) ;
680689
@@ -829,6 +838,23 @@ describe('SQL Generation', () => {
829838 const cubeSQL = query . cubeSql ( 'Order' ) ;
830839 expect ( cubeSQL ) . toMatch ( / \( \s * \( .* t y p e \s * = \s * \$ \d \$ .* O R .* t y p e \s * = \s * \$ \d \$ .* \) \s * A N D \s * \( .* t y p e \s * = \s * \$ \d \$ .* O R .* t y p e \s * = \s * \$ \d \$ .* \) \s * \) / ) ;
831840 } ) ;
841+
842+ it ( 'propagate filter params from view into cube\'s query' , async ( ) => {
843+ await compilers . compiler . compile ( ) ;
844+ const query = new BaseQuery ( compilers , {
845+ measures : [ 'orders_view.Order_count' ] ,
846+ filters : [
847+ {
848+ member : 'orders_view.Order_type' ,
849+ operator : 'equals' ,
850+ values : [ 'online' ] ,
851+ } ,
852+ ] ,
853+ } ) ;
854+ const cubeSQL = query . cubeSql ( 'Order' ) ;
855+ console . log ( 'TEST: ' , cubeSQL ) ;
856+ expect ( cubeSQL ) . toContain ( 'select * from order where ((type = $0$))' ) ;
857+ } ) ;
832858 } ) ;
833859} ) ;
834860
@@ -866,13 +892,13 @@ describe('Class unit tests', () => {
866892 expect ( baseQuery . aliasName ( 'CamelCaseCube.id' , false ) ) . toEqual ( 'camel_case_cube__id' ) ;
867893 expect ( baseQuery . aliasName ( 'CamelCaseCube.description' , false ) ) . toEqual ( 'camel_case_cube__description' ) ;
868894 expect ( baseQuery . aliasName ( 'CamelCaseCube.grant_total' , false ) ) . toEqual ( 'camel_case_cube__grant_total' ) ;
869-
895+
870896 // aliasName for pre-agg
871897 expect ( baseQuery . aliasName ( 'CamelCaseCube' , true ) ) . toEqual ( 'camel_case_cube' ) ;
872898 expect ( baseQuery . aliasName ( 'CamelCaseCube.id' , true ) ) . toEqual ( 'camel_case_cube_id' ) ;
873899 expect ( baseQuery . aliasName ( 'CamelCaseCube.description' , true ) ) . toEqual ( 'camel_case_cube_description' ) ;
874900 expect ( baseQuery . aliasName ( 'CamelCaseCube.grant_total' , true ) ) . toEqual ( 'camel_case_cube_grant_total' ) ;
875-
901+
876902 // cubeAlias
877903 expect ( baseQuery . cubeAlias ( 'CamelCaseCube' ) ) . toEqual ( '"camel_case_cube"' ) ;
878904 expect ( baseQuery . cubeAlias ( 'CamelCaseCube.id' ) ) . toEqual ( '"camel_case_cube__id"' ) ;
@@ -914,7 +940,7 @@ describe('Class unit tests', () => {
914940 expect ( baseQuery . aliasName ( 'CamelCaseCube.id' , false ) ) . toEqual ( 't1__id' ) ;
915941 expect ( baseQuery . aliasName ( 'CamelCaseCube.description' , false ) ) . toEqual ( 't1__description' ) ;
916942 expect ( baseQuery . aliasName ( 'CamelCaseCube.grant_total' , false ) ) . toEqual ( 't1__grant_total' ) ;
917-
943+
918944 // aliasName for pre-agg
919945 expect ( baseQuery . aliasName ( 'CamelCaseCube' , true ) ) . toEqual ( 't1' ) ;
920946 expect ( baseQuery . aliasName ( 'CamelCaseCube.id' , true ) ) . toEqual ( 't1_id' ) ;
0 commit comments