@proteinjs/db 1.19.0 → 1.20.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 (104) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/generated/index.js +1 -1
  3. package/dist/generated/index.js.map +1 -1
  4. package/dist/generated/test/index.d.ts +1 -1
  5. package/dist/generated/test/index.d.ts.map +1 -1
  6. package/dist/generated/test/index.js +50 -32
  7. package/dist/generated/test/index.js.map +1 -1
  8. package/dist/index.d.ts +0 -6
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -6
  11. package/dist/index.js.map +1 -1
  12. package/dist/src/Db.d.ts +2 -2
  13. package/dist/src/Db.d.ts.map +1 -1
  14. package/dist/src/Db.js +6 -3
  15. package/dist/src/Db.js.map +1 -1
  16. package/dist/src/TableWatcherRunner.d.ts.map +1 -1
  17. package/dist/src/TableWatcherRunner.js +4 -1
  18. package/dist/src/TableWatcherRunner.js.map +1 -1
  19. package/dist/src/schema/TableManager.d.ts.map +1 -1
  20. package/dist/src/schema/TableManager.js +4 -1
  21. package/dist/src/schema/TableManager.js.map +1 -1
  22. package/dist/test/index.d.ts +13 -0
  23. package/dist/test/index.d.ts.map +1 -0
  24. package/dist/test/index.js +29 -0
  25. package/dist/test/index.js.map +1 -0
  26. package/dist/test/reusable/CascadeDeleteTests.d.ts +1 -189
  27. package/dist/test/reusable/CascadeDeleteTests.d.ts.map +1 -1
  28. package/dist/test/reusable/CascadeDeleteTests.js +36 -393
  29. package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
  30. package/dist/test/reusable/ColumnTypesTests.d.ts +1 -52
  31. package/dist/test/reusable/ColumnTypesTests.d.ts.map +1 -1
  32. package/dist/test/reusable/ColumnTypesTests.js +20 -86
  33. package/dist/test/reusable/ColumnTypesTests.js.map +1 -1
  34. package/dist/test/reusable/CrudTests.d.ts +1 -50
  35. package/dist/test/reusable/CrudTests.d.ts.map +1 -1
  36. package/dist/test/reusable/CrudTests.js +37 -126
  37. package/dist/test/reusable/CrudTests.js.map +1 -1
  38. package/dist/test/reusable/DynamicReferenceColumnTests.d.ts +3 -0
  39. package/dist/test/reusable/DynamicReferenceColumnTests.d.ts.map +1 -0
  40. package/dist/test/reusable/DynamicReferenceColumnTests.js +429 -0
  41. package/dist/test/reusable/DynamicReferenceColumnTests.js.map +1 -0
  42. package/dist/test/reusable/TableManagerTests.d.ts +1 -2
  43. package/dist/test/reusable/TableManagerTests.d.ts.map +1 -1
  44. package/dist/test/reusable/TableManagerTests.js +57 -152
  45. package/dist/test/reusable/TableManagerTests.js.map +1 -1
  46. package/dist/test/reusable/TransactionTests.d.ts +1 -51
  47. package/dist/test/reusable/TransactionTests.d.ts.map +1 -1
  48. package/dist/test/reusable/TransactionTests.js +24 -111
  49. package/dist/test/reusable/TransactionTests.js.map +1 -1
  50. package/dist/test/util/DbTestEnvironment.d.ts +12 -0
  51. package/dist/test/util/DbTestEnvironment.d.ts.map +1 -0
  52. package/dist/test/util/DbTestEnvironment.js +125 -0
  53. package/dist/test/util/DbTestEnvironment.js.map +1 -0
  54. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +191 -0
  55. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -0
  56. package/dist/test/util/tables/cascadeDeleteTestTables.js +234 -0
  57. package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -0
  58. package/dist/test/util/tables/columnTypesTestTables.d.ts +47 -0
  59. package/dist/test/util/tables/columnTypesTestTables.d.ts.map +1 -0
  60. package/dist/test/util/tables/columnTypesTestTables.js +49 -0
  61. package/dist/test/util/tables/columnTypesTestTables.js.map +1 -0
  62. package/dist/test/util/tables/crudTestTables.d.ts +48 -0
  63. package/dist/test/util/tables/crudTestTables.d.ts.map +1 -0
  64. package/dist/test/util/tables/crudTestTables.js +58 -0
  65. package/dist/test/util/tables/crudTestTables.js.map +1 -0
  66. package/dist/test/util/tables/dynamicReferenceColumnTestTables.d.ts +76 -0
  67. package/dist/test/util/tables/dynamicReferenceColumnTestTables.d.ts.map +1 -0
  68. package/dist/test/util/tables/dynamicReferenceColumnTestTables.js +131 -0
  69. package/dist/test/util/tables/dynamicReferenceColumnTestTables.js.map +1 -0
  70. package/dist/test/util/tables/tableManagerTestTables.d.ts +86 -0
  71. package/dist/test/util/tables/tableManagerTestTables.d.ts.map +1 -0
  72. package/dist/test/util/tables/tableManagerTestTables.js +131 -0
  73. package/dist/test/util/tables/tableManagerTestTables.js.map +1 -0
  74. package/dist/test/util/tables/transactionTestTables.d.ts +48 -0
  75. package/dist/test/util/tables/transactionTestTables.d.ts.map +1 -0
  76. package/dist/test/util/tables/transactionTestTables.js +58 -0
  77. package/dist/test/util/tables/transactionTestTables.js.map +1 -0
  78. package/generated/index.ts +1 -1
  79. package/generated/test/index.ts +35 -17
  80. package/index.ts +0 -7
  81. package/package.json +23 -10
  82. package/src/Db.ts +8 -3
  83. package/src/TableWatcherRunner.ts +4 -1
  84. package/src/schema/TableManager.ts +4 -1
  85. package/test/index.ts +13 -0
  86. package/test/reusable/CascadeDeleteTests.ts +38 -320
  87. package/test/reusable/ColumnTypesTests.ts +9 -85
  88. package/test/reusable/CrudTests.ts +26 -97
  89. package/test/reusable/DynamicReferenceColumnTests.ts +342 -0
  90. package/test/reusable/TableManagerTests.ts +18 -97
  91. package/test/reusable/TransactionTests.ts +26 -93
  92. package/test/util/DbTestEnvironment.ts +46 -0
  93. package/test/util/tables/cascadeDeleteTestTables.ts +232 -0
  94. package/test/util/tables/columnTypesTestTables.ts +63 -0
  95. package/test/util/tables/crudTestTables.ts +44 -0
  96. package/test/util/tables/dynamicReferenceColumnTestTables.ts +87 -0
  97. package/test/util/tables/tableManagerTestTables.ts +98 -0
  98. package/test/util/tables/transactionTestTables.ts +44 -0
  99. package/tsconfig.json +7 -1
  100. package/dist/test/reusable/DynamicReferenceColumn.d.ts +0 -77
  101. package/dist/test/reusable/DynamicReferenceColumn.d.ts.map +0 -1
  102. package/dist/test/reusable/DynamicReferenceColumn.js +0 -656
  103. package/dist/test/reusable/DynamicReferenceColumn.js.map +0 -1
  104. package/test/reusable/DynamicReferenceColumn.ts +0 -487
@@ -0,0 +1,429 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.dynamicReferenceColumnTests = void 0;
40
+ var db_1 = require("@proteinjs/db");
41
+ var db_query_1 = require("@proteinjs/db-query");
42
+ var DbTestEnvironment_1 = require("../util/DbTestEnvironment");
43
+ var dynamicReferenceColumnTestTables_1 = require("../util/tables/dynamicReferenceColumnTestTables");
44
+ var dynamicReferenceColumnTests = function (driver, dropTable) {
45
+ return function () {
46
+ var db = new db_1.Db(driver);
47
+ var testEnv = new DbTestEnvironment_1.DbTestEnvironment(driver, dropTable);
48
+ beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0: return [4 /*yield*/, testEnv.beforeAll()];
51
+ case 1: return [2 /*return*/, _a.sent()];
52
+ }
53
+ }); }); }, 10000);
54
+ afterAll(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
55
+ switch (_a.label) {
56
+ case 0: return [4 /*yield*/, testEnv.afterAll()];
57
+ case 1: return [2 /*return*/, _a.sent()];
58
+ }
59
+ }); }); }, 10000);
60
+ test('should handle references to different types', function () { return __awaiter(void 0, void 0, void 0, function () {
61
+ var engineer, designer, engineerAssignment, designerAssignment, fetchedEngineerAssignment, fetchedDesignerAssignment;
62
+ var _a, _b, _c, _d;
63
+ return __generator(this, function (_e) {
64
+ switch (_e.label) {
65
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
66
+ name: 'John Doe',
67
+ yearsOfExperience: 5,
68
+ })];
69
+ case 1:
70
+ engineer = _e.sent();
71
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer, {
72
+ name: 'Jane Smith',
73
+ specialization: 'UI/UX',
74
+ })];
75
+ case 2:
76
+ designer = _e.sent();
77
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
78
+ projectName: 'Backend API',
79
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
80
+ startDate: '2024-01-01',
81
+ })];
82
+ case 3:
83
+ engineerAssignment = _e.sent();
84
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
85
+ projectName: 'Website Redesign',
86
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name, designer.id),
87
+ startDate: '2024-01-15',
88
+ })];
89
+ case 4:
90
+ designerAssignment = _e.sent();
91
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
92
+ id: engineerAssignment.id,
93
+ })];
94
+ case 5:
95
+ fetchedEngineerAssignment = _e.sent();
96
+ expect((_a = fetchedEngineerAssignment.employeeRef) === null || _a === void 0 ? void 0 : _a._table).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name);
97
+ expect((_b = fetchedEngineerAssignment.employeeRef) === null || _b === void 0 ? void 0 : _b._id).toBe(engineer.id);
98
+ expect(fetchedEngineerAssignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name);
99
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
100
+ id: designerAssignment.id,
101
+ })];
102
+ case 6:
103
+ fetchedDesignerAssignment = _e.sent();
104
+ expect((_c = fetchedDesignerAssignment.employeeRef) === null || _c === void 0 ? void 0 : _c._table).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name);
105
+ expect((_d = fetchedDesignerAssignment.employeeRef) === null || _d === void 0 ? void 0 : _d._id).toBe(designer.id);
106
+ expect(fetchedDesignerAssignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name);
107
+ return [2 /*return*/];
108
+ }
109
+ });
110
+ }); });
111
+ test('should cascade delete multiple types of records when references are deleted', function () { return __awaiter(void 0, void 0, void 0, function () {
112
+ var engineer, projectManager, designer, engineerAssignment, pmAssignment, designerAssignment, deleteQuery, recordsDeleted, remainingEngineers, remainingPMs, remainingDesigners, remainingAssignmentsQuery, remainingAssignments;
113
+ return __generator(this, function (_a) {
114
+ switch (_a.label) {
115
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
116
+ name: 'John Doe',
117
+ yearsOfExperience: 5,
118
+ })];
119
+ case 1:
120
+ engineer = _a.sent();
121
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectManager, {
122
+ name: 'Alice Brown',
123
+ certificate: 'Scrum Master',
124
+ })];
125
+ case 2:
126
+ projectManager = _a.sent();
127
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer, {
128
+ name: 'Jane Smith',
129
+ specialization: 'UI/UX',
130
+ })];
131
+ case 3:
132
+ designer = _a.sent();
133
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
134
+ projectName: 'Backend API',
135
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
136
+ startDate: '2024-01-01',
137
+ })];
138
+ case 4:
139
+ engineerAssignment = _a.sent();
140
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
141
+ projectName: 'Project Planning',
142
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectManager.name, projectManager.id),
143
+ startDate: '2024-01-10',
144
+ })];
145
+ case 5:
146
+ pmAssignment = _a.sent();
147
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
148
+ projectName: 'Website Redesign',
149
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name, designer.id),
150
+ startDate: '2024-01-15',
151
+ })];
152
+ case 6:
153
+ designerAssignment = _a.sent();
154
+ deleteQuery = new db_query_1.QueryBuilder(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment.name).condition({
155
+ field: 'id',
156
+ operator: 'IN',
157
+ value: [engineerAssignment.id, pmAssignment.id],
158
+ });
159
+ return [4 /*yield*/, db.delete(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, deleteQuery)];
160
+ case 7:
161
+ recordsDeleted = _a.sent();
162
+ expect(recordsDeleted).toBe(2);
163
+ return [4 /*yield*/, db.query(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, { id: engineer.id })];
164
+ case 8:
165
+ remainingEngineers = _a.sent();
166
+ expect(remainingEngineers.length).toBe(0); // Engineer should be deleted
167
+ return [4 /*yield*/, db.query(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectManager, { id: projectManager.id })];
168
+ case 9:
169
+ remainingPMs = _a.sent();
170
+ expect(remainingPMs.length).toBe(0); // PM should be deleted
171
+ return [4 /*yield*/, db.query(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer, { id: designer.id })];
172
+ case 10:
173
+ remainingDesigners = _a.sent();
174
+ expect(remainingDesigners.length).toBe(1); // Designer should still exist
175
+ expect(remainingDesigners[0].id).toBe(designer.id);
176
+ remainingAssignmentsQuery = new db_query_1.QueryBuilder(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment.name).condition({
177
+ field: 'id',
178
+ operator: 'IN',
179
+ value: [engineerAssignment.id, pmAssignment.id, designerAssignment.id],
180
+ });
181
+ return [4 /*yield*/, db.query(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, remainingAssignmentsQuery)];
182
+ case 11:
183
+ remainingAssignments = _a.sent();
184
+ expect(remainingAssignments.length).toBe(1);
185
+ expect(remainingAssignments[0].id).toBe(designerAssignment.id);
186
+ return [2 /*return*/];
187
+ }
188
+ });
189
+ }); });
190
+ test('should allow changing table name when updating reference to new type', function () { return __awaiter(void 0, void 0, void 0, function () {
191
+ var engineer, designer, assignment, updatedAssignment;
192
+ var _a, _b;
193
+ return __generator(this, function (_c) {
194
+ switch (_c.label) {
195
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
196
+ name: 'John Doe',
197
+ yearsOfExperience: 5,
198
+ })];
199
+ case 1:
200
+ engineer = _c.sent();
201
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer, {
202
+ name: 'Jane Smith',
203
+ specialization: 'UI/UX',
204
+ })];
205
+ case 2:
206
+ designer = _c.sent();
207
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
208
+ projectName: 'Full Stack App',
209
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
210
+ startDate: '2024-01-01',
211
+ })];
212
+ case 3:
213
+ assignment = _c.sent();
214
+ // Reassign to designer
215
+ return [4 /*yield*/, db.update(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
216
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name, designer.id),
217
+ }, { id: assignment.id })];
218
+ case 4:
219
+ // Reassign to designer
220
+ _c.sent();
221
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, { id: assignment.id })];
222
+ case 5:
223
+ updatedAssignment = _c.sent();
224
+ expect(updatedAssignment.employeeRef).toBeDefined();
225
+ expect((_a = updatedAssignment.employeeRef) === null || _a === void 0 ? void 0 : _a._table).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name);
226
+ expect((_b = updatedAssignment.employeeRef) === null || _b === void 0 ? void 0 : _b._id).toBe(designer.id);
227
+ expect(updatedAssignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name);
228
+ return [2 /*return*/];
229
+ }
230
+ });
231
+ }); });
232
+ describe('DynamicReferenceTableNameColumn behavior', function () {
233
+ test('should handle defaultValue logic correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
234
+ var engineer, assignment, assignmentNoRef;
235
+ return __generator(this, function (_a) {
236
+ switch (_a.label) {
237
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
238
+ name: 'John Doe',
239
+ yearsOfExperience: 5,
240
+ })];
241
+ case 1:
242
+ engineer = _a.sent();
243
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
244
+ projectName: 'Test Project',
245
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
246
+ startDate: '2024-01-01',
247
+ })];
248
+ case 2:
249
+ assignment = _a.sent();
250
+ // Verify table name was set correctly from reference
251
+ expect(assignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name);
252
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
253
+ projectName: 'No Reference Project',
254
+ employeeRef: null,
255
+ startDate: '2024-01-01',
256
+ })];
257
+ case 3:
258
+ assignmentNoRef = _a.sent();
259
+ // Verify table name is null when reference is null
260
+ expect(assignmentNoRef.employeeTableName).toBeNull();
261
+ // Test case 3: Reference without table name should throw
262
+ return [4 /*yield*/, expect(db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
263
+ projectName: 'Invalid Reference',
264
+ employeeRef: new db_1.Reference('', engineer.id),
265
+ startDate: '2024-01-01',
266
+ })).rejects.toThrow(/table name must be set in Reference object/)];
267
+ case 4:
268
+ // Test case 3: Reference without table name should throw
269
+ _a.sent();
270
+ return [2 /*return*/];
271
+ }
272
+ });
273
+ }); });
274
+ test('should handle updateValue logic correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
275
+ var engineer, designer, assignment, updatedAssignment, unchangedAssignment;
276
+ return __generator(this, function (_a) {
277
+ switch (_a.label) {
278
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
279
+ name: 'John Doe',
280
+ yearsOfExperience: 5,
281
+ })];
282
+ case 1:
283
+ engineer = _a.sent();
284
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer, {
285
+ name: 'Jane Smith',
286
+ specialization: 'UI/UX',
287
+ })];
288
+ case 2:
289
+ designer = _a.sent();
290
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
291
+ projectName: 'Initial Project',
292
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
293
+ startDate: '2024-01-01',
294
+ })];
295
+ case 3:
296
+ assignment = _a.sent();
297
+ // Test case 1: Update reference to new table
298
+ return [4 /*yield*/, db.update(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
299
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name, designer.id),
300
+ }, { id: assignment.id })];
301
+ case 4:
302
+ // Test case 1: Update reference to new table
303
+ _a.sent();
304
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, { id: assignment.id })];
305
+ case 5:
306
+ updatedAssignment = _a.sent();
307
+ expect(updatedAssignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name);
308
+ // Test case 2: Update without changing reference
309
+ return [4 /*yield*/, db.update(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
310
+ projectName: 'Updated Project Name',
311
+ }, { id: assignment.id })];
312
+ case 6:
313
+ // Test case 2: Update without changing reference
314
+ _a.sent();
315
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, { id: assignment.id })];
316
+ case 7:
317
+ unchangedAssignment = _a.sent();
318
+ expect(unchangedAssignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name); // Should retain previous value
319
+ // Test case 3: Update with invalid reference should throw
320
+ return [4 /*yield*/, expect(db.update(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
321
+ employeeRef: new db_1.Reference('', designer.id), // Empty table name
322
+ }, { id: assignment.id })).rejects.toThrow(/table name must be set in Reference object/)];
323
+ case 8:
324
+ // Test case 3: Update with invalid reference should throw
325
+ _a.sent();
326
+ return [2 /*return*/];
327
+ }
328
+ });
329
+ }); });
330
+ test('should handle null references correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
331
+ var engineer, assignment, nullRefAssignment;
332
+ return __generator(this, function (_a) {
333
+ switch (_a.label) {
334
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
335
+ name: 'John Doe',
336
+ yearsOfExperience: 5,
337
+ })];
338
+ case 1:
339
+ engineer = _a.sent();
340
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
341
+ projectName: 'Initial Project',
342
+ employeeRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
343
+ startDate: '2024-01-01',
344
+ })];
345
+ case 2:
346
+ assignment = _a.sent();
347
+ // Update to null reference
348
+ return [4 /*yield*/, db.update(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
349
+ employeeRef: null,
350
+ }, { id: assignment.id })];
351
+ case 3:
352
+ // Update to null reference
353
+ _a.sent();
354
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, { id: assignment.id })];
355
+ case 4:
356
+ nullRefAssignment = _a.sent();
357
+ expect(nullRefAssignment.employeeRef).toBeNull();
358
+ expect(nullRefAssignment.employeeTableName).toBe(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name); // Should retain previous value
359
+ return [2 /*return*/];
360
+ }
361
+ });
362
+ }); });
363
+ test('should handle custom defaultValue override for projectLead', function () { return __awaiter(void 0, void 0, void 0, function () {
364
+ var engineer, assignment;
365
+ return __generator(this, function (_a) {
366
+ switch (_a.label) {
367
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
368
+ name: 'John Doe',
369
+ yearsOfExperience: 5,
370
+ })];
371
+ case 1:
372
+ engineer = _a.sent();
373
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
374
+ projectName: 'Custom Default Test',
375
+ projectLeadRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
376
+ startDate: '2024-01-01',
377
+ })];
378
+ case 2:
379
+ assignment = _a.sent();
380
+ // Should use our custom default value instead of the reference's table name
381
+ expect(assignment.projectLeadTableName).toBe('TEST_DEFAULT_VALUE');
382
+ return [2 /*return*/];
383
+ }
384
+ });
385
+ }); });
386
+ test('should handle custom updateValue override for projectLead', function () { return __awaiter(void 0, void 0, void 0, function () {
387
+ var engineer, designer, assignment, updatedAssignment;
388
+ return __generator(this, function (_a) {
389
+ switch (_a.label) {
390
+ case 0: return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer, {
391
+ name: 'John Doe',
392
+ yearsOfExperience: 5,
393
+ })];
394
+ case 1:
395
+ engineer = _a.sent();
396
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer, {
397
+ name: 'Jane Smith',
398
+ specialization: 'UI/UX',
399
+ })];
400
+ case 2:
401
+ designer = _a.sent();
402
+ return [4 /*yield*/, db.insert(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
403
+ projectName: 'Initial Project',
404
+ projectLeadRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Engineer.name, engineer.id),
405
+ startDate: '2024-01-01',
406
+ })];
407
+ case 3:
408
+ assignment = _a.sent();
409
+ // Update the reference
410
+ return [4 /*yield*/, db.update(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, {
411
+ projectLeadRef: new db_1.Reference(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.Designer.name, designer.id),
412
+ }, { id: assignment.id })];
413
+ case 4:
414
+ // Update the reference
415
+ _a.sent();
416
+ return [4 /*yield*/, db.get(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables.ProjectAssignment, { id: assignment.id })];
417
+ case 5:
418
+ updatedAssignment = _a.sent();
419
+ // Should use our custom update value instead of the new reference's table name
420
+ expect(updatedAssignment.projectLeadTableName).toBe('TEST_UPDATE_VALUE');
421
+ return [2 /*return*/];
422
+ }
423
+ });
424
+ }); });
425
+ });
426
+ };
427
+ };
428
+ exports.dynamicReferenceColumnTests = dynamicReferenceColumnTests;
429
+ //# sourceMappingURL=DynamicReferenceColumnTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicReferenceColumnTests.js","sourceRoot":"","sources":["../../../test/reusable/DynamicReferenceColumnTests.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { DbDriver } from '../../src/Db';
2
- import { Column, Table } from '../../src/Table';
1
+ import { DbDriver, Column, Table } from '@proteinjs/db';
3
2
  export declare const tableManagerTests: (driver: DbDriver, dropTable: (table: Table<any>) => Promise<void>, getColumnType: (column: Column<any, any>) => string, excludedTests?: {
4
3
  alterColumnName?: boolean;
5
4
  alterColumnTypes?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TableManagerTests.d.ts","sourceRoot":"","sources":["../../../test/reusable/TableManagerTests.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AA+EhD,eAAO,MAAM,iBAAiB,WACpB,QAAQ,qBACG,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,0BACvB,OAAO,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,kBACnC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,eAwgBF,CAAC"}
1
+ {"version":3,"file":"TableManagerTests.d.ts","sourceRoot":"","sources":["../../../test/reusable/TableManagerTests.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,QAAQ,EACR,MAAM,EACN,KAAK,EACN,MAAM,eAAe,CAAC;AAUvB,eAAO,MAAM,iBAAiB,WACpB,QAAQ,qBACG,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,0BACvB,OAAO,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,kBACnC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,eAggBF,CAAC"}