Skip to content

Commit fde7715

Browse files
committed
fix tests
1 parent d8908ff commit fde7715

File tree

1 file changed

+68
-5
lines changed

1 file changed

+68
-5
lines changed

packages/cubejs-schema-compiler/test/integration/postgres/cube-views.test.ts

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ cube(\`Orders\`, {
4747
measures: {
4848
count: {
4949
type: \`count\`,
50-
drillMembers: [id, createdAt]
50+
drillMembers: [id, createdAt, Products.ProductCategories.name]
5151
},
5252
5353
runningTotal: {
@@ -183,6 +183,10 @@ cube(\`ProductCategories\`, {
183183
measures: {
184184
count: {
185185
type: \`count\`,
186+
},
187+
count2: {
188+
type: \`count\`,
189+
drillMembers: [id, name]
186190
}
187191
},
188192
@@ -262,7 +266,28 @@ view(\`OrdersSimpleView\`, {
262266
includes: ['createdAt', 'count']
263267
}]
264268
});
265-
`);
269+
270+
view(\`OrdersViewDrillMembers\`, {
271+
cubes: [{
272+
join_path: Orders,
273+
includes: ['createdAt', 'count']
274+
}, {
275+
join_path: Orders.Products.ProductCategories,
276+
includes: ['name', 'count2']
277+
}]
278+
});
279+
280+
view(\`OrdersViewDrillMembersWithPrefix\`, {
281+
cubes: [{
282+
join_path: Orders,
283+
includes: ['createdAt', 'count']
284+
}, {
285+
join_path: Orders.Products.ProductCategories,
286+
includes: ['name', 'count2'],
287+
prefix: true
288+
}]
289+
});
290+
`);
266291

267292
async function runQueryTest(q: any, expectedResult: any, additionalTest?: (query: BaseQuery) => any) {
268293
await compiler.compile();
@@ -441,10 +466,10 @@ view(\`OrdersSimpleView\`, {
441466
await compiler.compile();
442467
const cube = metaTransformer.cubes.find(c => c.config.name === 'OrdersView');
443468
const countMeasure = cube.config.measures.find((m) => m.name === 'OrdersView.count');
444-
expect(countMeasure.drillMembers).toEqual(['OrdersView.id', 'OrdersView.createdAt']);
469+
expect(countMeasure.drillMembers).toEqual(['OrdersView.id', 'OrdersView.ProductCategories_name']);
445470
expect(countMeasure.drillMembersGrouped).toEqual({
446471
measures: [],
447-
dimensions: ['OrdersView.id', 'OrdersView.createdAt']
472+
dimensions: ['OrdersView.id', 'OrdersView.ProductCategories_name']
448473
});
449474
});
450475

@@ -454,7 +479,7 @@ view(\`OrdersSimpleView\`, {
454479
// Check that the source Orders cube has drill members
455480
const sourceOrdersCube = metaTransformer.cubes.find(c => c.config.name === 'Orders');
456481
const sourceCountMeasure = sourceOrdersCube.config.measures.find((m) => m.name === 'Orders.count');
457-
expect(sourceCountMeasure.drillMembers).toEqual(['Orders.id', 'Orders.createdAt']);
482+
expect(sourceCountMeasure.drillMembers).toEqual(['Orders.id', 'Orders.createdAt', 'ProductCategories.name']);
458483

459484
// Check that the OrdersView cube inherits these drill members with correct naming
460485
const viewCube = metaTransformer.cubes.find(c => c.config.name === 'OrdersView');
@@ -498,4 +523,42 @@ view(\`OrdersSimpleView\`, {
498523
dimensions: ['OrdersSimpleView.createdAt']
499524
});
500525
});
526+
527+
it('verify drill member inheritance functionality (with transitive joins)', async () => {
528+
await compiler.compile();
529+
530+
// Check that the OrdersView cube inherits these drill members with correct naming
531+
const viewCube = metaTransformer.cubes.find(c => c.config.name === 'OrdersViewDrillMembers');
532+
533+
const viewCountMeasure = viewCube.config.measures.find((m) => m.name === 'OrdersViewDrillMembers.count');
534+
expect(viewCountMeasure.drillMembers).toBeDefined();
535+
expect(Array.isArray(viewCountMeasure.drillMembers)).toBe(true);
536+
expect(viewCountMeasure.drillMembers.length).toEqual(2);
537+
expect(viewCountMeasure.drillMembers).toEqual(['OrdersViewDrillMembers.createdAt', 'OrdersViewDrillMembers.name']);
538+
539+
const viewCount2Measure = viewCube.config.measures.find((m) => m.name === 'OrdersViewDrillMembers.count2');
540+
expect(viewCount2Measure.drillMembers).toBeDefined();
541+
expect(Array.isArray(viewCount2Measure.drillMembers)).toBe(true);
542+
expect(viewCount2Measure.drillMembers.length).toEqual(1);
543+
expect(viewCount2Measure.drillMembers).toContain('OrdersViewDrillMembers.name');
544+
});
545+
546+
it('verify drill member inheritance functionality (with transitive joins + prefix)', async () => {
547+
await compiler.compile();
548+
549+
// Check that the OrdersView cube inherits these drill members with correct naming
550+
const viewCube = metaTransformer.cubes.find(c => c.config.name === 'OrdersViewDrillMembersWithPrefix');
551+
552+
const viewCountMeasure = viewCube.config.measures.find((m) => m.name === 'OrdersViewDrillMembersWithPrefix.count');
553+
expect(viewCountMeasure.drillMembers).toBeDefined();
554+
expect(Array.isArray(viewCountMeasure.drillMembers)).toBe(true);
555+
expect(viewCountMeasure.drillMembers.length).toEqual(2);
556+
expect(viewCountMeasure.drillMembers).toEqual(['OrdersViewDrillMembersWithPrefix.createdAt', 'OrdersViewDrillMembersWithPrefix.ProductCategories_name']);
557+
558+
const viewCount2Measure = viewCube.config.measures.find((m) => m.name === 'OrdersViewDrillMembersWithPrefix.ProductCategories_count2');
559+
expect(viewCount2Measure.drillMembers).toBeDefined();
560+
expect(Array.isArray(viewCount2Measure.drillMembers)).toBe(true);
561+
expect(viewCount2Measure.drillMembers.length).toEqual(1);
562+
expect(viewCount2Measure.drillMembers).toContain('OrdersViewDrillMembersWithPrefix.ProductCategories_name');
563+
});
501564
});

0 commit comments

Comments
 (0)