@proteinjs/db 1.51.0 → 1.53.0

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 (44) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/generated/index.js +1 -1
  3. package/dist/generated/index.js.map +1 -1
  4. package/dist/generated/test/index.js +1 -1
  5. package/dist/generated/test/index.js.map +1 -1
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/src/Db.d.ts +48 -0
  11. package/dist/src/Db.d.ts.map +1 -1
  12. package/dist/src/Db.js +206 -31
  13. package/dist/src/Db.js.map +1 -1
  14. package/dist/src/DuplicateKeyError.d.ts +20 -0
  15. package/dist/src/DuplicateKeyError.d.ts.map +1 -0
  16. package/dist/src/DuplicateKeyError.js +47 -0
  17. package/dist/src/DuplicateKeyError.js.map +1 -0
  18. package/dist/test/DuplicateKeyError.test.d.ts +2 -0
  19. package/dist/test/DuplicateKeyError.test.d.ts.map +1 -0
  20. package/dist/test/DuplicateKeyError.test.js +287 -0
  21. package/dist/test/DuplicateKeyError.test.js.map +1 -0
  22. package/dist/test/InsertMany.test.d.ts +2 -0
  23. package/dist/test/InsertMany.test.d.ts.map +1 -0
  24. package/dist/test/InsertMany.test.js +475 -0
  25. package/dist/test/InsertMany.test.js.map +1 -0
  26. package/dist/test/TableServiceAuth.test.js +12 -0
  27. package/dist/test/TableServiceAuth.test.js.map +1 -1
  28. package/dist/test/reusable/CrudTests.d.ts.map +1 -1
  29. package/dist/test/reusable/CrudTests.js +44 -0
  30. package/dist/test/reusable/CrudTests.js.map +1 -1
  31. package/dist/test/reusable/TransactionTests.d.ts.map +1 -1
  32. package/dist/test/reusable/TransactionTests.js +90 -0
  33. package/dist/test/reusable/TransactionTests.js.map +1 -1
  34. package/generated/index.ts +1 -1
  35. package/generated/test/index.ts +1 -1
  36. package/index.ts +1 -0
  37. package/package.json +3 -3
  38. package/src/Db.ts +128 -1
  39. package/src/DuplicateKeyError.ts +26 -0
  40. package/test/DuplicateKeyError.test.ts +179 -0
  41. package/test/InsertMany.test.ts +298 -0
  42. package/test/TableServiceAuth.test.ts +12 -0
  43. package/test/reusable/CrudTests.ts +30 -0
  44. package/test/reusable/TransactionTests.ts +46 -0
@@ -0,0 +1,475 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
72
+ };
73
+ Object.defineProperty(exports, "__esModule", { value: true });
74
+ var reflection_1 = require("@proteinjs/reflection");
75
+ var Db_1 = require("../src/Db");
76
+ var Table_1 = require("../src/Table");
77
+ var Record_1 = require("../src/Record");
78
+ var Columns_1 = require("../src/Columns");
79
+ var TableWatcherRunner_1 = require("../src/TableWatcherRunner");
80
+ var log = [];
81
+ var DocTable = /** @class */ (function (_super) {
82
+ __extends(DocTable, _super);
83
+ function DocTable() {
84
+ var _this = _super !== null && _super.apply(this, arguments) || this;
85
+ _this.name = 'insert_many_doc';
86
+ _this.columns = (0, Record_1.withRecordColumns)({
87
+ title: new Columns_1.StringColumn('title', {
88
+ onBeforeInsert: function (_table, record) { return __awaiter(_this, void 0, void 0, function () {
89
+ return __generator(this, function (_a) {
90
+ log.push(['column.before', record.title, typeof record.id === 'string']);
91
+ record.title = "".concat(record.title, "!");
92
+ return [2 /*return*/];
93
+ });
94
+ }); },
95
+ onAfterInsert: function (_table, record) { return __awaiter(_this, void 0, void 0, function () {
96
+ return __generator(this, function (_a) {
97
+ log.push(['column.after', record.title, typeof record.id === 'string']);
98
+ return [2 /*return*/];
99
+ });
100
+ }); },
101
+ }),
102
+ note: new Columns_1.StringColumn('note'),
103
+ flagged: new Columns_1.BooleanColumn('flagged', { defaultValue: function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
104
+ return [2 /*return*/, false];
105
+ }); }); } }),
106
+ });
107
+ return _this;
108
+ }
109
+ return DocTable;
110
+ }(Table_1.Table));
111
+ var docTable = new DocTable();
112
+ var RecordingWatcher = /** @class */ (function () {
113
+ function RecordingWatcher() {
114
+ }
115
+ RecordingWatcher.prototype.name = function () {
116
+ return 'RecordingWatcher';
117
+ };
118
+ RecordingWatcher.prototype.table = function () {
119
+ return docTable;
120
+ };
121
+ RecordingWatcher.prototype.beforeInsert = function (record) {
122
+ return __awaiter(this, void 0, void 0, function () {
123
+ var doc;
124
+ return __generator(this, function (_a) {
125
+ doc = record;
126
+ log.push(['watcher.before', doc.title, typeof doc.id === 'string']);
127
+ return [2 /*return*/, __assign(__assign({}, record), { note: "seen ".concat(doc.title) })];
128
+ });
129
+ });
130
+ };
131
+ RecordingWatcher.prototype.afterInsert = function (record) {
132
+ return __awaiter(this, void 0, void 0, function () {
133
+ return __generator(this, function (_a) {
134
+ log.push(['watcher.after', record.title, typeof record.id === 'string']);
135
+ return [2 /*return*/];
136
+ });
137
+ });
138
+ };
139
+ return RecordingWatcher;
140
+ }());
141
+ var TestTransactionContextFactory = /** @class */ (function () {
142
+ function TestTransactionContextFactory() {
143
+ this.context = {};
144
+ }
145
+ TestTransactionContextFactory.prototype.getTransactionContext = function () {
146
+ return this.context;
147
+ };
148
+ TestTransactionContextFactory.prototype.runInContext = function (context, fn) {
149
+ return __awaiter(this, void 0, void 0, function () {
150
+ var previous;
151
+ return __generator(this, function (_a) {
152
+ switch (_a.label) {
153
+ case 0:
154
+ previous = this.context;
155
+ this.context = context;
156
+ _a.label = 1;
157
+ case 1:
158
+ _a.trys.push([1, , 3, 4]);
159
+ return [4 /*yield*/, fn()];
160
+ case 2: return [2 /*return*/, _a.sent()];
161
+ case 3:
162
+ this.context = previous;
163
+ return [7 /*endfinally*/];
164
+ case 4: return [2 /*return*/];
165
+ }
166
+ });
167
+ });
168
+ };
169
+ return TestTransactionContextFactory;
170
+ }());
171
+ /** Records every DML statement the Db hands it, as the Spanner driver would generate it. */
172
+ var RecordingDriver = /** @class */ (function () {
173
+ function RecordingDriver() {
174
+ this.dml = [];
175
+ this.transactions = 0;
176
+ }
177
+ RecordingDriver.prototype.getDbName = function () {
178
+ return 'test';
179
+ };
180
+ RecordingDriver.prototype.createDbIfNotExists = function () {
181
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
182
+ return [2 /*return*/];
183
+ }); });
184
+ };
185
+ RecordingDriver.prototype.createDb = function () {
186
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
187
+ return [2 /*return*/];
188
+ }); });
189
+ };
190
+ RecordingDriver.prototype.dropDb = function () {
191
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
192
+ return [2 /*return*/];
193
+ }); });
194
+ };
195
+ RecordingDriver.prototype.getTableManager = function () {
196
+ throw new Error('not used by these tests');
197
+ };
198
+ RecordingDriver.prototype.runQuery = function () {
199
+ return __awaiter(this, void 0, void 0, function () {
200
+ return __generator(this, function (_a) {
201
+ return [2 /*return*/, []];
202
+ });
203
+ });
204
+ };
205
+ RecordingDriver.prototype.runDml = function (generateStatement, transaction) {
206
+ var _a, _b, _c;
207
+ return __awaiter(this, void 0, void 0, function () {
208
+ var statement;
209
+ return __generator(this, function (_d) {
210
+ statement = generateStatement({
211
+ useParams: true,
212
+ useNamedParams: true,
213
+ prefixTablesWithDb: false,
214
+ getDriverColumnType: function () { return 'STRING(MAX)'; },
215
+ });
216
+ this.dml.push({ sql: statement.sql, params: (_b = (_a = statement.namedParams) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {}, transaction: transaction });
217
+ if ((_c = this.refuse) === null || _c === void 0 ? void 0 : _c.call(this, statement.sql)) {
218
+ throw new Error("refused: ".concat(statement.sql));
219
+ }
220
+ return [2 /*return*/, tuplesOf(statement.sql)];
221
+ });
222
+ });
223
+ };
224
+ RecordingDriver.prototype.runTransaction = function (fn) {
225
+ return __awaiter(this, void 0, void 0, function () {
226
+ return __generator(this, function (_a) {
227
+ switch (_a.label) {
228
+ case 0:
229
+ this.transactions += 1;
230
+ return [4 /*yield*/, fn({ id: "transaction-".concat(this.transactions) })];
231
+ case 1: return [2 /*return*/, _a.sent()];
232
+ }
233
+ });
234
+ });
235
+ };
236
+ RecordingDriver.prototype.getOperationDeadlineMs = function () {
237
+ return 1000;
238
+ };
239
+ return RecordingDriver;
240
+ }());
241
+ var BoundedDriver = /** @class */ (function (_super) {
242
+ __extends(BoundedDriver, _super);
243
+ function BoundedDriver(limit) {
244
+ var _this = _super.call(this) || this;
245
+ _this.limit = limit;
246
+ return _this;
247
+ }
248
+ BoundedDriver.prototype.getStatementParameterLimit = function () {
249
+ return this.limit;
250
+ };
251
+ return BoundedDriver;
252
+ }(RecordingDriver));
253
+ var tuplesOf = function (sql) { var _a; return ((_a = sql.match(/\(@param\d+/g)) !== null && _a !== void 0 ? _a : []).length; };
254
+ var objectCache = function () { return reflection_1.SourceRepository.get().objectCache; };
255
+ /** A system Db over `driver`, its watcher map rebuilt from the recording watcher alone. */
256
+ var dbOver = function (driver) {
257
+ TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
258
+ return new Db_1.Db(driver, function () { return docTable; }, new TestTransactionContextFactory(), true);
259
+ };
260
+ var rowsOf = function (titles) { return titles.map(function (title) { return ({ title: title }); }); };
261
+ var eventsFor = function (title) { return log.filter(function (_a) {
262
+ var t = _a[1];
263
+ return t === title || t === "".concat(title, "!");
264
+ }); };
265
+ var shapeOf = function (doc) { return ({ title: doc.title, note: doc.note, flagged: doc.flagged }); };
266
+ describe('Db.insertMany', function () {
267
+ var originalWatchers;
268
+ beforeAll(function () {
269
+ originalWatchers = objectCache()['@proteinjs/db/TableWatcher'];
270
+ objectCache()['@proteinjs/db/TableWatcher'] = [new RecordingWatcher()];
271
+ });
272
+ afterAll(function () {
273
+ if (originalWatchers) {
274
+ objectCache()['@proteinjs/db/TableWatcher'] = originalWatchers;
275
+ }
276
+ else {
277
+ delete objectCache()['@proteinjs/db/TableWatcher'];
278
+ }
279
+ TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
280
+ });
281
+ beforeEach(function () {
282
+ log.length = 0;
283
+ });
284
+ test('N rows issue exactly ONE statement, every row in it with its defaults, returned in order', function () { return __awaiter(void 0, void 0, void 0, function () {
285
+ var driver, db, inserted, _i, inserted_1, doc, bound, _a, inserted_2, doc;
286
+ return __generator(this, function (_b) {
287
+ switch (_b.label) {
288
+ case 0:
289
+ driver = new RecordingDriver();
290
+ db = dbOver(driver);
291
+ return [4 /*yield*/, db.insertMany(docTable, rowsOf(['a', 'b', 'c']))];
292
+ case 1:
293
+ inserted = _b.sent();
294
+ expect(driver.dml).toHaveLength(1);
295
+ expect(tuplesOf(driver.dml[0].sql)).toBe(3);
296
+ expect(driver.dml[0].sql).toMatch(/^INSERT INTO `insert_many_doc` \(.+\) VALUES \(.+\), \(.+\), \(.+\);$/);
297
+ expect(inserted.map(shapeOf)).toEqual([
298
+ { title: 'a!', note: 'seen a', flagged: false },
299
+ { title: 'b!', note: 'seen b', flagged: false },
300
+ { title: 'c!', note: 'seen c', flagged: false },
301
+ ]);
302
+ for (_i = 0, inserted_1 = inserted; _i < inserted_1.length; _i++) {
303
+ doc = inserted_1[_i];
304
+ expect(typeof doc.id).toBe('string');
305
+ expect(doc.created).toBeDefined();
306
+ expect(doc.updated).toBeDefined();
307
+ }
308
+ bound = Object.values(driver.dml[0].params);
309
+ for (_a = 0, inserted_2 = inserted; _a < inserted_2.length; _a++) {
310
+ doc = inserted_2[_a];
311
+ expect(bound).toContain(doc.id);
312
+ expect(bound).toContain(doc.note);
313
+ }
314
+ return [2 /*return*/];
315
+ }
316
+ });
317
+ }); });
318
+ test('every per-row hook fires once per row, in row order, and sees the row as the single insert shows it', function () { return __awaiter(void 0, void 0, void 0, function () {
319
+ var serial, _i, _a, row, serialLog, batched, _loop_1, _b, _c, title;
320
+ return __generator(this, function (_d) {
321
+ switch (_d.label) {
322
+ case 0:
323
+ serial = dbOver(new RecordingDriver());
324
+ _i = 0, _a = rowsOf(['a', 'b']);
325
+ _d.label = 1;
326
+ case 1:
327
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
328
+ row = _a[_i];
329
+ return [4 /*yield*/, serial.insert(docTable, row)];
330
+ case 2:
331
+ _d.sent();
332
+ _d.label = 3;
333
+ case 3:
334
+ _i++;
335
+ return [3 /*break*/, 1];
336
+ case 4:
337
+ serialLog = __spreadArray([], log, true);
338
+ log.length = 0;
339
+ batched = dbOver(new RecordingDriver());
340
+ return [4 /*yield*/, batched.insertMany(docTable, rowsOf(['a', 'b']))];
341
+ case 5:
342
+ _d.sent();
343
+ _loop_1 = function (title) {
344
+ var serialEvents = serialLog.filter(function (_a) {
345
+ var t = _a[1];
346
+ return t === title || t === "".concat(title, "!");
347
+ });
348
+ expect(eventsFor(title)).toEqual(serialEvents);
349
+ expect(eventsFor(title).map(function (_a) {
350
+ var phase = _a[0];
351
+ return phase;
352
+ })).toEqual([
353
+ 'watcher.before',
354
+ 'column.before',
355
+ 'column.after',
356
+ 'watcher.after',
357
+ ]);
358
+ };
359
+ // Each row's own sequence — what fired, in what order, with the id already set — is the
360
+ // serial road's exactly.
361
+ for (_b = 0, _c = ['a', 'b']; _b < _c.length; _b++) {
362
+ title = _c[_b];
363
+ _loop_1(title);
364
+ }
365
+ // Across rows, each phase runs in row order; the before-phases of every row precede the
366
+ // statement, the after-phases follow it.
367
+ expect(log.map(function (_a) {
368
+ var phase = _a[0], title = _a[1];
369
+ return "".concat(phase, ":").concat(title);
370
+ })).toEqual([
371
+ 'watcher.before:a',
372
+ 'column.before:a',
373
+ 'watcher.before:b',
374
+ 'column.before:b',
375
+ 'column.after:a!',
376
+ 'watcher.after:a!',
377
+ 'column.after:b!',
378
+ 'watcher.after:b!',
379
+ ]);
380
+ return [2 /*return*/];
381
+ }
382
+ });
383
+ }); });
384
+ test("a batch wider than the driver's parameter bound goes as the fewest statements that fit, in order", function () { return __awaiter(void 0, void 0, void 0, function () {
385
+ var driver, db, inserted, _i, _a, statement;
386
+ return __generator(this, function (_b) {
387
+ switch (_b.label) {
388
+ case 0:
389
+ driver = new BoundedDriver(13);
390
+ db = dbOver(driver);
391
+ return [4 /*yield*/, db.insertMany(docTable, rowsOf(['a', 'b', 'c', 'd', 'e']))];
392
+ case 1:
393
+ inserted = _b.sent();
394
+ expect(driver.dml.map(function (statement) { return tuplesOf(statement.sql); })).toEqual([2, 2, 1]);
395
+ for (_i = 0, _a = driver.dml; _i < _a.length; _i++) {
396
+ statement = _a[_i];
397
+ expect(Object.keys(statement.params).length).toBeLessThanOrEqual(13);
398
+ }
399
+ expect(inserted.map(function (doc) { return doc.title; })).toEqual(['a!', 'b!', 'c!', 'd!', 'e!']);
400
+ // One transaction around the whole batch: every statement rides the same one.
401
+ expect(driver.transactions).toBe(1);
402
+ expect(new Set(driver.dml.map(function (statement) { return statement.transaction; })).size).toBe(1);
403
+ return [2 /*return*/];
404
+ }
405
+ });
406
+ }); });
407
+ test('the batch rides the ambient transaction when there is one, and opens its own when there is none', function () { return __awaiter(void 0, void 0, void 0, function () {
408
+ var ambient, db, own;
409
+ return __generator(this, function (_a) {
410
+ switch (_a.label) {
411
+ case 0:
412
+ ambient = new RecordingDriver();
413
+ db = dbOver(ambient);
414
+ return [4 /*yield*/, db.runTransaction(function () { return __awaiter(void 0, void 0, void 0, function () {
415
+ return __generator(this, function (_a) {
416
+ switch (_a.label) {
417
+ case 0: return [4 /*yield*/, db.insertMany(docTable, rowsOf(['a', 'b']))];
418
+ case 1:
419
+ _a.sent();
420
+ return [2 /*return*/];
421
+ }
422
+ });
423
+ }); })];
424
+ case 1:
425
+ _a.sent();
426
+ expect(ambient.transactions).toBe(1);
427
+ expect(ambient.dml[0].transaction).toEqual({ id: 'transaction-1' });
428
+ own = new RecordingDriver();
429
+ return [4 /*yield*/, dbOver(own).insertMany(docTable, rowsOf(['a', 'b']))];
430
+ case 2:
431
+ _a.sent();
432
+ expect(own.transactions).toBe(1);
433
+ expect(own.dml[0].transaction).toEqual({ id: 'transaction-1' });
434
+ return [2 /*return*/];
435
+ }
436
+ });
437
+ }); });
438
+ test('no rows: nothing issued, nothing opened, an empty result', function () { return __awaiter(void 0, void 0, void 0, function () {
439
+ var driver, inserted;
440
+ return __generator(this, function (_a) {
441
+ switch (_a.label) {
442
+ case 0:
443
+ driver = new RecordingDriver();
444
+ return [4 /*yield*/, dbOver(driver).insertMany(docTable, [])];
445
+ case 1:
446
+ inserted = _a.sent();
447
+ expect(inserted).toEqual([]);
448
+ expect(driver.dml).toHaveLength(0);
449
+ expect(driver.transactions).toBe(0);
450
+ expect(log).toHaveLength(0);
451
+ return [2 /*return*/];
452
+ }
453
+ });
454
+ }); });
455
+ test('a refused statement fails the batch: the error surfaces and no after-phase runs for any row', function () { return __awaiter(void 0, void 0, void 0, function () {
456
+ var driver;
457
+ return __generator(this, function (_a) {
458
+ switch (_a.label) {
459
+ case 0:
460
+ driver = new RecordingDriver();
461
+ driver.refuse = function () { return true; };
462
+ return [4 /*yield*/, expect(dbOver(driver).insertMany(docTable, rowsOf(['a', 'b']))).rejects.toThrow('refused')];
463
+ case 1:
464
+ _a.sent();
465
+ expect(driver.dml).toHaveLength(1);
466
+ expect(log.map(function (_a) {
467
+ var phase = _a[0];
468
+ return phase;
469
+ }).filter(function (phase) { return phase.endsWith('.after'); })).toEqual([]);
470
+ return [2 /*return*/];
471
+ }
472
+ });
473
+ }); });
474
+ });
475
+ //# sourceMappingURL=InsertMany.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertMany.test.js","sourceRoot":"","sources":["../../test/InsertMany.test.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  var user_auth_1 = require("@proteinjs/user-auth");
19
+ var logger_1 = require("@proteinjs/logger");
19
20
  var Table_1 = require("../src/Table");
20
21
  var Record_1 = require("../src/Record");
21
22
  var Columns_1 = require("../src/Columns");
@@ -230,6 +231,17 @@ describe('TableServiceAuth — default deny (no auth block)', function () {
230
231
  expect(auth().canAccess('update', [table, { id: 'x', title: 't' }])).toBe(true);
231
232
  expect(auth().canAccess('delete', [table, { id: 'x' }])).toBe(true);
232
233
  });
234
+ it('the multi-row insert is a server-side door only: the service refuses it, admin included', function () {
235
+ setUser(['admin']);
236
+ var table = new NoAuthTable();
237
+ var errorSpy = jest.spyOn(logger_1.Logger.prototype, 'error').mockImplementation(function () { return undefined; });
238
+ try {
239
+ expect(auth().canAccess('insertMany', [table, [{ title: 't' }]])).toBe(false);
240
+ }
241
+ finally {
242
+ errorSpy.mockRestore();
243
+ }
244
+ });
233
245
  });
234
246
  describe('TableServiceAuth — updateArrayMembership / updatePreserving (update parity)', function () {
235
247
  afterEach(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"TableServiceAuth.test.js","sourceRoot":"","sources":["../../test/TableServiceAuth.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableServiceAuth.test.js","sourceRoot":"","sources":["../../test/TableServiceAuth.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAgD;AAChD,4CAA2C;AAC3C,sCAAqC;AACrC,wCAA0D;AAC1D,0CAA8C;AAC9C,iEAAgE;AAsBhE,iFAAiF;AACjF;IAAiC,sCAAU;IAA3C;QAAA,qEAUC;QATQ,UAAI,GAAG,qBAAqB,CAAC;QAC7B,UAAI,GAAuB;YAChC,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE;YAC5B,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;SAC7F,CAAC;QACK,aAAO,GAAG,IAAA,0BAAiB,EAAM;YACtC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,yBAAC;AAAD,CAAC,AAVD,CAAiC,aAAK,GAUrC;AAED,uFAAuF;AACvF;IAAmC,wCAAU;IAA7C;QAAA,qEAWC;QAVQ,UAAI,GAAG,uBAAuB,CAAC;QAC/B,UAAI,GAAuB;YAChC,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE;YAC5B,OAAO,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE;YACjC,uBAAuB,EAAE,CAAC,OAAO,CAAC;SACnC,CAAC;QACK,aAAO,GAAG,IAAA,0BAAiB,EAAM;YACtC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,2BAAC;AAAD,CAAC,AAXD,CAAmC,aAAK,GAWvC;AAED;;;GAGG;AACH;IAA0B,+BAAU;IAApC;QAAA,qEAMC;QALQ,UAAI,GAAG,cAAc,CAAC;QACtB,aAAO,GAAG,IAAA,0BAAiB,EAAM;YACtC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,kBAAC;AAAD,CAAC,AAND,CAA0B,aAAK,GAM9B;AAED;;;GAGG;AACH;IAAmC,wCAAU;IAA7C;QAAA,qEAaC;QAZQ,UAAI,GAAG,uBAAuB,CAAC;QAC/B,UAAI,GAAuB;YAChC,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;gBAC9B,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;aAChC;YACD,uBAAuB,EAAE,CAAC,OAAO,CAAC;SACnC,CAAC;QACK,aAAO,GAAG,IAAA,0BAAiB,EAAM;YACtC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,2BAAC;AAAD,CAAC,AAbD,CAAmC,aAAK,GAavC;AAED,+EAA+E;AAC/E;IAA4B,iCAAU;IAAtC;QAAA,qEAUC;QATQ,UAAI,GAAG,gBAAgB,CAAC;QACxB,UAAI,GAAuB;YAChC,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;YAC9B,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;SACpC,CAAC;QACK,aAAO,GAAG,IAAA,0BAAiB,EAAM;YACtC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,IAAI,sBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,oBAAC;AAAD,CAAC,AAVD,CAA4B,aAAK,GAUhC;AAOD,IAAM,OAAO,GAAG,UAAC,KAAe;IAC7B,oBAAyC,CAAC,QAAQ,GAAG;QACpD,OAAO,EAAE,cAAM,OAAA,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,OAAA,EAAE,CAAC,EAArC,CAAqC;KACrD,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,UAAU,GAAG,UAAC,OAA2C;IAC5D,oBAAyC,CAAC,sBAAsB,GAAG;QAClE,QAAQ,EAAE,UAAC,UAAkB,IAAK,OAAA,OAAO,CAAC,UAAU,CAAC,EAAnB,CAAmB;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,IAAI,GAAG,cAAM,OAAA,IAAI,mCAAgB,EAAE,EAAtB,CAAsB,CAAC;AAE1C,kFAAkF;AAClF,IAAM,YAAY,GAAG,UAAC,EAAiB,EAAE,OAAe;IACtD,IAAI,MAAW,CAAC;IAChB,IAAI;QACF,EAAE,EAAE,CAAC;KACN;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,GAAG,KAAK,CAAC;KAChB;IACD,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,QAAQ,CAAC,iDAAiD,EAAE;IAC1D,SAAS,CAAC;QACP,oBAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE;QACpF,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAnD,CAAmD,EACzD,0EAA0E,CAC3E,CAAC;QACF,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAA5D,CAA4D,EAClE,wEAAwE,CACzE,CAAC;QACF,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAhD,CAAgD,EACtD,0EAA0E,CAC3E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE;QACpD,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,IAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE;QAC3E,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAhD,CAAgD,EACtD,qEAAqE,CACtE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kEAAkE,EAAE;IAC3E,SAAS,CAAC;QACP,oBAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC/D,oBAAyC,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE;QAC3E,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEnC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhF,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjB,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAtC,CAAsC,EAC5C,8DAA8D,CAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE;QAC3E,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAtC,CAAsC,EAC5C,8DAA8D,CAC/D,CAAC;QAEF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE;QACnF,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAnD,CAAmD,EACzD,4EAA4E,CAC7E,CAAC;QACF,6FAA6F;QAC7F,4DAA4D;QAC5D,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAhD,CAAgD,EACtD,4EAA4E,CAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE;QAC7F,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAlE,CAAkE,EACxE,qFAAqF,CACtF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iDAAiD,EAAE;IAC1D,SAAS,CAAC;QACP,oBAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+FAA+F,EAAE;QAClG,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,IAAM,WAAW,GAAG,qDAAqD,CAAC;QAC1E,YAAY,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAtC,CAAsC,EAAE,WAAW,CAAC,CAAC;QACxE,YAAY,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAA7C,CAA6C,EAAE,WAAW,CAAC,CAAC;QAC/E,YAAY,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAA5C,CAA4C,EAAE,WAAW,CAAC,CAAC;QAC9E,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAnD,CAAmD,EACzD,mEAAmE,CACpE,CAAC;QACF,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAA5D,CAA4D,EAClE,iEAAiE,CAClE,CAAC;QACF,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAhD,CAAgD,EACtD,mEAAmE,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE;QACxC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,IAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE;QAC5F,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,IAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QAC3F,IAAI;YACF,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/E;gBAAS;YACR,QAAQ,CAAC,WAAW,EAAE,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6EAA6E,EAAE;IACtF,SAAS,CAAC;QACP,oBAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAM,UAAU,GAAG,UAAC,kBAA0B,IAAK,OAAA,CAAC;QAClD,QAAQ,EAAE,GAAG;QACb,kBAAkB,oBAAA;QAClB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC9C,CAAC,EAJiD,CAIjD,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE;QACtF,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACvC,IAAM,YAAY,GAAG,wEAAwE,CAAC;QAC9F,YAAY,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAvE,CAAuE,EAAE,YAAY,CAAC,CAAC;QAC1G,YAAY,CACV;YACE,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE;gBACnC,KAAK;gBACL,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;gBACvB,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;aACtD,CAAC;QAJF,CAIE,EACJ,YAAY,CACb,CAAC;QAEF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,CACJ,IAAI,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACnC,KAAK;YACL,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;YACvB,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;SACtD,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE;QACzF,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,IAAM,YAAY,GAAG,iEAAiE,CAAC;QACvF,YAAY,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAvE,CAAuE,EAAE,YAAY,CAAC,CAAC;QAC1G,YAAY,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAA1E,CAA0E,EAAE,YAAY,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gHAAgH,EAAE;QACnH,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAvE,CAAuE,EAC7E,qFAAqF,CACtF,CAAC;QACF,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE;QAClF,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,YAAY,CACV,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAhF,CAAgF,EACtF,qFAAqF,CACtF,CAAC;QACF,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4CAA4C,EAAE;IACrD,SAAS,CAAC;QACP,oBAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE;QACrF,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,0FAA0F;QAC1F,8FAA8F;QAC9F,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;SACvE;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IACtH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE;QAC1D,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,CAAC,cAAM,OAAA,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAlE,CAAkE,CAAC,CAAC,OAAO,CACtF,qDAAqD,CACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE;QACzE,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE;QACtB,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CrudTests.d.ts","sourceRoot":"","sources":["../../../test/reusable/CrudTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAc,KAAK,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAK9F,eAAO,MAAM,SAAS,WACZ,QAAQ,6BACW,gCAAgC,qBACxC,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eA+ehD,CAAC"}
1
+ {"version":3,"file":"CrudTests.d.ts","sourceRoot":"","sources":["../../../test/reusable/CrudTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAc,KAAK,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAK9F,eAAO,MAAM,SAAS,WACZ,QAAQ,6BACW,gCAAgC,qBACxC,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eA6gBhD,CAAC"}
@@ -79,6 +79,50 @@ var crudTests = function (driver, transactionContextFactory, dropTable) {
79
79
  }
80
80
  });
81
81
  }); });
82
+ test('Insert many: every row lands with its defaults, as its own single insert would', function () { return __awaiter(void 0, void 0, void 0, function () {
83
+ var emplyeeTable, rows, inserted, qb, fetched, byName, _i, fetched_1, employee;
84
+ var _a, _b, _c, _d;
85
+ return __generator(this, function (_e) {
86
+ switch (_e.label) {
87
+ case 0:
88
+ emplyeeTable = crudTestTables_1.crudTestTables.Employee;
89
+ rows = [
90
+ { name: 'Veronica', department: 'Cake Factory' },
91
+ { name: 'Ada', department: 'Cake Factory', jobTitle: null, isRemote: true },
92
+ { name: 'Sean' },
93
+ ];
94
+ return [4 /*yield*/, db.insertMany(emplyeeTable, rows)];
95
+ case 1:
96
+ inserted = _e.sent();
97
+ expect(inserted.map(function (employee) { return employee.name; })).toEqual(['Veronica', 'Ada', 'Sean']);
98
+ qb = new db_query_1.QueryBuilder(emplyeeTable.name).condition({
99
+ field: 'id',
100
+ operator: 'IN',
101
+ value: inserted.map(function (employee) { return employee.id; }),
102
+ });
103
+ return [4 /*yield*/, db.query(emplyeeTable, qb)];
104
+ case 2:
105
+ fetched = _e.sent();
106
+ expect(fetched.length).toBe(3);
107
+ byName = new Map(fetched.map(function (employee) { return [employee.name, employee]; }));
108
+ expect((_a = byName.get('Veronica')) === null || _a === void 0 ? void 0 : _a.department).toBe('Cake Factory');
109
+ // A column one row carries and another leaves out stores NULL for the row without it —
110
+ // the stored value of a single-row insert that left it out.
111
+ expect((_b = byName.get('Veronica')) === null || _b === void 0 ? void 0 : _b.jobTitle).toBeNull();
112
+ expect((_c = byName.get('Ada')) === null || _c === void 0 ? void 0 : _c.isRemote).toBe(true);
113
+ expect((_d = byName.get('Sean')) === null || _d === void 0 ? void 0 : _d.department).toBeNull();
114
+ for (_i = 0, fetched_1 = fetched; _i < fetched_1.length; _i++) {
115
+ employee = fetched_1[_i];
116
+ expect(employee.created).toBeTruthy();
117
+ expect(employee.updated).toBeTruthy();
118
+ }
119
+ return [4 /*yield*/, db.delete(emplyeeTable, qb)];
120
+ case 3:
121
+ _e.sent();
122
+ return [2 /*return*/];
123
+ }
124
+ });
125
+ }); });
82
126
  test('Update', function () { return __awaiter(void 0, void 0, void 0, function () {
83
127
  var testEmployee, emplyeeTable, insertedEmployee, updateCount, fetchedEmployee;
84
128
  return __generator(this, function (_a) {