@malloydata/malloy-tests 0.0.138-dev240404193102 → 0.0.138-dev240405003346

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 (133) hide show
  1. package/jest.setup.ts +28 -0
  2. package/package.json +8 -8
  3. package/src/databases/all/db_index.spec.ts +4 -6
  4. package/src/databases/all/expr.spec.ts +27 -36
  5. package/src/databases/all/join.spec.ts +4 -4
  6. package/src/databases/all/nomodel.spec.ts +79 -99
  7. package/src/databases/all/orderby.spec.ts +7 -7
  8. package/src/databases/all/time.spec.ts +22 -30
  9. package/src/render/render.spec.ts +52 -55
  10. package/src/util/index.ts +0 -11
  11. package/tsconfig.json +2 -2
  12. package/types/jest.d.ts +8 -0
  13. package/dist/bin/ping_db.d.ts +0 -1
  14. package/dist/bin/ping_db.js +0 -44
  15. package/dist/bin/ping_db.js.map +0 -1
  16. package/dist/src/api.spec.d.ts +0 -1
  17. package/dist/src/api.spec.js +0 -113
  18. package/dist/src/api.spec.js.map +0 -1
  19. package/dist/src/databases/all/db_index.spec.d.ts +0 -1
  20. package/dist/src/databases/all/db_index.spec.js +0 -126
  21. package/dist/src/databases/all/db_index.spec.js.map +0 -1
  22. package/dist/src/databases/all/expr.spec.d.ts +0 -1
  23. package/dist/src/databases/all/expr.spec.js +0 -717
  24. package/dist/src/databases/all/expr.spec.js.map +0 -1
  25. package/dist/src/databases/all/functions.spec.d.ts +0 -1
  26. package/dist/src/databases/all/functions.spec.js +0 -1180
  27. package/dist/src/databases/all/functions.spec.js.map +0 -1
  28. package/dist/src/databases/all/join.spec.d.ts +0 -1
  29. package/dist/src/databases/all/join.spec.js +0 -255
  30. package/dist/src/databases/all/join.spec.js.map +0 -1
  31. package/dist/src/databases/all/lenses.spec.d.ts +0 -1
  32. package/dist/src/databases/all/lenses.spec.js +0 -374
  33. package/dist/src/databases/all/lenses.spec.js.map +0 -1
  34. package/dist/src/databases/all/nomodel.spec.d.ts +0 -1
  35. package/dist/src/databases/all/nomodel.spec.js +0 -1071
  36. package/dist/src/databases/all/nomodel.spec.js.map +0 -1
  37. package/dist/src/databases/all/orderby.spec.d.ts +0 -1
  38. package/dist/src/databases/all/orderby.spec.js +0 -170
  39. package/dist/src/databases/all/orderby.spec.js.map +0 -1
  40. package/dist/src/databases/all/problems.spec.d.ts +0 -1
  41. package/dist/src/databases/all/problems.spec.js +0 -106
  42. package/dist/src/databases/all/problems.spec.js.map +0 -1
  43. package/dist/src/databases/all/sql_expressions.spec.d.ts +0 -1
  44. package/dist/src/databases/all/sql_expressions.spec.js +0 -73
  45. package/dist/src/databases/all/sql_expressions.spec.js.map +0 -1
  46. package/dist/src/databases/all/time.spec.d.ts +0 -1
  47. package/dist/src/databases/all/time.spec.js +0 -602
  48. package/dist/src/databases/all/time.spec.js.map +0 -1
  49. package/dist/src/databases/bigquery/double_truncation.spec.d.ts +0 -1
  50. package/dist/src/databases/bigquery/double_truncation.spec.js +0 -50
  51. package/dist/src/databases/bigquery/double_truncation.spec.js.map +0 -1
  52. package/dist/src/databases/bigquery/handexpr.spec.d.ts +0 -1
  53. package/dist/src/databases/bigquery/handexpr.spec.js +0 -723
  54. package/dist/src/databases/bigquery/handexpr.spec.js.map +0 -1
  55. package/dist/src/databases/bigquery/injestion_time_partitioning.spec.d.ts +0 -1
  56. package/dist/src/databases/bigquery/injestion_time_partitioning.spec.js +0 -235
  57. package/dist/src/databases/bigquery/injestion_time_partitioning.spec.js.map +0 -1
  58. package/dist/src/databases/bigquery/joined_filters.spec.d.ts +0 -1
  59. package/dist/src/databases/bigquery/joined_filters.spec.js +0 -72
  60. package/dist/src/databases/bigquery/joined_filters.spec.js.map +0 -1
  61. package/dist/src/databases/bigquery/json.spec.d.ts +0 -1
  62. package/dist/src/databases/bigquery/json.spec.js +0 -66
  63. package/dist/src/databases/bigquery/json.spec.js.map +0 -1
  64. package/dist/src/databases/bigquery/malloy_query.spec.d.ts +0 -1
  65. package/dist/src/databases/bigquery/malloy_query.spec.js +0 -840
  66. package/dist/src/databases/bigquery/malloy_query.spec.js.map +0 -1
  67. package/dist/src/databases/bigquery/performance.skipped.spec.d.ts +0 -1
  68. package/dist/src/databases/bigquery/performance.skipped.spec.js +0 -70
  69. package/dist/src/databases/bigquery/performance.skipped.spec.js.map +0 -1
  70. package/dist/src/databases/bigquery/time.spec.d.ts +0 -1
  71. package/dist/src/databases/bigquery/time.spec.js +0 -52
  72. package/dist/src/databases/bigquery/time.spec.js.map +0 -1
  73. package/dist/src/databases/bigquery/wildcard_table_names.spec.d.ts +0 -1
  74. package/dist/src/databases/bigquery/wildcard_table_names.spec.js +0 -212
  75. package/dist/src/databases/bigquery/wildcard_table_names.spec.js.map +0 -1
  76. package/dist/src/databases/bigquery-duckdb/nested_source_table.spec.d.ts +0 -1
  77. package/dist/src/databases/bigquery-duckdb/nested_source_table.spec.js +0 -213
  78. package/dist/src/databases/bigquery-duckdb/nested_source_table.spec.js.map +0 -1
  79. package/dist/src/databases/duckdb/duckdb.spec.d.ts +0 -1
  80. package/dist/src/databases/duckdb/duckdb.spec.js +0 -124
  81. package/dist/src/databases/duckdb/duckdb.spec.js.map +0 -1
  82. package/dist/src/databases/duckdb/streaming.spec.d.ts +0 -1
  83. package/dist/src/databases/duckdb/streaming.spec.js +0 -142
  84. package/dist/src/databases/duckdb/streaming.spec.js.map +0 -1
  85. package/dist/src/databases/multi-connection/multi_connection.spec.d.ts +0 -1
  86. package/dist/src/databases/multi-connection/multi_connection.spec.js +0 -120
  87. package/dist/src/databases/multi-connection/multi_connection.spec.js.map +0 -1
  88. package/dist/src/databases/postgres/postgres.spec.d.ts +0 -1
  89. package/dist/src/databases/postgres/postgres.spec.js +0 -140
  90. package/dist/src/databases/postgres/postgres.spec.js.map +0 -1
  91. package/dist/src/databases/shared/test_list.d.ts +0 -3
  92. package/dist/src/databases/shared/test_list.js +0 -5
  93. package/dist/src/databases/shared/test_list.js.map +0 -1
  94. package/dist/src/databases/streaming/streaming.spec.d.ts +0 -1
  95. package/dist/src/databases/streaming/streaming.spec.js +0 -93
  96. package/dist/src/databases/streaming/streaming.spec.js.map +0 -1
  97. package/dist/src/dependencies.spec.d.ts +0 -1
  98. package/dist/src/dependencies.spec.js +0 -63
  99. package/dist/src/dependencies.spec.js.map +0 -1
  100. package/dist/src/index.d.ts +0 -4
  101. package/dist/src/index.js +0 -49
  102. package/dist/src/index.js.map +0 -1
  103. package/dist/src/jestMatcher.spec.d.ts +0 -1
  104. package/dist/src/jestMatcher.spec.js +0 -81
  105. package/dist/src/jestMatcher.spec.js.map +0 -1
  106. package/dist/src/model/sql_source.spec.d.ts +0 -1
  107. package/dist/src/model/sql_source.spec.js +0 -47
  108. package/dist/src/model/sql_source.spec.js.map +0 -1
  109. package/dist/src/models/faa_model.d.ts +0 -5
  110. package/dist/src/models/faa_model.js +0 -997
  111. package/dist/src/models/faa_model.js.map +0 -1
  112. package/dist/src/models/medicare_model.d.ts +0 -4
  113. package/dist/src/models/medicare_model.js +0 -259
  114. package/dist/src/models/medicare_model.js.map +0 -1
  115. package/dist/src/render/drill.spec.d.ts +0 -1
  116. package/dist/src/render/drill.spec.js +0 -107
  117. package/dist/src/render/drill.spec.js.map +0 -1
  118. package/dist/src/render/render.spec.d.ts +0 -1
  119. package/dist/src/render/render.spec.js +0 -548
  120. package/dist/src/render/render.spec.js.map +0 -1
  121. package/dist/src/runtimes.d.ts +0 -35
  122. package/dist/src/runtimes.js +0 -181
  123. package/dist/src/runtimes.js.map +0 -1
  124. package/dist/src/tags.spec.d.ts +0 -8
  125. package/dist/src/tags.spec.js +0 -490
  126. package/dist/src/tags.spec.js.map +0 -1
  127. package/dist/src/util/db-jest-matchers.d.ts +0 -30
  128. package/dist/src/util/db-jest-matchers.js +0 -157
  129. package/dist/src/util/db-jest-matchers.js.map +0 -1
  130. package/dist/src/util/index.d.ts +0 -15
  131. package/dist/src/util/index.js +0 -182
  132. package/dist/src/util/index.js.map +0 -1
  133. package/jest.setup.js +0 -8
@@ -23,7 +23,7 @@
23
23
  */
24
24
 
25
25
  import {RuntimeList, allDatabases} from '../../runtimes';
26
- import {databasesFromEnvironmentOr, onlyIf} from '../../util';
26
+ import {databasesFromEnvironmentOr} from '../../util';
27
27
  import '../../util/db-jest-matchers';
28
28
 
29
29
  const runtimes = new RuntimeList(databasesFromEnvironmentOr(allDatabases));
@@ -87,9 +87,9 @@ describe.each(runtimes.runtimeList)('%s', (databaseName, runtime) => {
87
87
  `).malloyResultMatches(orderByModel, {});
88
88
  });
89
89
 
90
- test(
90
+ test.when(runtime.supportsNesting)(
91
91
  `reserved words are quoted in turtles - ${databaseName}`,
92
- onlyIf(runtime.supportsNesting, async () => {
92
+ async () => {
93
93
  await expect(`
94
94
  run: models->{
95
95
  nest: withx is {
@@ -102,7 +102,7 @@ describe.each(runtimes.runtimeList)('%s', (databaseName, runtime) => {
102
102
  fetch is withx.fetch
103
103
  }
104
104
  `).malloyResultMatches(orderByModel, {});
105
- })
105
+ }
106
106
  );
107
107
 
108
108
  it.skip('reserved words in structure definitions', async () => {
@@ -142,9 +142,9 @@ describe.each(runtimes.runtimeList)('%s', (databaseName, runtime) => {
142
142
  `).malloyResultMatches(orderByModel, {model_count: 102});
143
143
  });
144
144
 
145
- test(
145
+ test.when(runtime.supportsNesting)(
146
146
  `modeled having complex - ${databaseName}`,
147
- onlyIf(runtime.supportsNesting, async () => {
147
+ async () => {
148
148
  await expect(`
149
149
  source: popular_names is models->{
150
150
  having: model_count > 100
@@ -161,7 +161,7 @@ describe.each(runtimes.runtimeList)('%s', (databaseName, runtime) => {
161
161
  select: manufacturer, model_count
162
162
  }
163
163
  `).malloyResultMatches(orderByModel, {model_count: 102});
164
- })
164
+ }
165
165
  );
166
166
 
167
167
  it(`turtle references joined element - ${databaseName}`, async () => {
@@ -24,12 +24,7 @@
24
24
 
25
25
  import {RuntimeList, allDatabases} from '../../runtimes';
26
26
  import '../../util/db-jest-matchers';
27
- import {
28
- databasesFromEnvironmentOr,
29
- mkSqlEqWith,
30
- onlyIf,
31
- runQuery,
32
- } from '../../util';
27
+ import {databasesFromEnvironmentOr, mkSqlEqWith, runQuery} from '../../util';
33
28
  import {DateTime as LuxonDateTime} from 'luxon';
34
29
 
35
30
  const runtimes = new RuntimeList(databasesFromEnvironmentOr(allDatabases));
@@ -490,9 +485,9 @@ describe.each(runtimes.runtimeList)('%s date and time', (dbName, runtime) => {
490
485
  });
491
486
 
492
487
  // TODO don't need to run this on all connections, so onlyIf not needed
493
- test(
488
+ test.when(runtime.supportsNesting)(
494
489
  'timezone set in view inside source',
495
- onlyIf(runtime.supportsNesting, async () => {
490
+ async () => {
496
491
  expect(
497
492
  (
498
493
  await runQuery(
@@ -515,13 +510,13 @@ describe.each(runtimes.runtimeList)('%s date and time', (dbName, runtime) => {
515
510
  {name: 'la_query', queryTimezone: 'America/Los_Angeles'},
516
511
  ],
517
512
  });
518
- })
513
+ }
519
514
  );
520
515
 
521
- // TODO don't need to run this on all connections, so onlyIf not needed
522
- test(
516
+ // TODO don't need to run this on all connections, so .when() not needed
517
+ test.when(runtime.supportsNesting)(
523
518
  'timezone set in query using source',
524
- onlyIf(runtime.supportsNesting, async () => {
519
+ async () => {
525
520
  expect(
526
521
  (
527
522
  await runQuery(
@@ -539,15 +534,13 @@ describe.each(runtimes.runtimeList)('%s date and time', (dbName, runtime) => {
539
534
  )
540
535
  ).resultExplore.queryTimezone
541
536
  ).toBe('America/Los_Angeles');
542
- })
537
+ }
543
538
  );
544
539
 
545
- test(
546
- 'multiple timezones',
547
- onlyIf(runtime.supportsNesting, async () => {
548
- const theQuery = await runQuery(
549
- runtime,
550
- `run: ${dbName}.sql('SELECT 1 as one') extend {
540
+ test.when(runtime.supportsNesting)('multiple timezones', async () => {
541
+ const theQuery = await runQuery(
542
+ runtime,
543
+ `run: ${dbName}.sql('SELECT 1 as one') extend {
551
544
  timezone: 'America/New_York'
552
545
  dimension: ny_time is @2021-02-24 03:05:06
553
546
  view: la_query is {
@@ -562,17 +555,16 @@ describe.each(runtimes.runtimeList)('%s date and time', (dbName, runtime) => {
562
555
  group_by: ny_time
563
556
  nest: la_query, mex_query
564
557
  }`
565
- );
566
- expect(theQuery.resultExplore.structDef).toMatchObject({
567
- queryTimezone: 'America/New_York',
568
- fields: [
569
- {},
570
- {name: 'la_query', queryTimezone: 'America/Los_Angeles'},
571
- {name: 'mex_query', queryTimezone: 'America/Mexico_City'},
572
- ],
573
- });
574
- })
575
- );
558
+ );
559
+ expect(theQuery.resultExplore.structDef).toMatchObject({
560
+ queryTimezone: 'America/New_York',
561
+ fields: [
562
+ {},
563
+ {name: 'la_query', queryTimezone: 'America/Los_Angeles'},
564
+ {name: 'mex_query', queryTimezone: 'America/Mexico_City'},
565
+ ],
566
+ });
567
+ });
576
568
  });
577
569
  });
578
570
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  import {ModelMaterializer} from '@malloydata/malloy';
25
25
  import {RuntimeList, runtimeFor} from '../runtimes';
26
- import {describeIfDatabaseAvailable, onlyIf} from '../util';
26
+ import {describeIfDatabaseAvailable} from '../util';
27
27
  import {HTMLView} from '@malloydata/render';
28
28
  import {JSDOM} from 'jsdom';
29
29
 
@@ -66,171 +66,168 @@ describe('rendering results', () => {
66
66
  await runtimes.closeAll();
67
67
  });
68
68
 
69
- test(
70
- 'can render table',
71
- onlyIf(databases.includes('bigquery'), async () => {
72
- const runtime = runtimes.runtimeMap.get('bigquery');
73
- expect(runtime).toBeDefined();
74
- if (runtime) {
75
- const src = `
69
+ test.when(databases.includes('bigquery'))('can render table', async () => {
70
+ const runtime = runtimes.runtimeMap.get('bigquery');
71
+ expect(runtime).toBeDefined();
72
+ if (runtime) {
73
+ const src = `
76
74
  run: bigquery.table('malloy-data.faa.flights') -> {
77
75
  group_by: carrier
78
76
  aggregate: flight_count is count()
79
77
  }
80
78
  `;
81
- const result = await runtime.loadQuery(src).run();
82
- const document = new JSDOM().window.document;
83
- await new HTMLView(document).render(result, {
84
- dataStyles: {},
85
- });
86
- }
87
- })
88
- );
79
+ const result = await runtime.loadQuery(src).run();
80
+ const document = new JSDOM().window.document;
81
+ await new HTMLView(document).render(result, {
82
+ dataStyles: {},
83
+ });
84
+ }
85
+ });
89
86
 
90
- test(
87
+ test.when(databases.includes('bigquery'))(
91
88
  'can render unsupported bigquery geo types',
92
- onlyIf(databases.includes('bigquery'), async () => {
89
+ async () => {
93
90
  await runUnsupportedRenderTest(
94
91
  'bigquery',
95
92
  runtimes,
96
93
  "ST_GEOGFROMTEXT('LINESTRING(1 2, 3 4)')",
97
94
  'LINESTRING(1 2, 3 4)'
98
95
  );
99
- })
96
+ }
100
97
  );
101
98
 
102
- test(
99
+ test.when(databases.includes('bigquery'))(
103
100
  'can render unsupported bigquery ip types',
104
- onlyIf(databases.includes('bigquery'), async () => {
101
+ async () => {
105
102
  await runUnsupportedRenderTest(
106
103
  'bigquery',
107
104
  runtimes,
108
105
  "NET.IP_FROM_STRING('192.168.1.1')",
109
106
  '{"type":"Buffer","data":[192,168,1,1]}'
110
107
  );
111
- })
108
+ }
112
109
  );
113
110
 
114
- test(
111
+ test.when(databases.includes('bigquery'))(
115
112
  'can render unsupported bigquery interval types',
116
- onlyIf(databases.includes('bigquery'), async () => {
113
+ async () => {
117
114
  await runUnsupportedRenderTest(
118
115
  'bigquery',
119
116
  runtimes,
120
117
  'INTERVAL 1 YEAR',
121
118
  '1-0 0 0:0:0'
122
119
  );
123
- })
120
+ }
124
121
  );
125
122
 
126
- test(
123
+ test.when(databases.includes('bigquery'))(
127
124
  'can render unsupported bigquery time types',
128
- onlyIf(databases.includes('bigquery'), async () => {
125
+ async () => {
129
126
  await runUnsupportedRenderTest(
130
127
  'bigquery',
131
128
  runtimes,
132
129
  'TIME(10, 10, 1)',
133
130
  '10:10:01'
134
131
  );
135
- })
132
+ }
136
133
  );
137
134
 
138
- test(
135
+ test.when(databases.includes('postgres'))(
139
136
  'can render unsupported postgres interval types',
140
- onlyIf(databases.includes('postgres'), async () => {
137
+ async () => {
141
138
  await runUnsupportedRenderTest(
142
139
  'postgres',
143
140
  runtimes,
144
141
  'make_interval(days => 12)',
145
142
  '12 days'
146
143
  );
147
- })
144
+ }
148
145
  );
149
146
 
150
- test(
147
+ test.when(databases.includes('postgres'))(
151
148
  'can render unsupported postgres uuid types',
152
- onlyIf(databases.includes('postgres'), async () => {
149
+ async () => {
153
150
  await runUnsupportedRenderTest(
154
151
  'postgres',
155
152
  runtimes,
156
153
  "CAST('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11' AS UUID)",
157
154
  'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'
158
155
  );
159
- })
156
+ }
160
157
  );
161
158
 
162
- test(
159
+ test.when(databases.includes('postgres'))(
163
160
  'can render unsupported postgres inet types',
164
- onlyIf(databases.includes('postgres'), async () => {
161
+ async () => {
165
162
  await runUnsupportedRenderTest(
166
163
  'postgres',
167
164
  runtimes,
168
165
  "'192.168.1.1'::inet",
169
166
  '192.168.1.1'
170
167
  );
171
- })
168
+ }
172
169
  );
173
170
 
174
- test(
171
+ test.when(databases.includes('postgres'))(
175
172
  'can render unsupported postgres macaddr types',
176
- onlyIf(databases.includes('postgres'), async () => {
173
+ async () => {
177
174
  await runUnsupportedRenderTest(
178
175
  'postgres',
179
176
  runtimes,
180
177
  "'00:04:E2:36:95:C0'::macaddr",
181
178
  '00:04:e2:36:95:c0'
182
179
  );
183
- })
180
+ }
184
181
  );
185
182
 
186
- test(
183
+ test.when(databases.includes('postgres'))(
187
184
  'can render supported postgres types',
188
- onlyIf(databases.includes('postgres'), async () => {
185
+ async () => {
189
186
  await runUnsupportedRenderTest('postgres', runtimes, '12345', '12,345');
190
- })
187
+ }
191
188
  );
192
189
 
193
- test(
190
+ test.when(databases.includes('duckdb'))(
194
191
  'can render supported duckdb types',
195
- onlyIf(databases.includes('duckdb'), async () => {
192
+ async () => {
196
193
  await runUnsupportedRenderTest('duckdb', runtimes, '12345', '12,345');
197
- })
194
+ }
198
195
  );
199
196
 
200
- test(
197
+ test.when(databases.includes('duckdb'))(
201
198
  'can render unsupported duckdb blob types',
202
- onlyIf(databases.includes('duckdb'), async () => {
199
+ async () => {
203
200
  await runUnsupportedRenderTest(
204
201
  'duckdb',
205
202
  runtimes,
206
203
  "'\\xAA'::BLOB",
207
204
  '{"type":"Buffer","data":[170]}'
208
205
  );
209
- })
206
+ }
210
207
  );
211
208
 
212
- test(
209
+ test.when(databases.includes('duckdb'))(
213
210
  'can render unsupported duckdb uuid types',
214
- onlyIf(databases.includes('duckdb'), async () => {
211
+ async () => {
215
212
  await runUnsupportedRenderTest(
216
213
  'duckdb',
217
214
  runtimes,
218
215
  "'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::UUID",
219
216
  'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'
220
217
  );
221
- })
218
+ }
222
219
  );
223
220
 
224
- test(
221
+ test.when(databases.includes('bigquery'))(
225
222
  'can render null unsupported types',
226
- onlyIf(databases.includes('bigquery'), async () => {
223
+ async () => {
227
224
  await runUnsupportedRenderTest(
228
225
  'bigquery',
229
226
  runtimes,
230
227
  'CAST(NULL AS GEOGRAPHY)',
231
228
  '<span class="value-null">∅</span>'
232
229
  );
233
- })
230
+ }
234
231
  );
235
232
 
236
233
  describe('html renderer', () => {
package/src/util/index.ts CHANGED
@@ -182,14 +182,3 @@ export async function runQuery(runtime: Runtime, querySrc: string) {
182
182
 
183
183
  return result;
184
184
  }
185
-
186
- export function onlyIf(
187
- cond: boolean,
188
- condTest: jest.ProvidesCallback
189
- ): jest.ProvidesCallback {
190
- if (cond) {
191
- return condTest;
192
- } else {
193
- return () => {};
194
- }
195
- }
package/tsconfig.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "extends": "../tsconfig.packages.json",
3
3
  "compilerOptions": {
4
- "outDir": "dist",
4
+ "noEmit": true,
5
5
  "composite": true
6
6
  },
7
- "include": ["src", "bin"],
7
+ "include": ["src", "bin", "./jest.setup.ts", "./types/jest.d.ts"],
8
8
  "references": [
9
9
  {
10
10
  "path": "../packages/malloy-interfaces"
@@ -0,0 +1,8 @@
1
+ /// <reference types="jest" />
2
+
3
+ // eslint-disable-next-line @typescript-eslint/no-namespace
4
+ declare namespace jest {
5
+ interface It {
6
+ when: (condition: boolean) => It;
7
+ }
8
+ }
@@ -1 +0,0 @@
1
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2023 Google LLC
4
- *
5
- * Permission is hereby granted, free of charge, to any person obtaining
6
- * a copy of this software and associated documentation files
7
- * (the "Software"), to deal in the Software without restriction,
8
- * including without limitation the rights to use, copy, modify, merge,
9
- * publish, distribute, sublicense, and/or sell copies of the Software,
10
- * and to permit persons to whom the Software is furnished to do so,
11
- * subject to the following conditions:
12
- *
13
- * The above copyright notice and this permission notice shall be
14
- * included in all copies or substantial portions of the Software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
- */
24
- /* eslint-disable no-console */
25
- /* eslint-disable no-process-exit */
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- const runtimes_1 = require("../src/runtimes");
28
- const main = async () => {
29
- if (process.argv.length < 3) {
30
- console.info(`usage ${process.argv[1]} [database]`);
31
- process.exit(1);
32
- }
33
- const runtime = (0, runtimes_1.runtimeFor)(process.argv[2]);
34
- try {
35
- await runtime.connection.runSQL('SELECT 1');
36
- console.log('Success');
37
- }
38
- catch (e) {
39
- console.error('Failed', e.toString());
40
- process.exit(1);
41
- }
42
- };
43
- main();
44
- //# sourceMappingURL=ping_db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ping_db.js","sourceRoot":"","sources":["../../bin/ping_db.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,+BAA+B;AAC/B,oCAAoC;;AAEpC,8CAA2C;AAE3C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI;QACF,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- import './util/db-jest-matchers';
@@ -1,113 +0,0 @@
1
- "use strict";
2
- /* eslint-disable no-console */
3
- /*
4
- * Copyright 2023 Google LLC
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining
7
- * a copy of this software and associated documentation files
8
- * (the "Software"), to deal in the Software without restriction,
9
- * including without limitation the rights to use, copy, modify, merge,
10
- * publish, distribute, sublicense, and/or sell copies of the Software,
11
- * and to permit persons to whom the Software is furnished to do so,
12
- * subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be
15
- * included in all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
- */
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const runtimes_1 = require("./runtimes");
27
- require("./util/db-jest-matchers");
28
- const runtime = (0, runtimes_1.runtimeFor)('duckdb');
29
- const envDatabases = (process.env['MALLOY_DATABASES'] ||
30
- process.env['MALLOY_DATABASE'] ||
31
- 'duckdb').split(',');
32
- let describe = globalThis.describe;
33
- if (!envDatabases.includes('duckdb')) {
34
- describe = describe.skip;
35
- describe.skip = describe;
36
- }
37
- describe('extendModel', () => {
38
- test('can run query in extend section', async () => {
39
- const model = runtime.loadModel(`
40
- query: q1 is duckdb.table('malloytest.aircraft')->{
41
- where: state = 'CA'
42
- group_by: state
43
- }
44
- `);
45
- const q1 = model.loadQueryByName('q1');
46
- const oneState = await q1.run();
47
- expect(oneState.data.path(0, 'state').value).toBe('CA');
48
- const extended = model.extendModel(`
49
- query: q2 is duckdb.table('malloytest.aircraft')->{
50
- where: state = 'NV'
51
- group_by: state
52
- }
53
- `);
54
- const q2 = extended.loadQueryByName('q2');
55
- const twoState = await q2.run();
56
- expect(twoState.data.path(0, 'state').value).toBe('NV');
57
- });
58
- test('can reference query from previous section ', async () => {
59
- const model = runtime.loadModel(`
60
- query: q1 is duckdb.table('malloytest.aircraft')->{
61
- where: state = 'CA'
62
- group_by: state
63
- }
64
- `);
65
- const q1 = model.loadQueryByName('q1');
66
- const oneState = await q1.run();
67
- expect(oneState.data.path(0, 'state').value).toBe('CA');
68
- const extended = model.extendModel('query: q2 is q1 -> { select: * }');
69
- const q2 = extended.loadQueryByName('q2');
70
- const twoState = await q2.run();
71
- expect(twoState.data.path(0, 'state').value).toBe('CA');
72
- });
73
- test('returns helpful error message if named query does not exist', async () => {
74
- await expect(runtime.getQueryByName('', 'Dummy Query')).rejects.toThrow('Given query name does not refer to a named query.');
75
- });
76
- test('extending models keep annotations', async () => {
77
- await runtime
78
- .loadModel(`
79
- ##! experimental { compilerTestExperimentParse compilerTestExperimentTranslate }
80
- ;;[ "x" ]
81
- `)
82
- .extendModel(';;[ "x" ]')
83
- .extendModel(';;[ "x" ]')
84
- .getModel();
85
- });
86
- describe('noThrowOnError', () => {
87
- it('throws when not set', async () => {
88
- await expect(runtime.getModel('source: foo is bar')).rejects.toThrow("Reference to undefined object 'bar'");
89
- });
90
- it('throws when false', async () => {
91
- await expect(runtime.getModel('source: foo is bar', { noThrowOnError: false })).rejects.toThrow("Reference to undefined object 'bar'");
92
- });
93
- it('does not throw when true', async () => {
94
- await expect(runtime.getModel('source: foo is bar', { noThrowOnError: true })).resolves.toEqual(expect.objectContaining({
95
- 'problems': [
96
- {
97
- 'at': {
98
- 'range': {
99
- 'end': { 'character': 18, 'line': 0 },
100
- 'start': { 'character': 15, 'line': 0 },
101
- },
102
- 'url': 'internal://internal.malloy',
103
- },
104
- 'message': "Reference to undefined object 'bar'",
105
- 'severity': 'error',
106
- },
107
- ],
108
- }));
109
- });
110
- });
111
- });
112
- afterAll(async () => await runtime.connection.close());
113
- //# sourceMappingURL=api.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.spec.js","sourceRoot":"","sources":["../../src/api.spec.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B;;;;;;;;;;;;;;;;;;;;;GAqBG;;AAEH,yCAAsC;AACtC,mCAAiC;AAEjC,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,QAAQ,CAAC,CAAC;AAErC,MAAM,YAAY,GAAG,CACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9B,QAAQ,CACT,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEb,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;AACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IACpC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;CAC1B;AAED,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;;;;;KAK/B,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC;;;;;KAKlC,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;;;;;KAK/B,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;QACvE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrE,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,OAAO;aACV,SAAS,CACR;;;SAGC,CACF;aACA,WAAW,CAAC,WAAW,CAAC;aACxB,WAAW,CAAC,WAAW,CAAC;aACxB,QAAQ,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACnC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,qCAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;YACjC,MAAM,MAAM,CACV,OAAO,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAChE,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,MAAM,CACV,OAAO,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC,CAAC,CAC/D,CAAC,QAAQ,CAAC,OAAO,CAChB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE;4BACJ,OAAO,EAAE;gCACP,KAAK,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC;gCACnC,OAAO,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC;6BACtC;4BACD,KAAK,EAAE,4BAA4B;yBACpC;wBACD,SAAS,EAAE,qCAAqC;wBAChD,UAAU,EAAE,OAAO;qBACpB;iBACF;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- import '../../util/db-jest-matchers';