Skip to content

Commit

Permalink
Add tests for proxying predefined granularities
Browse files Browse the repository at this point in the history
  • Loading branch information
KSDaemon committed Sep 9, 2024
1 parent b805061 commit 079f64d
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 2 deletions.
48 changes: 46 additions & 2 deletions packages/cubejs-schema-compiler/test/unit/base-query.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,44 @@ describe('SQL Generation', () => {
filters: [],
timezone: 'Europe/Kyiv'
},
{
measures: [
'orders.count'
],
timeDimensions: [
{
dimension: 'orders.createdAt',
dateRange: [
'2020-01-01',
'2021-12-31'
]
}
],
dimensions: [
'orders.createdAtPredefinedYear'
],
filters: [],
timezone: 'Europe/Kyiv'
},
{
measures: [
'orders.count'
],
timeDimensions: [
{
dimension: 'orders.createdAt',
dateRange: [
'2020-01-01',
'2021-12-31'
]
}
],
dimensions: [
'orders.createdAtPredefinedQuarter'
],
filters: [],
timezone: 'Europe/Kyiv'
},
];

it('Test time series with different granularities', async () => {
Expand Down Expand Up @@ -375,8 +413,14 @@ describe('SQL Generation', () => {
const queryString = queryAndParams[0];
console.log('Generated query: ', queryString);

expect(queryString.includes('INTERVAL \'6 months\'')).toBeTruthy();
expect(queryString.includes('count("orders".id')).toBeTruthy();
if (q.dimensions[0].includes('PredefinedYear')) {
expect(queryString.includes('date_trunc(\'year\'')).toBeTruthy();
} else if (q.dimensions[0].includes('PredefinedQuarter')) {
expect(queryString.includes('date_trunc(\'quarter\'')).toBeTruthy();
} else {
expect(queryString.includes('INTERVAL \'6 months\'')).toBeTruthy();
expect(queryString.includes('count("orders".id')).toBeTruthy();
}
});
});
});
Expand Down
10 changes: 10 additions & 0 deletions packages/cubejs-schema-compiler/test/unit/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,16 @@ export function createCubeSchemaWithCustomGranularities(name: string): string {
}
}
},
createdAtPredefinedYear: {
public: true,
sql: \`\${createdAt.year}\`,
type: 'string',
},
createdAtPredefinedQuarter: {
public: true,
sql: \`\${createdAt.quarter}\`,
type: 'string',
},
createdAtHalfYear: {
public: true,
sql: \`\${createdAt.half_year}\`,
Expand Down

0 comments on commit 079f64d

Please sign in to comment.