Skip to content

Commit d2f48f6

Browse files
committed
test(schema-compiler): Port ClickHouseDbRunner to TypeScript
1 parent 6d91ca3 commit d2f48f6

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

packages/cubejs-schema-compiler/test/integration/clickhouse/ClickHouseDbRunner.js renamed to packages/cubejs-schema-compiler/test/integration/clickhouse/ClickHouseDbRunner.ts

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,37 @@
11
/* eslint-disable */
2+
// @ts-ignore
23
import ClickHouse from '@cubejs-backend/apla-clickhouse';
34
import { GenericContainer } from 'testcontainers';
5+
import type { StartedTestContainer } from 'testcontainers';
46
import { format as formatSql } from 'sqlstring';
57
import { v4 as uuidv4 } from 'uuid';
68
import { ClickHouseQuery } from '../../../src/adapter/ClickHouseQuery';
79
import { BaseDbRunner } from "../utils/BaseDbRunner";
810

11+
// Just a placeholder for now
12+
type ClickHouseClient = any;
13+
914
process.env.TZ = 'GMT';
1015

1116
export class ClickHouseDbRunner extends BaseDbRunner {
12-
adapter = 'clickhouse';
13-
container = null;
14-
clickHouseVersion = process.env.TEST_CLICKHOUSE_VERSION || '23.11';
15-
supportsExtendedDateTimeResults = this.clickHouseVersion >= '22.9';
16-
allowExperimentalJoinCondition = this.clickHouseVersion >= '24.5';
17+
public adapter: string = 'clickhouse';
18+
19+
protected container: StartedTestContainer | null = null;
20+
21+
protected clickHouseVersion: string = process.env.TEST_CLICKHOUSE_VERSION || '23.11';
22+
23+
public supportsExtendedDateTimeResults: boolean = this.clickHouseVersion >= '22.9';
1724

18-
tearDown = async () => {
25+
protected allowExperimentalJoinCondition: boolean = this.clickHouseVersion >= '24.5';
26+
27+
public override async tearDown(): Promise<void> {
1928
if (this.container) {
2029
await this.container.stop();
2130
this.container = null;
2231
}
2332
}
2433

25-
gutterDataSet = async function (clickHouse) {
34+
protected async gutterDataSet(clickHouse: ClickHouseClient): Promise<void> {
2635
// let engine = 'MergeTree PARTITION BY id ORDER BY (id) SETTINGS index_granularity = 8192'
2736
const engine = 'Memory';
2837

@@ -100,9 +109,9 @@ export class ClickHouseDbRunner extends BaseDbRunner {
100109
(40), (41), (42), (43), (44), (45), (46), (47), (48), (49),
101110
(50), (51), (52), (53), (54), (55), (56), (57), (58), (59)
102111
`, { queryOptions: { session_id: clickHouse.sessionId, join_use_nulls: '1' } });
103-
};
112+
}
104113

105-
testQueries = async (queries, prepareDataSet) => {
114+
public override async testQueries(queries: Array<[string, Array<unknown>]>, prepareDataSet?: ((client: ClickHouseClient) => Promise<void>) | null): Promise<Array<Array<Record<string, unknown>>>> {
106115
let host;
107116
let port;
108117
if (process.env.TEST_CLICKHOUSE_HOST) {
@@ -128,7 +137,7 @@ export class ClickHouseDbRunner extends BaseDbRunner {
128137
prepareDataSet = prepareDataSet || this.gutterDataSet;
129138
await prepareDataSet(clickHouse);
130139

131-
const requests = [];
140+
const requests: Array<unknown> = [];
132141

133142
// Controls whether functions return results with extended date and time ranges.
134143
//
@@ -158,16 +167,18 @@ export class ClickHouseDbRunner extends BaseDbRunner {
158167
const results = await Promise.all(requests);
159168

160169
return results.map(_normaliseResponse);
161-
};
170+
}
162171

163-
testQuery = async (queryAndParams, prepareDataSet) => this.testQueries([queryAndParams], prepareDataSet)
164-
.then(res => res[0]);
172+
public async testQuery(queryAndParams: [string, Array<unknown>], prepareDataSet?: ((client: ClickHouseClient) => Promise<void>) | null): Promise<Array<Record<string, unknown>>> {
173+
const res = await this.testQueries([queryAndParams], prepareDataSet);
174+
return res[0];
175+
}
165176

166-
port() {
177+
public override port(): number {
167178
return 8123;
168179
}
169180

170-
newTestQuery(compilers, query) {
181+
protected override newTestQuery(compilers: unknown, query: unknown): ClickHouseQuery {
171182
return new ClickHouseQuery(compilers, query);
172183
}
173184
}
@@ -179,7 +190,7 @@ export class ClickHouseDbRunner extends BaseDbRunner {
179190
//
180191
// https://github.com/statsbotco/cube.js/pull/98#discussion_r279698399
181192
//
182-
function _normaliseResponse(res) {
193+
function _normaliseResponse(res: any): Array<Record<string, unknown>> {
183194
if (process.env.DEBUG_LOG === 'true') console.log(res);
184195
if (res.data) {
185196
res.data.forEach(row => {

0 commit comments

Comments
 (0)