@malloydata/malloy-tests 0.0.135-dev240322221435 → 0.0.135-dev240322225529

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.
@@ -51,26 +51,26 @@ const malloy = __importStar(require("@malloydata/malloy"));
51
51
  const malloy_1 = require("@malloydata/malloy");
52
52
  const runtimes_1 = require("../../runtimes");
53
53
  const util_1 = require("../../util");
54
- const [, databases] = (0, util_1.describeIfDatabaseAvailable)(['bigquery', 'postgres']);
54
+ const [, databases] = (0, util_1.describeIfDatabaseAvailable)(['duckdb', 'postgres']);
55
55
  // *** NOTE ***
56
- // this is a special case (for now): a test that REQUIRES two databases - bigquery AND postgres
57
- const describe = databases.filter(d => ['postgres', 'bigquery'].includes(d)).length >= 2
56
+ // this is a special case (for now): a test that REQUIRES two databases - duckdb AND postgres
57
+ const describe = databases.filter(d => ['postgres', 'duckdb'].includes(d)).length >= 2
58
58
  ? globalThis.describe
59
59
  : globalThis.describe.skip;
60
60
  describe('Multi-connection', () => {
61
- const bqConnection = new runtimes_1.BigQueryTestConnection('bigquery', {}, { projectId: 'malloy-data' });
61
+ const ddbConnection = new runtimes_1.DuckDBTestConnection('duckdb', 'test/data/duckdb/duckdb_test.db');
62
62
  const postgresConnection = new runtimes_1.PostgresTestConnection('postgres');
63
63
  const files = new malloy_1.EmptyURLReader();
64
64
  const connectionMap = new malloy.FixedConnectionMap(new Map(Object.entries({
65
- bigquery: bqConnection,
65
+ duckdb: ddbConnection,
66
66
  postgres: postgresConnection,
67
- })), 'bigquery');
67
+ })), 'duckdb');
68
68
  const runtime = new malloy.Runtime(files, connectionMap);
69
69
  afterAll(async () => {
70
70
  await postgresConnection.close();
71
71
  });
72
72
  const expressionModelText = `
73
- source: bigquery_state_facts is bigquery.table('malloytest.state_facts') extend {
73
+ source: duckdb_state_facts is duckdb.table('malloytest.state_facts') extend {
74
74
  measure: state_count is count(state)+2
75
75
  }
76
76
 
@@ -79,10 +79,10 @@ source: postgres_aircraft is postgres.table('malloytest.aircraft') extend {
79
79
  }
80
80
  `;
81
81
  const expressionModel = runtime.loadModel(expressionModelText);
82
- it('bigquery query', async () => {
82
+ it('duckdb query', async () => {
83
83
  const result = await expressionModel
84
84
  .loadQuery(`
85
- run: bigquery_state_facts-> {
85
+ run: duckdb_state_facts-> {
86
86
  aggregate: state_count
87
87
  }
88
88
  `)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi_connection.spec.js","sourceRoot":"","sources":["../../../src/databases/multi-connection/multi_connection.spec.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,8 @@ class StringAccumulator {
39
39
  const [describe, databases] = (0, util_1.describeIfDatabaseAvailable)([
40
40
  'bigquery',
41
41
  'postgres',
42
+ 'duckdb',
43
+ 'duckdb_wasm',
42
44
  ]);
43
45
  describe('Streaming tests', () => {
44
46
  if (!databases.length) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.spec.js","sourceRoot":"","sources":["../../../src/databases/streaming/streaming.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;AAEH,+CAK4B;AAC5B,6CAA2C;AAC3C,qCAAuD;AAEvD,MAAM,iBAAiB;IAAvB;QACS,qBAAgB,GAAG,EAAE,CAAC;IAS/B,CAAC;IAPC,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,KAAK;QACH,OAAO;IACT,CAAC;CACF;AAED,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAA,kCAA2B,EAAC;IACxD,UAAU;IACV,UAAU;IACV,QAAQ;IACR,aAAa;CACd,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QACrB,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;KAC9B;IACD,MAAM,QAAQ,GAAG,IAAI,sBAAW,CAAC,SAAS,CAAC,CAAC;IAE5C,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;QACpD,EAAE,CAAC,wBAAwB,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,OAAO;iBACnB,SAAS,CACR,uBAAuB,YAAY,+BAA+B,CACnE;iBACA,SAAS,CAAC,mCAAmC,CAAC;iBAC9C,SAAS,CAAC,EAAC,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAiB,EAAE,CAAC;YAC9B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChB;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,MAAM,GAAG,OAAO;iBACnB,SAAS,CACR,uBAAuB,YAAY,+BAA+B,CACnE;iBACA,SAAS,CAAC,mCAAmC,CAAC;iBAC9C,SAAS,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACxC;;;;;CAKP,CACM,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,MAAM,GAAG,OAAO;iBACnB,SAAS,CACR,uBAAuB,YAAY,+BAA+B,CACnE;iBACA,SAAS,CAAC,mCAAmC,CAAC;iBAC9C,SAAS,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -21,13 +21,13 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@jest/globals": "^29.4.3",
24
- "@malloydata/db-bigquery": "^0.0.135-dev240322221435",
25
- "@malloydata/db-duckdb": "^0.0.135-dev240322221435",
26
- "@malloydata/db-postgres": "^0.0.135-dev240322221435",
27
- "@malloydata/db-snowflake": "^0.0.135-dev240322221435",
28
- "@malloydata/db-trino": "^0.0.135-dev240322221435",
29
- "@malloydata/malloy": "^0.0.135-dev240322221435",
30
- "@malloydata/render": "^0.0.135-dev240322221435",
24
+ "@malloydata/db-bigquery": "^0.0.135-dev240322225529",
25
+ "@malloydata/db-duckdb": "^0.0.135-dev240322225529",
26
+ "@malloydata/db-postgres": "^0.0.135-dev240322225529",
27
+ "@malloydata/db-snowflake": "^0.0.135-dev240322225529",
28
+ "@malloydata/db-trino": "^0.0.135-dev240322225529",
29
+ "@malloydata/malloy": "^0.0.135-dev240322225529",
30
+ "@malloydata/render": "^0.0.135-dev240322225529",
31
31
  "jsdom": "^22.1.0",
32
32
  "luxon": "^2.4.0",
33
33
  "madge": "^6.0.0"
@@ -36,5 +36,5 @@
36
36
  "@types/jsdom": "^21.1.1",
37
37
  "@types/luxon": "^2.4.0"
38
38
  },
39
- "version": "0.0.135-dev240322221435"
39
+ "version": "0.0.135-dev240322225529"
40
40
  }
@@ -26,23 +26,22 @@
26
26
 
27
27
  import * as malloy from '@malloydata/malloy';
28
28
  import {EmptyURLReader} from '@malloydata/malloy';
29
- import {BigQueryTestConnection, PostgresTestConnection} from '../../runtimes';
29
+ import {DuckDBTestConnection, PostgresTestConnection} from '../../runtimes';
30
30
  import {describeIfDatabaseAvailable} from '../../util';
31
31
 
32
- const [, databases] = describeIfDatabaseAvailable(['bigquery', 'postgres']);
32
+ const [, databases] = describeIfDatabaseAvailable(['duckdb', 'postgres']);
33
33
 
34
34
  // *** NOTE ***
35
- // this is a special case (for now): a test that REQUIRES two databases - bigquery AND postgres
35
+ // this is a special case (for now): a test that REQUIRES two databases - duckdb AND postgres
36
36
  const describe =
37
- databases.filter(d => ['postgres', 'bigquery'].includes(d)).length >= 2
37
+ databases.filter(d => ['postgres', 'duckdb'].includes(d)).length >= 2
38
38
  ? globalThis.describe
39
39
  : globalThis.describe.skip;
40
40
 
41
41
  describe('Multi-connection', () => {
42
- const bqConnection = new BigQueryTestConnection(
43
- 'bigquery',
44
- {},
45
- {projectId: 'malloy-data'}
42
+ const ddbConnection = new DuckDBTestConnection(
43
+ 'duckdb',
44
+ 'test/data/duckdb/duckdb_test.db'
46
45
  );
47
46
  const postgresConnection = new PostgresTestConnection('postgres');
48
47
  const files = new EmptyURLReader();
@@ -50,11 +49,11 @@ describe('Multi-connection', () => {
50
49
  const connectionMap = new malloy.FixedConnectionMap(
51
50
  new Map(
52
51
  Object.entries({
53
- bigquery: bqConnection,
52
+ duckdb: ddbConnection,
54
53
  postgres: postgresConnection,
55
54
  })
56
55
  ),
57
- 'bigquery'
56
+ 'duckdb'
58
57
  );
59
58
 
60
59
  const runtime = new malloy.Runtime(files, connectionMap);
@@ -64,7 +63,7 @@ describe('Multi-connection', () => {
64
63
  });
65
64
 
66
65
  const expressionModelText = `
67
- source: bigquery_state_facts is bigquery.table('malloytest.state_facts') extend {
66
+ source: duckdb_state_facts is duckdb.table('malloytest.state_facts') extend {
68
67
  measure: state_count is count(state)+2
69
68
  }
70
69
 
@@ -75,11 +74,11 @@ source: postgres_aircraft is postgres.table('malloytest.aircraft') extend {
75
74
 
76
75
  const expressionModel = runtime.loadModel(expressionModelText);
77
76
 
78
- it('bigquery query', async () => {
77
+ it('duckdb query', async () => {
79
78
  const result = await expressionModel
80
79
  .loadQuery(
81
80
  `
82
- run: bigquery_state_facts-> {
81
+ run: duckdb_state_facts-> {
83
82
  aggregate: state_count
84
83
  }
85
84
  `
@@ -45,6 +45,8 @@ class StringAccumulator implements WriteStream {
45
45
  const [describe, databases] = describeIfDatabaseAvailable([
46
46
  'bigquery',
47
47
  'postgres',
48
+ 'duckdb',
49
+ 'duckdb_wasm',
48
50
  ]);
49
51
 
50
52
  describe('Streaming tests', () => {
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi_connection.spec.js","sourceRoot":"","sources":["../../../src/databases/bigquery-postgres/multi_connection.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"streaming.spec.js","sourceRoot":"","sources":["../../../src/databases/bigquery-postgres/streaming.spec.ts"],"names":[],"mappings":"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"}