@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
@@ -1,74 +1,6 @@
1
- import { Db, DbDriver } from '../../src/Db';
2
- import { Moment } from 'moment';
3
- import { ReferenceArray } from '../../src/reference/ReferenceArray';
4
- import { Reference } from '../../src/reference/Reference';
5
- import {
6
- IntegerColumn,
7
- StringColumn,
8
- FloatColumn,
9
- DecimalColumn,
10
- BooleanColumn,
11
- DateColumn,
12
- DateTimeColumn,
13
- BinaryColumn,
14
- UuidColumn,
15
- PasswordColumn,
16
- ObjectColumn,
17
- ArrayColumn,
18
- ReferenceArrayColumn,
19
- ReferenceColumn,
20
- } from '../../src/Columns';
21
- import { withRecordColumns, Record } from '../../src/Record';
22
- import { Table } from '../../src/Table';
23
- import { DefaultTransactionContextFactory } from '../../src/transaction/TransactionContextFactory';
24
-
25
- export interface TestRecord extends Record {
26
- integerColumn?: number | null;
27
- stringColumn?: string | null;
28
- floatColumn?: number | null;
29
- decimalColumn?: number | null;
30
- booleanColumn?: boolean | null;
31
- dateColumn?: Date | null;
32
- dateTimeColumn?: Moment | null;
33
- binaryColumn?: number | null;
34
- uuidColumn?: string | null;
35
- passwordColumn?: string | null;
36
- objectColumn?: any | null;
37
- arrayColumn?: any[] | null;
38
- referenceArrayColumn?: ReferenceArray<any> | null;
39
- referenceColumn?: Reference<any> | null;
40
- }
41
-
42
- export class TestTable extends Table<TestRecord> {
43
- public name = 'db_test_table';
44
- public columns = withRecordColumns<TestRecord>({
45
- integerColumn: new IntegerColumn('integer_column'),
46
- stringColumn: new StringColumn('string_column', {}, 255),
47
- floatColumn: new FloatColumn('float_column'),
48
- decimalColumn: new DecimalColumn('decimal_column'),
49
- booleanColumn: new BooleanColumn('boolean_column'),
50
- dateColumn: new DateColumn('date_column'),
51
- dateTimeColumn: new DateTimeColumn('date_time_column'),
52
- binaryColumn: new BinaryColumn('binary_column'),
53
- uuidColumn: new UuidColumn('uuid_column'),
54
- passwordColumn: new PasswordColumn('password_column'),
55
- objectColumn: new ObjectColumn('object_column'),
56
- arrayColumn: new ArrayColumn('array_column'),
57
- referenceArrayColumn: new ReferenceArrayColumn('reference_array_column', 'reference_table', false),
58
- referenceColumn: new ReferenceColumn('reference_column', 'reference_table', false),
59
- });
60
- }
61
-
62
- /**
63
- * Used for testing purposes only.
64
- * */
65
- export const getColTypeTestTable = (tableName: string) => {
66
- const testTable = new TestTable();
67
- if (testTable.name === tableName) {
68
- return new TestTable();
69
- }
70
- throw new Error(`Cannot find test table: ${tableName}`);
71
- };
1
+ import { Db, DbDriver, Record, Table, DefaultTransactionContextFactory } from '@proteinjs/db';
2
+ import { DbTestEnvironment } from '../util/DbTestEnvironment';
3
+ import { columnTypesTestTables, TestRecord } from '../util/tables/columnTypesTestTables';
72
4
 
73
5
  export const columnTypeTests = (
74
6
  driver: DbDriver,
@@ -76,19 +8,11 @@ export const columnTypeTests = (
76
8
  dropTable: (table: Table<any>) => Promise<void>
77
9
  ) => {
78
10
  return () => {
79
- const db = new Db(driver, getColTypeTestTable, transactionContextFactory);
11
+ const db = new Db(driver, undefined, transactionContextFactory);
12
+ const testEnv = new DbTestEnvironment(driver, dropTable);
80
13
 
81
- beforeAll(async () => {
82
- if (driver.start) {
83
- await driver.start();
84
- }
85
-
86
- await driver.getTableManager().loadTable(new TestTable());
87
- });
88
-
89
- afterAll(async () => {
90
- await dropTable(new TestTable());
91
- });
14
+ beforeAll(async () => await testEnv.beforeAll(), 10000);
15
+ afterAll(async () => await testEnv.afterAll(), 10000);
92
16
 
93
17
  test('Insert record with all null values', async () => {
94
18
  const testRecord: Omit<TestRecord, keyof Record> = {
@@ -108,7 +32,7 @@ export const columnTypeTests = (
108
32
  referenceColumn: null,
109
33
  };
110
34
 
111
- const testTable: Table<TestRecord> = new TestTable();
35
+ const testTable: Table<TestRecord> = columnTypesTestTables.Test;
112
36
  const insertedRecord = await db.insert(testTable, testRecord);
113
37
  const fetchedRecord = await db.get(testTable, { id: insertedRecord.id });
114
38
 
@@ -150,7 +74,7 @@ export const columnTypeTests = (
150
74
  referenceColumn: undefined,
151
75
  };
152
76
 
153
- const testTable: Table<TestRecord> = new TestTable();
77
+ const testTable: Table<TestRecord> = columnTypesTestTables.Test;
154
78
 
155
79
  await expect(db.insert(testTable, testRecord)).rejects.toThrow();
156
80
  });
@@ -1,64 +1,7 @@
1
1
  import { QueryBuilder } from '@proteinjs/db-query';
2
- import { DbDriver, Db } from '../../src/Db';
3
- import { withRecordColumns, Record } from '../../src/Record';
4
- import { BooleanColumn, DateColumn, StringColumn } from '../../src/Columns';
5
- import { Table } from '../../src/Table';
6
- import { DefaultTransactionContextFactory } from '../../src/transaction/TransactionContextFactory';
7
-
8
- export interface Employee extends Record {
9
- name: string;
10
- department?: string;
11
- jobTitle?: string | null;
12
- isRemote?: boolean;
13
- startDate?: Date;
14
- object?: string;
15
- }
16
-
17
- export class EmployeeTestTable extends Table<Employee> {
18
- name = 'db_test_employee';
19
- columns = withRecordColumns<Employee>({
20
- name: new StringColumn('name'),
21
- department: new StringColumn('department'),
22
- isRemote: new BooleanColumn('is_remote'),
23
- jobTitle: new StringColumn('job_title'),
24
- startDate: new DateColumn('start_date'),
25
- object: new StringColumn('object'),
26
- });
27
- }
28
-
29
- export interface ReservedWordTest extends Record {
30
- name: string;
31
- order?: string;
32
- select?: string;
33
- join?: string;
34
- }
35
-
36
- export class ReservedWordTestTable extends Table<ReservedWordTest> {
37
- name = 'db_test_reserved_word';
38
- columns = withRecordColumns<ReservedWordTest>({
39
- name: new StringColumn('name'),
40
- order: new StringColumn('order'),
41
- select: new StringColumn('select'),
42
- join: new StringColumn('join'),
43
- });
44
- }
45
-
46
- /**
47
- * Used for testing purposes only.
48
- * */
49
- export const getCrudTestTable = (tableName: string) => {
50
- const employeeTable = new EmployeeTestTable();
51
- if (employeeTable.name == tableName) {
52
- return new EmployeeTestTable();
53
- }
54
-
55
- const reservedWordTestTable = new ReservedWordTestTable();
56
- if (reservedWordTestTable.name == tableName) {
57
- return new ReservedWordTestTable();
58
- }
59
-
60
- throw new Error(`Cannot find test table: ${tableName}`);
61
- };
2
+ import { DbDriver, Db, Record, Table, DefaultTransactionContextFactory } from '@proteinjs/db';
3
+ import { DbTestEnvironment } from '../util/DbTestEnvironment';
4
+ import { crudTestTables, Employee, ReservedWordTest } from '../util/tables/crudTestTables';
62
5
 
63
6
  export const crudTests = (
64
7
  driver: DbDriver,
@@ -66,29 +9,15 @@ export const crudTests = (
66
9
  dropTable: (table: Table<any>) => Promise<void>
67
10
  ) => {
68
11
  return () => {
69
- const db = new Db(driver, getCrudTestTable, transactionContextFactory);
70
-
71
- beforeAll(async () => {
72
- if (driver.start) {
73
- await driver.start();
74
- }
75
-
76
- await driver.getTableManager().loadTable(new EmployeeTestTable());
77
- await driver.getTableManager().loadTable(new ReservedWordTestTable());
78
- });
79
-
80
- afterAll(async () => {
81
- await dropTable(new EmployeeTestTable());
82
- await dropTable(new ReservedWordTestTable());
12
+ const db = new Db(driver, undefined, transactionContextFactory);
13
+ const testEnv = new DbTestEnvironment(driver, dropTable);
83
14
 
84
- if (driver.stop) {
85
- await driver.stop();
86
- }
87
- });
15
+ beforeAll(async () => await testEnv.beforeAll(), 10000);
16
+ afterAll(async () => await testEnv.afterAll(), 10000);
88
17
 
89
18
  test('Insert', async () => {
90
19
  const testEmployee: Omit<Employee, keyof Record> = { name: 'Veronica' };
91
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
20
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
92
21
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
93
22
  const fetchedEmployee = await db.get(emplyeeTable, { id: insertedEmployee.id });
94
23
  expect(fetchedEmployee).toBeTruthy();
@@ -97,7 +26,7 @@ export const crudTests = (
97
26
 
98
27
  test('Update', async () => {
99
28
  const testEmployee: Omit<Employee, keyof Record> = { name: 'Veronica' };
100
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
29
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
101
30
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
102
31
  const updateCount = await db.update(
103
32
  emplyeeTable,
@@ -118,7 +47,7 @@ export const crudTests = (
118
47
 
119
48
  test('Delete', async () => {
120
49
  const testEmployee: Omit<Employee, keyof Record> = { name: 'Veronica' };
121
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
50
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
122
51
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
123
52
  let fetchedEmployee = await db.get(emplyeeTable, { id: insertedEmployee.id });
124
53
  expect(fetchedEmployee).toBeTruthy();
@@ -132,7 +61,7 @@ export const crudTests = (
132
61
  const testEmployee1: Omit<Employee, keyof Record> = { name: 'Veronica', department: 'Cake Factory' };
133
62
  const testEmployee2: Omit<Employee, keyof Record> = { name: 'Brent', department: 'Cake Factory' };
134
63
  const testEmployee3: Omit<Employee, keyof Record> = { name: 'Sean', department: 'Pug Playhouse' };
135
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
64
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
136
65
  const fetchedEmployee1 = await db.insert(emplyeeTable, testEmployee1);
137
66
  const fetchedEmployee2 = await db.insert(emplyeeTable, testEmployee2);
138
67
  const fetchedEmployee3 = await db.insert(emplyeeTable, testEmployee3);
@@ -152,7 +81,7 @@ export const crudTests = (
152
81
  const testEmployee1: Omit<Employee, keyof Record> = { name: 'Veronica', department: 'Cake Factory' };
153
82
  const testEmployee2: Omit<Employee, keyof Record> = { name: 'Brent', department: 'Cake Factory' };
154
83
  const testEmployee3: Omit<Employee, keyof Record> = { name: 'Sean', department: 'Pug Playhouse' };
155
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
84
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
156
85
  const fetchedEmployee1 = await db.insert(emplyeeTable, testEmployee1);
157
86
  const fetchedEmployee2 = await db.insert(emplyeeTable, testEmployee2);
158
87
  const fetchedEmployee3 = await db.insert(emplyeeTable, testEmployee3);
@@ -173,7 +102,7 @@ export const crudTests = (
173
102
  jobTitle: null,
174
103
  isRemote: false,
175
104
  };
176
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
105
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
177
106
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
178
107
  const fetchedEmployee = await db.get(emplyeeTable, { id: insertedEmployee.id });
179
108
 
@@ -189,7 +118,7 @@ export const crudTests = (
189
118
  jobTitle: 'Cowboy',
190
119
  isRemote: false,
191
120
  };
192
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
121
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
193
122
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
194
123
  const fetchedEmployee = await db.get(emplyeeTable, { id: insertedEmployee.id });
195
124
  expect(fetchedEmployee).toBeTruthy();
@@ -205,7 +134,7 @@ export const crudTests = (
205
134
  jobTitle: null,
206
135
  isRemote: false,
207
136
  };
208
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
137
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
209
138
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
210
139
 
211
140
  const qb = new QueryBuilder<Employee>(emplyeeTable.name)
@@ -223,7 +152,7 @@ export const crudTests = (
223
152
  const testEmployee1: Omit<Employee, keyof Record> = { name: 'Veronica', jobTitle: 'Engineer' };
224
153
  const testEmployee2: Omit<Employee, keyof Record> = { name: 'Zenyatta', jobTitle: null };
225
154
  const testEmployee3: Omit<Employee, keyof Record> = { name: 'Cassidy', jobTitle: 'Cowboy' };
226
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
155
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
227
156
  const insertedEmployee1 = await db.insert(emplyeeTable, testEmployee1);
228
157
  const insertedEmployee2 = await db.insert(emplyeeTable, testEmployee2);
229
158
  const insertedEmployee3 = await db.insert(emplyeeTable, testEmployee3);
@@ -270,7 +199,7 @@ export const crudTests = (
270
199
  jobTitle: 'Cowboy',
271
200
  startDate: new Date('2016-05-24T00:00:00Z'),
272
201
  };
273
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
202
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
274
203
 
275
204
  const insertedEmployee1 = await db.insert(emplyeeTable, testEmployee1);
276
205
  const insertedEmployee2 = await db.insert(emplyeeTable, testEmployee2);
@@ -308,7 +237,7 @@ export const crudTests = (
308
237
  name: 'Cassidy',
309
238
  jobTitle: 'Cowboy',
310
239
  };
311
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
240
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
312
241
 
313
242
  const insertedEmployee1 = await db.insert(emplyeeTable, testEmployee1);
314
243
  const insertedEmployee2 = await db.insert(emplyeeTable, testEmployee2);
@@ -337,7 +266,7 @@ export const crudTests = (
337
266
  test('CRUD operations with undefined values', async () => {
338
267
  const testEmployee1: Omit<Employee, keyof Record> = { name: 'Veronica', jobTitle: 'Software Engineer' };
339
268
  const testEmployee2: Omit<Employee, keyof Record> = { name: 'Brent', jobTitle: undefined };
340
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
269
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
341
270
 
342
271
  // Insert operation with undefined values
343
272
  await expect(db.insert(emplyeeTable, testEmployee2)).rejects.toThrow();
@@ -370,7 +299,7 @@ export const crudTests = (
370
299
 
371
300
  test('Insert with reserved words', async () => {
372
301
  const testRecord: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name', order: '1', select: 'Option 1' };
373
- const table: Table<ReservedWordTest> = new ReservedWordTestTable();
302
+ const table: Table<ReservedWordTest> = crudTestTables.ReservedWordTest;
374
303
  const insertedRecord = await db.insert(table, testRecord);
375
304
  const fetchedRecord = await db.get(table, { id: insertedRecord.id });
376
305
  expect(fetchedRecord).toBeTruthy();
@@ -379,7 +308,7 @@ export const crudTests = (
379
308
 
380
309
  test('Update with reserved words', async () => {
381
310
  const testRecord: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name', order: '1', select: 'Option 1' };
382
- const table: Table<ReservedWordTest> = new ReservedWordTestTable();
311
+ const table: Table<ReservedWordTest> = crudTestTables.ReservedWordTest;
383
312
  const insertedRecord = await db.insert(table, testRecord);
384
313
  const updateCount = await db.update(
385
314
  table,
@@ -400,7 +329,7 @@ export const crudTests = (
400
329
 
401
330
  test('Delete with reserved words', async () => {
402
331
  const testRecord: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name', order: '1', select: 'Option 1' };
403
- const table: Table<ReservedWordTest> = new ReservedWordTestTable();
332
+ const table: Table<ReservedWordTest> = crudTestTables.ReservedWordTest;
404
333
  const insertedRecord = await db.insert(table, testRecord);
405
334
  let fetchedRecord = await db.get(table, { id: insertedRecord.id });
406
335
  expect(fetchedRecord).toBeTruthy();
@@ -414,7 +343,7 @@ export const crudTests = (
414
343
  const testRecord1: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 1', order: '1', select: 'Option 1' };
415
344
  const testRecord2: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 2', order: '1', select: 'Option 1' };
416
345
  const testRecord3: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 3', order: '2', select: 'Option 2' };
417
- const table: Table<ReservedWordTest> = new ReservedWordTestTable();
346
+ const table: Table<ReservedWordTest> = crudTestTables.ReservedWordTest;
418
347
  const insertedRecord1 = await db.insert(table, testRecord1);
419
348
  const insertedRecord2 = await db.insert(table, testRecord2);
420
349
  const insertedRecord3 = await db.insert(table, testRecord3);
@@ -434,7 +363,7 @@ export const crudTests = (
434
363
  const testRecord1: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 1', order: '1', select: 'Option 1' };
435
364
  const testRecord2: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 2', order: '2', select: 'Option 2' };
436
365
  const testRecord3: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 3', order: '3', select: 'Option 3' };
437
- const table: Table<ReservedWordTest> = new ReservedWordTestTable();
366
+ const table: Table<ReservedWordTest> = crudTestTables.ReservedWordTest;
438
367
 
439
368
  const insertedRecord1 = await db.insert(table, testRecord1);
440
369
  const insertedRecord2 = await db.insert(table, testRecord2);
@@ -463,7 +392,7 @@ export const crudTests = (
463
392
  test('Query with reserved words and subquery', async () => {
464
393
  const testRecord1: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 1', order: '1', select: 'Option 1' };
465
394
  const testRecord2: Omit<ReservedWordTest, keyof Record> = { name: 'Test Name 2', order: '2', select: 'Option 2' };
466
- const table: Table<ReservedWordTest> = new ReservedWordTestTable();
395
+ const table: Table<ReservedWordTest> = crudTestTables.ReservedWordTest;
467
396
 
468
397
  const insertedRecord1 = await db.insert(table, testRecord1);
469
398
  const insertedRecord2 = await db.insert(table, testRecord2);
@@ -497,7 +426,7 @@ export const crudTests = (
497
426
  isRemote: true,
498
427
  startDate: new Date('2024-04-01T00:00:00Z'),
499
428
  };
500
- const emplyeeTable: Table<Employee> = new EmployeeTestTable();
429
+ const emplyeeTable: Table<Employee> = crudTestTables.Employee;
501
430
  const insertedEmployee = await db.insert(emplyeeTable, testEmployee);
502
431
 
503
432
  const queryNameInsensitive = new QueryBuilder<Employee>(emplyeeTable.name).condition(