Skip to content

Commit d84792b

Browse files
committed
add tests
1 parent 0f88537 commit d84792b

File tree

1 file changed

+78
-1
lines changed

1 file changed

+78
-1
lines changed

packages/cubejs-schema-compiler/test/integration/postgres/pre-aggregations.test.ts

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,49 @@ describe('PreAggregations', () => {
599599
}
600600
]
601601
});
602-
`);
602+
603+
cube('cube_pre_agg_proxy_a', {
604+
sql: \`SELECT '2025-10-01 12:00:00'::timestamp as starts_at\`,
605+
606+
dimensions: {
607+
starts_at: {
608+
sql: \`\${CUBE}.starts_at\`,
609+
type: 'time'
610+
}
611+
}
612+
});
613+
614+
cube('cube_pre_agg_proxy_b', {
615+
sql: \`SELECT 'id' as id\`,
616+
617+
joins: {
618+
cube_pre_agg_proxy_a: {
619+
relationship: 'one_to_one',
620+
sql: '1 = 1'
621+
}
622+
},
623+
624+
dimensions: {
625+
id: {
626+
sql: \`\${CUBE}.id\`,
627+
type: 'string',
628+
primary_key: true
629+
},
630+
631+
terminal_date: {
632+
type: 'time',
633+
sql: \`\${cube_pre_agg_proxy_a.starts_at}\`
634+
}
635+
},
636+
637+
pre_aggregations: {
638+
main: {
639+
time_dimension: terminal_date,
640+
granularity: 'day'
641+
}
642+
}
643+
});
644+
`);
603645

604646
it('simple pre-aggregation', async () => {
605647
await compiler.compile();
@@ -2773,4 +2815,39 @@ describe('PreAggregations', () => {
27732815
expect(loadSql[0]).not.toMatch(/GROUP BY/);
27742816
expect(loadSql[0]).toMatch(/THEN 1 END `real_time_lambda_visitors__count`/);
27752817
});
2818+
2819+
it('querying proxied to external cube pre-aggregation time-dimension', async () => {
2820+
await compiler.compile();
2821+
2822+
const query = new PostgresQuery({ joinGraph, cubeEvaluator, compiler }, {
2823+
measures: [],
2824+
dimensions: [],
2825+
timezone: 'America/Los_Angeles',
2826+
preAggregationsSchema: '',
2827+
timeDimensions: [{
2828+
dimension: 'cube_pre_agg_proxy_b.terminal_date',
2829+
granularity: 'day',
2830+
}],
2831+
order: [],
2832+
});
2833+
2834+
const queryAndParams = query.buildSqlAndParams();
2835+
console.log(queryAndParams);
2836+
const preAggregationsDescription = query.preAggregations?.preAggregationsDescription();
2837+
console.log(JSON.stringify(preAggregationsDescription, null, 2));
2838+
2839+
expect((<any>preAggregationsDescription)[0].loadSql[0]).toMatch(/main/);
2840+
2841+
const queries = dbRunner.tempTablePreAggregations(preAggregationsDescription);
2842+
2843+
console.log(JSON.stringify(queries.concat(queryAndParams)));
2844+
2845+
return dbRunner.evaluateQueryWithPreAggregations(query).then(res => {
2846+
expect(res).toEqual(
2847+
[{
2848+
cube_pre_agg_proxy_b__terminal_date_day: '2025-10-01T00:00:00.000Z',
2849+
}]
2850+
);
2851+
});
2852+
});
27762853
});

0 commit comments

Comments
 (0)