@cubejs-backend/testing 0.29.29 → 0.29.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/birdbox-fixtures/athena.yml +11 -3
  3. package/birdbox-fixtures/bigquery.yml +11 -4
  4. package/birdbox-fixtures/postgresql/schema/OrdersPA.js +58 -0
  5. package/birdbox-fixtures/questdb/schema/Events.js +49 -0
  6. package/birdbox-fixtures/questdb/schema/Orders.js +34 -0
  7. package/birdbox-fixtures/questdb/scripts/questdb-load-events.sh +19 -0
  8. package/birdbox-fixtures/questdb.yml +43 -0
  9. package/dist/src/birdbox.d.ts +2 -3
  10. package/dist/src/birdbox.d.ts.map +1 -1
  11. package/dist/src/birdbox.js +25 -19
  12. package/dist/src/birdbox.js.map +1 -1
  13. package/dist/src/index.d.ts +0 -1
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +0 -1
  16. package/dist/src/index.js.map +1 -1
  17. package/package.json +17 -12
  18. package/dist/src/db/cubestore.d.ts +0 -9
  19. package/dist/src/db/cubestore.d.ts.map +0 -1
  20. package/dist/src/db/cubestore.js +0 -22
  21. package/dist/src/db/cubestore.js.map +0 -1
  22. package/dist/src/db/db-runner.abstract.d.ts +0 -11
  23. package/dist/src/db/db-runner.abstract.d.ts.map +0 -1
  24. package/dist/src/db/db-runner.abstract.js +0 -8
  25. package/dist/src/db/db-runner.abstract.js.map +0 -1
  26. package/dist/src/db/index.d.ts +0 -5
  27. package/dist/src/db/index.d.ts.map +0 -1
  28. package/dist/src/db/index.js +0 -17
  29. package/dist/src/db/index.js.map +0 -1
  30. package/dist/src/db/mysql.d.ts +0 -9
  31. package/dist/src/db/mysql.d.ts.map +0 -1
  32. package/dist/src/db/mysql.js +0 -37
  33. package/dist/src/db/mysql.js.map +0 -1
  34. package/dist/src/db/postgres.d.ts +0 -9
  35. package/dist/src/db/postgres.d.ts.map +0 -1
  36. package/dist/src/db/postgres.js +0 -33
  37. package/dist/src/db/postgres.js.map +0 -1
  38. package/dist/src/db/questdb.d.ts +0 -9
  39. package/dist/src/db/questdb.d.ts.map +0 -1
  40. package/dist/src/db/questdb.js +0 -22
  41. package/dist/src/db/questdb.js.map +0 -1
  42. package/dist/src/testing/DriverTests.d.ts +0 -26
  43. package/dist/src/testing/DriverTests.d.ts.map +0 -1
  44. package/dist/src/testing/DriverTests.js +0 -107
  45. package/dist/src/testing/DriverTests.js.map +0 -1
  46. package/dist/src/testing/index.d.ts +0 -3
  47. package/dist/src/testing/index.d.ts.map +0 -1
  48. package/dist/src/testing/index.js +0 -15
  49. package/dist/src/testing/index.js.map +0 -1
  50. package/dist/src/testing/query-test.abstract.d.ts +0 -25
  51. package/dist/src/testing/query-test.abstract.d.ts.map +0 -1
  52. package/dist/src/testing/query-test.abstract.js +0 -123
  53. package/dist/src/testing/query-test.abstract.js.map +0 -1
  54. package/dist/src/utils.d.ts +0 -9
  55. package/dist/src/utils.d.ts.map +0 -1
  56. package/dist/src/utils.js +0 -61
  57. package/dist/src/utils.js.map +0 -1
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./mysql"), exports);
14
- __exportStar(require("./postgres"), exports);
15
- __exportStar(require("./cubestore"), exports);
16
- __exportStar(require("./questdb"), exports);
17
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B"}
@@ -1,9 +0,0 @@
1
- import { DbRunnerAbstract, DBRunnerContainerOptions } from './db-runner.abstract';
2
- declare type MySQLStartOptions = DBRunnerContainerOptions & {
3
- version?: string;
4
- };
5
- export declare class MysqlDBRunner extends DbRunnerAbstract {
6
- static startContainer(options: MySQLStartOptions): Promise<import("testcontainers").StartedTestContainer>;
7
- }
8
- export {};
9
- //# sourceMappingURL=mysql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../../src/db/mysql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAElF,aAAK,iBAAiB,GAAG,wBAAwB,GAAG;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,aAAc,SAAQ,gBAAgB;WACnC,cAAc,CAAC,OAAO,EAAE,iBAAiB;CAgCxD"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MysqlDBRunner = void 0;
4
- const testcontainers_1 = require("testcontainers");
5
- const db_runner_abstract_1 = require("./db-runner.abstract");
6
- class MysqlDBRunner extends db_runner_abstract_1.DbRunnerAbstract {
7
- static startContainer(options) {
8
- const version = process.env.TEST_MYSQL_VERSION || options.version || '5.7';
9
- const builder = new testcontainers_1.GenericContainer(`mysql:${version}`)
10
- .withEnv('MYSQL_ROOT_PASSWORD', process.env.TEST_DB_PASSWORD || 'Test1test')
11
- .withHealthCheck({
12
- test: 'mysqladmin ping -h localhost',
13
- interval: 5 * 1000,
14
- timeout: 2 * 1000,
15
- retries: 3,
16
- startPeriod: 10 * 1000,
17
- })
18
- .withWaitStrategy(testcontainers_1.Wait.forHealthCheck())
19
- .withExposedPorts(3306);
20
- if (version.split('.')[0] === '8') {
21
- /**
22
- * workaround for MySQL 8 and unsupported auth in mysql package
23
- * @link https://github.com/mysqljs/mysql/pull/2233
24
- */
25
- builder.withCmd(['--default-authentication-plugin=mysql_native_password']);
26
- }
27
- if (options.volumes) {
28
- // eslint-disable-next-line no-restricted-syntax
29
- for (const { source, target, bindMode } of options.volumes) {
30
- builder.withBindMount(source, target, bindMode);
31
- }
32
- }
33
- return builder.start();
34
- }
35
- }
36
- exports.MysqlDBRunner = MysqlDBRunner;
37
- //# sourceMappingURL=mysql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../../src/db/mysql.ts"],"names":[],"mappings":";;;AAAA,mDAAwD;AAExD,6DAAkF;AAMlF,MAAa,aAAc,SAAQ,qCAAgB;IAC1C,MAAM,CAAC,cAAc,CAAC,OAA0B;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QAE3E,MAAM,OAAO,GAAG,IAAI,iCAAgB,CAAC,SAAS,OAAO,EAAE,CAAC;aACrD,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW,CAAC;aAC3E,eAAe,CAAC;YACf,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,CAAC,GAAG,IAAI;YAClB,OAAO,EAAE,CAAC,GAAG,IAAI;YACjB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,EAAE,GAAG,IAAI;SACvB,CAAC;aACD,gBAAgB,CAAC,qBAAI,CAAC,cAAc,EAAE,CAAC;aACvC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACjC;;;eAGG;YACH,OAAO,CAAC,OAAO,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC;SAC5E;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,gDAAgD;YAChD,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;gBAC1D,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aACjD;SACF;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAjCD,sCAiCC"}
@@ -1,9 +0,0 @@
1
- import { DbRunnerAbstract, DBRunnerContainerOptions } from './db-runner.abstract';
2
- declare type PostgresStartOptions = DBRunnerContainerOptions & {
3
- version?: string;
4
- };
5
- export declare class PostgresDBRunner extends DbRunnerAbstract {
6
- static startContainer(options: PostgresStartOptions): Promise<import("testcontainers").StartedTestContainer>;
7
- }
8
- export {};
9
- //# sourceMappingURL=postgres.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/db/postgres.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAElF,aAAK,oBAAoB,GAAG,wBAAwB,GAAG;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,gBAAgB;WACtC,cAAc,CAAC,OAAO,EAAE,oBAAoB;CA2B3D"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostgresDBRunner = void 0;
4
- const testcontainers_1 = require("testcontainers");
5
- const db_runner_abstract_1 = require("./db-runner.abstract");
6
- class PostgresDBRunner extends db_runner_abstract_1.DbRunnerAbstract {
7
- static startContainer(options) {
8
- const version = process.env.TEST_PGSQL_VERSION || options.version || '9.6.8';
9
- const container = new testcontainers_1.GenericContainer(`postgres:${version}`)
10
- .withEnv('POSTGRES_USER', 'test')
11
- .withEnv('POSTGRES_DB', 'test')
12
- .withEnv('POSTGRES_PASSWORD', 'test')
13
- .withExposedPorts(5432)
14
- // .withHealthCheck({
15
- // test: 'pg_isready -U root -d model_test',
16
- // interval: 2 * 1000,
17
- // timeout: 500,
18
- // retries: 3
19
- // })
20
- // .withWaitStrategy(Wait.forHealthCheck())
21
- // Postgresql do fast shutdown on start for db applying
22
- .withStartupTimeout(10 * 1000);
23
- if (options.volumes) {
24
- // eslint-disable-next-line no-restricted-syntax
25
- for (const { source, target, bindMode } of options.volumes) {
26
- container.withBindMount(source, target, bindMode);
27
- }
28
- }
29
- return container.start();
30
- }
31
- }
32
- exports.PostgresDBRunner = PostgresDBRunner;
33
- //# sourceMappingURL=postgres.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/db/postgres.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAElD,6DAAkF;AAMlF,MAAa,gBAAiB,SAAQ,qCAAgB;IAC7C,MAAM,CAAC,cAAc,CAAC,OAA6B;QACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;QAE7E,MAAM,SAAS,GAAG,IAAI,iCAAgB,CAAC,YAAY,OAAO,EAAE,CAAC;aAC1D,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;aAChC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;aAC9B,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;aACpC,gBAAgB,CAAC,IAAI,CAAC;YACvB,qBAAqB;YACrB,8CAA8C;YAC9C,wBAAwB;YACxB,kBAAkB;YAClB,eAAe;YACf,KAAK;YACL,2CAA2C;YAC3C,uDAAuD;aACtD,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,gDAAgD;YAChD,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;gBAC1D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aACnD;SACF;QAED,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AA5BD,4CA4BC"}
@@ -1,9 +0,0 @@
1
- import { DbRunnerAbstract, DBRunnerContainerOptions } from './db-runner.abstract';
2
- declare type QuestStartOptions = DBRunnerContainerOptions & {
3
- version?: string;
4
- };
5
- export declare class QuestDBRunner extends DbRunnerAbstract {
6
- static startContainer(options: QuestStartOptions): Promise<import("testcontainers").StartedTestContainer>;
7
- }
8
- export {};
9
- //# sourceMappingURL=questdb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"questdb.d.ts","sourceRoot":"","sources":["../../../src/db/questdb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAElF,aAAK,iBAAiB,GAAG,wBAAwB,GAAG;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,aAAc,SAAQ,gBAAgB;WACnC,cAAc,CAAC,OAAO,EAAE,iBAAiB;CAgBxD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QuestDBRunner = void 0;
4
- const testcontainers_1 = require("testcontainers");
5
- const db_runner_abstract_1 = require("./db-runner.abstract");
6
- class QuestDBRunner extends db_runner_abstract_1.DbRunnerAbstract {
7
- static startContainer(options) {
8
- const version = process.env.TEST_QUEST_DB_VERSION || options.version || '6.2';
9
- const container = new testcontainers_1.GenericContainer(`questdb/questdb:${version}`)
10
- .withExposedPorts(8812)
11
- .withStartupTimeout(10 * 1000);
12
- if (options.volumes) {
13
- // eslint-disable-next-line no-restricted-syntax
14
- for (const { source, target, bindMode } of options.volumes) {
15
- container.withBindMount(source, target, bindMode);
16
- }
17
- }
18
- return container.start();
19
- }
20
- }
21
- exports.QuestDBRunner = QuestDBRunner;
22
- //# sourceMappingURL=questdb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"questdb.js","sourceRoot":"","sources":["../../../src/db/questdb.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAElD,6DAAkF;AAMlF,MAAa,aAAc,SAAQ,qCAAgB;IAC1C,MAAM,CAAC,cAAc,CAAC,OAA0B;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QAE9E,MAAM,SAAS,GAAG,IAAI,iCAAgB,CAAC,mBAAmB,OAAO,EAAE,CAAC;aACjE,gBAAgB,CAAC,IAAI,CAAC;aACtB,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,gDAAgD;YAChD,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;gBAC1D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aACnD;SACF;QAED,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAjBD,sCAiBC"}
@@ -1,26 +0,0 @@
1
- import { DriverInterface } from '@cubejs-backend/query-orchestrator';
2
- export interface DriverTestsOptions {
3
- expectStringFields?: boolean;
4
- csvNoHeader?: boolean;
5
- wrapLoadQueryWithCtas?: boolean;
6
- }
7
- export declare class DriverTests {
8
- readonly driver: DriverInterface;
9
- private readonly options;
10
- constructor(driver: DriverInterface, options?: DriverTestsOptions);
11
- static config(): void;
12
- release(): Promise<void>;
13
- static QUERY: string;
14
- static ROWS: {
15
- id: number;
16
- amount: number;
17
- status: string;
18
- }[];
19
- static CSV_ROWS: string;
20
- testQuery(): Promise<void>;
21
- testStream(): Promise<void>;
22
- testUnload(): Promise<void>;
23
- private skipFirstLine;
24
- private rowsToString;
25
- }
26
- //# sourceMappingURL=DriverTests.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DriverTests.d.ts","sourceRoot":"","sources":["../../../src/testing/DriverTests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAmB,MAAM,oCAAoC,CAAC;AAOtF,MAAM,WAAW,kBAAkB;IAEjC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAG5B,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAED,qBAAa,WAAW;aAEJ,MAAM,EAAE,eAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADR,MAAM,EAAE,eAAe,EACtB,OAAO,GAAE,kBAAuB;WAIrC,MAAM;IAMb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAc,KAAK,SAUjB;IAEF,OAAc,IAAI;;;;QAIhB;IAEF,OAAc,QAAQ,SAIpB;IAEW,SAAS;IAMT,UAAU;IASV,UAAU;IAmCvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CAWrB"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DriverTests = void 0;
7
- // eslint-disable-next-line import/no-extraneous-dependencies
8
- const globals_1 = require("@jest/globals");
9
- const query_orchestrator_1 = require("@cubejs-backend/query-orchestrator");
10
- const shared_1 = require("@cubejs-backend/shared");
11
- const crypto_1 = __importDefault(require("crypto"));
12
- const dedent_1 = __importDefault(require("dedent"));
13
- const dotenv_1 = __importDefault(require("@cubejs-backend/dotenv"));
14
- const stream_1 = require("stream");
15
- class DriverTests {
16
- constructor(driver, options = {}) {
17
- this.driver = driver;
18
- this.options = options;
19
- }
20
- static config() {
21
- if ('CUBEJS_TEST_ENV' in process.env) {
22
- dotenv_1.default.config({ path: process.env.CUBEJS_TEST_ENV });
23
- }
24
- }
25
- release() {
26
- return this.driver.release();
27
- }
28
- async testQuery() {
29
- const rows = await this.driver.query(DriverTests.QUERY, []);
30
- const expectedRows = this.options.expectStringFields ? this.rowsToString(DriverTests.ROWS) : DriverTests.ROWS;
31
- globals_1.expect(rows).toEqual(expectedRows);
32
- }
33
- async testStream() {
34
- globals_1.expect(this.driver.stream).toBeDefined();
35
- const tableData = await this.driver.stream(DriverTests.QUERY, [], { highWaterMark: 100 });
36
- globals_1.expect(tableData.rowStream instanceof stream_1.Readable);
37
- const rows = await shared_1.streamToArray(tableData.rowStream);
38
- const expectedRows = this.options.expectStringFields ? this.rowsToString(DriverTests.ROWS) : DriverTests.ROWS;
39
- globals_1.expect(rows).toEqual(expectedRows);
40
- }
41
- async testUnload() {
42
- globals_1.expect(this.driver.unload).toBeDefined();
43
- const versionEntry = {
44
- table_name: 'test.orders_order_status',
45
- structure_version: crypto_1.default.randomBytes(10).toString('hex'),
46
- content_version: crypto_1.default.randomBytes(10).toString('hex'),
47
- last_updated_at: new Date().getTime(),
48
- naming_version: 2
49
- };
50
- const tableName = query_orchestrator_1.PreAggregations.targetTableName(versionEntry);
51
- const query = `
52
- SELECT orders.status AS orders__status, sum(orders.amount) AS orders__amount
53
- FROM (${DriverTests.QUERY}) AS orders
54
- GROUP BY 1
55
- ORDER BY 1
56
- `;
57
- const loadQuery = this.options.wrapLoadQueryWithCtas ? `CREATE TABLE ${tableName} AS ${query}` : query;
58
- await this.driver.loadPreAggregationIntoTable(tableName, loadQuery, [], {
59
- newVersionEntry: versionEntry,
60
- targetTableName: tableName,
61
- });
62
- const data = await this.driver.unload(tableName, { maxFileSize: 64 });
63
- globals_1.expect(data.csvFile.length).toEqual(1);
64
- const string = await shared_1.downloadAndGunzip(data.csvFile[0]);
65
- const expectedRows = this.options.csvNoHeader
66
- ? this.skipFirstLine(DriverTests.CSV_ROWS)
67
- : DriverTests.CSV_ROWS;
68
- globals_1.expect(string.trim()).toEqual(expectedRows);
69
- }
70
- skipFirstLine(text) {
71
- return text.split('\n').slice(1).join('\n');
72
- }
73
- rowsToString(rows) {
74
- const result = [];
75
- for (const row of rows) {
76
- const newRow = {};
77
- for (const k of Object.keys(row)) {
78
- newRow[k] = row[k].toString();
79
- }
80
- result.push(newRow);
81
- }
82
- return result;
83
- }
84
- }
85
- exports.DriverTests = DriverTests;
86
- DriverTests.QUERY = `
87
- SELECT id, amount, status
88
- FROM (
89
- SELECT 1 AS id, 100 AS amount, 'new' AS status
90
- UNION ALL
91
- SELECT 2 AS id, 200 AS amount, 'new' AS status
92
- UNION ALL
93
- SELECT 3 AS id, 400 AS amount, 'processed' AS status
94
- )
95
- ORDER BY 1
96
- `;
97
- DriverTests.ROWS = [
98
- { id: 1, amount: 100, status: 'new' },
99
- { id: 2, amount: 200, status: 'new' },
100
- { id: 3, amount: 400, status: 'processed' },
101
- ];
102
- DriverTests.CSV_ROWS = dedent_1.default `
103
- orders__status,orders__amount
104
- new,300
105
- processed,400
106
- `;
107
- //# sourceMappingURL=DriverTests.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DriverTests.js","sourceRoot":"","sources":["../../../src/testing/DriverTests.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './query-test.abstract';
2
- export * from './DriverTests';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./query-test.abstract"), exports);
14
- __exportStar(require("./DriverTests"), exports);
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAAsC;AACtC,gDAA8B"}
@@ -1,25 +0,0 @@
1
- import { BaseDriver } from '@cubejs-backend/query-orchestrator';
2
- import { BaseQuery } from '@cubejs-backend/schema-compiler';
3
- import { StartedTestContainer } from 'testcontainers';
4
- export declare const prepareCompiler: (content: any, options?: any) => {
5
- compiler: import("@cubejs-backend/schema-compiler/dist/src/compiler/DataSchemaCompiler").DataSchemaCompiler;
6
- metaTransformer: import("@cubejs-backend/schema-compiler/dist/src/compiler/CubeToMetaTransformer").CubeToMetaTransformer;
7
- cubeEvaluator: import("@cubejs-backend/schema-compiler/dist/src/compiler/CubeEvaluator").CubeEvaluator;
8
- contextEvaluator: import("@cubejs-backend/schema-compiler/dist/src/compiler/ContextEvaluator").ContextEvaluator;
9
- joinGraph: import("@cubejs-backend/schema-compiler/dist/src/compiler/JoinGraph").JoinGraph;
10
- compilerCache: import("@cubejs-backend/schema-compiler/dist/src/compiler/CompilerCache").CompilerCache;
11
- headCommitId: any;
12
- };
13
- export declare abstract class QueryTestAbstract<T extends BaseDriver> {
14
- abstract getQueryClass(): any;
15
- protected getQuery(a: any, b: any): BaseQuery;
16
- testRefreshKeyEveryDay(connection: T): Promise<void>;
17
- testRefreshKeyIncrementalWithUpdateWindow(connection: T): Promise<void>;
18
- }
19
- export interface QueryTestCaseOptions {
20
- name: string;
21
- connectionFactory: (container: StartedTestContainer) => BaseDriver;
22
- DbRunnerClass: any;
23
- }
24
- export declare function createQueryTestCase(test: QueryTestAbstract<any>, opts: QueryTestCaseOptions): void;
25
- //# sourceMappingURL=query-test.abstract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-test.abstract.d.ts","sourceRoot":"","sources":["../../../src/testing/query-test.abstract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,SAAS,EAA8C,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtD,eAAO,MAAM,eAAe,YAAa,GAAG,YAAY,GAAG;;;;;;;;CAKpB,CAAC;AAExC,8BAAsB,iBAAiB,CAAC,CAAC,SAAS,UAAU;IAC1D,QAAQ,CAAC,aAAa,IAAI,GAAG;IAE7B,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,SAAS;IAMhC,sBAAsB,CAAC,UAAU,EAAE,CAAC;IA4CpC,yCAAyC,CAAC,UAAU,EAAE,CAAC;CAiDrE;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,CAAC,SAAS,EAAE,oBAAoB,KAAK,UAAU,CAAC;IACnE,aAAa,EAAE,GAAG,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,QAyB3F"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createQueryTestCase = exports.QueryTestAbstract = exports.prepareCompiler = void 0;
4
- // eslint-disable-next-line import/no-extraneous-dependencies
5
- const globals_1 = require("@jest/globals");
6
- const schema_compiler_1 = require("@cubejs-backend/schema-compiler");
7
- const shared_1 = require("@cubejs-backend/shared");
8
- const utils_1 = require("../utils");
9
- const prepareCompiler = (content, options) => schema_compiler_1.prepareCompiler({
10
- localPath: () => __dirname,
11
- dataSchemaFiles: () => Promise.resolve([
12
- { fileName: 'main.js', content }
13
- ])
14
- }, { adapter: 'postgres', ...options });
15
- exports.prepareCompiler = prepareCompiler;
16
- class QueryTestAbstract {
17
- getQuery(a, b) {
18
- const QueryClass = this.getQueryClass();
19
- return new QueryClass(a, b);
20
- }
21
- async testRefreshKeyEveryDay(connection) {
22
- const { compiler, joinGraph, cubeEvaluator } = exports.prepareCompiler(utils_1.createCubeSchema({
23
- name: 'cards',
24
- preAggregations: `
25
- countCreatedAt: {
26
- type: 'rollup',
27
- external: true,
28
- measureReferences: [count],
29
- timeDimensionReference: createdAt,
30
- granularity: \`day\`,
31
- partitionGranularity: \`month\`,
32
- scheduledRefresh: true,
33
- refreshKey: {
34
- every: \`1 day\`,
35
- },
36
- },
37
- `
38
- }));
39
- await compiler.compile();
40
- const query = this.getQuery({ joinGraph, cubeEvaluator, compiler }, {
41
- measures: [
42
- 'cards.count'
43
- ],
44
- timeDimensions: [{
45
- dimension: 'cards.createdAt',
46
- granularity: 'day',
47
- dateRange: ['2016-12-30', '2017-01-05']
48
- }],
49
- filters: [],
50
- timezone: 'America/Los_Angeles',
51
- });
52
- const preAggregations = query.newPreAggregations().preAggregationsDescription();
53
- const [sql, params] = preAggregations[0].invalidateKeyQueries[0];
54
- console.log('Executing ', [sql, params]);
55
- await connection.query(sql, params, {});
56
- }
57
- async testRefreshKeyIncrementalWithUpdateWindow(connection) {
58
- const { compiler, joinGraph, cubeEvaluator } = exports.prepareCompiler(utils_1.createCubeSchema({
59
- name: 'cards',
60
- preAggregations: `
61
- countCreatedAt: {
62
- type: 'rollup',
63
- external: true,
64
- measureReferences: [count],
65
- timeDimensionReference: createdAt,
66
- granularity: \`day\`,
67
- partitionGranularity: \`month\`,
68
- scheduledRefresh: true,
69
- refreshKey: {
70
- every: \`1 day\`,
71
- incremental: true,
72
- updateWindow: \`7 day\`,
73
- },
74
- },
75
- `
76
- }));
77
- await compiler.compile();
78
- const query = this.getQuery({ joinGraph, cubeEvaluator, compiler }, {
79
- measures: [
80
- 'cards.count'
81
- ],
82
- timeDimensions: [{
83
- dimension: 'cards.createdAt',
84
- granularity: 'day',
85
- dateRange: ['2016-12-30', '2017-01-05']
86
- }],
87
- filters: [],
88
- timezone: 'America/Los_Angeles',
89
- });
90
- const preAggregations = query.newPreAggregations().preAggregationsDescription();
91
- // eslint-disable-next-line prefer-const
92
- let [sql, params] = preAggregations[0].invalidateKeyQueries[0];
93
- // TODO Introduce full cycle testing through BaseDbRunner / QueryOrchestrator.
94
- // TODO Internal structures shouldn't be never accessed in tests.
95
- params = params.map((p) => (p === shared_1.TO_PARTITION_RANGE ? '2017-01-05T00:00:00' : p));
96
- console.log('Executing ', [sql, params]);
97
- await connection.query(sql, params, {});
98
- }
99
- }
100
- exports.QueryTestAbstract = QueryTestAbstract;
101
- function createQueryTestCase(test, opts) {
102
- globals_1.describe(`${opts.name}Query`, () => {
103
- globals_1.jest.setTimeout(60 * 1000);
104
- let container;
105
- let connection;
106
- globals_1.beforeAll(async () => {
107
- container = await opts.DbRunnerClass.startContainer({});
108
- connection = opts.connectionFactory(container);
109
- });
110
- globals_1.afterAll(async () => {
111
- if (connection) {
112
- await connection.release();
113
- }
114
- if (container) {
115
- await container.stop();
116
- }
117
- });
118
- globals_1.it('test refreshKey every day', async () => test.testRefreshKeyEveryDay(connection));
119
- globals_1.it('test refreshKey incremental with update window', async () => test.testRefreshKeyIncrementalWithUpdateWindow(connection));
120
- });
121
- }
122
- exports.createQueryTestCase = createQueryTestCase;
123
- //# sourceMappingURL=query-test.abstract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-test.abstract.js","sourceRoot":"","sources":["../../../src/testing/query-test.abstract.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export declare function getLocalHostnameByOs(): "docker.for.win.localhost" | "host.docker.internal" | "localhost";
2
- interface CreateCubeSchemaOptions {
3
- name: string;
4
- refreshKey?: string;
5
- preAggregations?: string;
6
- }
7
- export declare function createCubeSchema({ name, refreshKey, preAggregations }: CreateCubeSchemaOptions): string;
8
- export {};
9
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,sEAUnC;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAe,EAAE,eAAoB,EAAE,EAAE,uBAAuB,UA4CxG"}
package/dist/src/utils.js DELETED
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createCubeSchema = exports.getLocalHostnameByOs = void 0;
4
- const os_1 = require("os");
5
- function getLocalHostnameByOs() {
6
- if (os_1.platform() === 'win32') {
7
- return 'docker.for.win.localhost';
8
- }
9
- if (os_1.platform() === 'darwin') {
10
- return 'host.docker.internal';
11
- }
12
- return 'localhost';
13
- }
14
- exports.getLocalHostnameByOs = getLocalHostnameByOs;
15
- function createCubeSchema({ name, refreshKey = '', preAggregations = '' }) {
16
- return `
17
- cube('${name}', {
18
- sql: \`
19
- select * from cards
20
- \`,
21
-
22
- ${refreshKey}
23
-
24
- measures: {
25
- count: {
26
- type: 'count'
27
- },
28
- sum: {
29
- sql: \`amount\`,
30
- type: \`sum\`
31
- },
32
- max: {
33
- sql: \`amount\`,
34
- type: \`max\`
35
- },
36
- min: {
37
- sql: \`amount\`,
38
- type: \`min\`
39
- }
40
- },
41
-
42
- dimensions: {
43
- id: {
44
- type: 'number',
45
- sql: 'id',
46
- primaryKey: true
47
- },
48
- createdAt: {
49
- type: 'time',
50
- sql: 'created_at'
51
- },
52
- },
53
-
54
- preAggregations: {
55
- ${preAggregations}
56
- }
57
- })
58
- `;
59
- }
60
- exports.createCubeSchema = createCubeSchema;
61
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAE9B,SAAgB,oBAAoB;IAClC,IAAI,aAAQ,EAAE,KAAK,OAAO,EAAE;QAC1B,OAAO,0BAA0B,CAAC;KACnC;IAED,IAAI,aAAQ,EAAE,KAAK,QAAQ,EAAE;QAC3B,OAAO,sBAAsB,CAAC;KAC/B;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAVD,oDAUC;AAQD,SAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAA2B;IACvG,OAAO;YACG,IAAI;;;;;UAKN,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiCN,eAAe;;;GAG1B,CAAC;AACJ,CAAC;AA5CD,4CA4CC"}