@proteinjs/db 1.19.0 → 1.20.1
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.
- package/CHANGELOG.md +16 -0
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/test/index.d.ts +1 -1
- package/dist/generated/test/index.d.ts.map +1 -1
- package/dist/generated/test/index.js +52 -34
- package/dist/generated/test/index.js.map +1 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +1 -1
- package/dist/src/Db.d.ts +2 -2
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Db.js +6 -3
- package/dist/src/Db.js.map +1 -1
- package/dist/src/TableWatcherRunner.d.ts.map +1 -1
- package/dist/src/TableWatcherRunner.js +4 -1
- package/dist/src/TableWatcherRunner.js.map +1 -1
- package/dist/src/schema/TableManager.d.ts.map +1 -1
- package/dist/src/schema/TableManager.js +4 -1
- package/dist/src/schema/TableManager.js.map +1 -1
- package/dist/test/index.d.ts +13 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +29 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/reusable/CascadeDeleteTests.d.ts +1 -189
- package/dist/test/reusable/CascadeDeleteTests.d.ts.map +1 -1
- package/dist/test/reusable/CascadeDeleteTests.js +36 -393
- package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
- package/dist/test/reusable/ColumnTypesTests.d.ts +1 -52
- package/dist/test/reusable/ColumnTypesTests.d.ts.map +1 -1
- package/dist/test/reusable/ColumnTypesTests.js +20 -86
- package/dist/test/reusable/ColumnTypesTests.js.map +1 -1
- package/dist/test/reusable/CrudTests.d.ts +1 -50
- package/dist/test/reusable/CrudTests.d.ts.map +1 -1
- package/dist/test/reusable/CrudTests.js +37 -126
- package/dist/test/reusable/CrudTests.js.map +1 -1
- package/dist/test/reusable/DynamicReferenceColumnTests.d.ts +3 -0
- package/dist/test/reusable/DynamicReferenceColumnTests.d.ts.map +1 -0
- package/dist/test/reusable/DynamicReferenceColumnTests.js +429 -0
- package/dist/test/reusable/DynamicReferenceColumnTests.js.map +1 -0
- package/dist/test/reusable/TableManagerTests.d.ts +1 -2
- package/dist/test/reusable/TableManagerTests.d.ts.map +1 -1
- package/dist/test/reusable/TableManagerTests.js +57 -152
- package/dist/test/reusable/TableManagerTests.js.map +1 -1
- package/dist/test/reusable/TransactionTests.d.ts +1 -51
- package/dist/test/reusable/TransactionTests.d.ts.map +1 -1
- package/dist/test/reusable/TransactionTests.js +24 -111
- package/dist/test/reusable/TransactionTests.js.map +1 -1
- package/dist/test/util/DbTestEnvironment.d.ts +12 -0
- package/dist/test/util/DbTestEnvironment.d.ts.map +1 -0
- package/dist/test/util/DbTestEnvironment.js +125 -0
- package/dist/test/util/DbTestEnvironment.js.map +1 -0
- package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +191 -0
- package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/cascadeDeleteTestTables.js +234 -0
- package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -0
- package/dist/test/util/tables/columnTypesTestTables.d.ts +47 -0
- package/dist/test/util/tables/columnTypesTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/columnTypesTestTables.js +49 -0
- package/dist/test/util/tables/columnTypesTestTables.js.map +1 -0
- package/dist/test/util/tables/crudTestTables.d.ts +48 -0
- package/dist/test/util/tables/crudTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/crudTestTables.js +58 -0
- package/dist/test/util/tables/crudTestTables.js.map +1 -0
- package/dist/test/util/tables/dynamicReferenceColumnTestTables.d.ts +76 -0
- package/dist/test/util/tables/dynamicReferenceColumnTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/dynamicReferenceColumnTestTables.js +131 -0
- package/dist/test/util/tables/dynamicReferenceColumnTestTables.js.map +1 -0
- package/dist/test/util/tables/tableManagerTestTables.d.ts +86 -0
- package/dist/test/util/tables/tableManagerTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/tableManagerTestTables.js +131 -0
- package/dist/test/util/tables/tableManagerTestTables.js.map +1 -0
- package/dist/test/util/tables/transactionTestTables.d.ts +48 -0
- package/dist/test/util/tables/transactionTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/transactionTestTables.js +58 -0
- package/dist/test/util/tables/transactionTestTables.js.map +1 -0
- package/generated/index.ts +18 -15
- package/generated/test/index.ts +67 -46
- package/index.ts +0 -7
- package/package.json +29 -17
- package/src/Db.ts +8 -3
- package/src/TableWatcherRunner.ts +4 -1
- package/src/schema/TableManager.ts +4 -1
- package/test/index.ts +13 -0
- package/test/reusable/CascadeDeleteTests.ts +38 -320
- package/test/reusable/ColumnTypesTests.ts +9 -85
- package/test/reusable/CrudTests.ts +26 -97
- package/test/reusable/DynamicReferenceColumnTests.ts +342 -0
- package/test/reusable/TableManagerTests.ts +18 -97
- package/test/reusable/TransactionTests.ts +26 -93
- package/test/util/DbTestEnvironment.ts +46 -0
- package/test/util/tables/cascadeDeleteTestTables.ts +232 -0
- package/test/util/tables/columnTypesTestTables.ts +63 -0
- package/test/util/tables/crudTestTables.ts +44 -0
- package/test/util/tables/dynamicReferenceColumnTestTables.ts +87 -0
- package/test/util/tables/tableManagerTestTables.ts +98 -0
- package/test/util/tables/transactionTestTables.ts +44 -0
- package/tsconfig.json +7 -1
- package/LICENSE +0 -21
- package/dist/test/reusable/DynamicReferenceColumn.d.ts +0 -77
- package/dist/test/reusable/DynamicReferenceColumn.d.ts.map +0 -1
- package/dist/test/reusable/DynamicReferenceColumn.js +0 -656
- package/dist/test/reusable/DynamicReferenceColumn.js.map +0 -1
- package/test/reusable/DynamicReferenceColumn.ts +0 -487
|
@@ -1,74 +1,6 @@
|
|
|
1
|
-
import { Db, DbDriver } from '
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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,
|
|
11
|
+
const db = new Db(driver, undefined, transactionContextFactory);
|
|
12
|
+
const testEnv = new DbTestEnvironment(driver, dropTable);
|
|
80
13
|
|
|
81
|
-
beforeAll(async () =>
|
|
82
|
-
|
|
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> =
|
|
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> =
|
|
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 '
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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,
|
|
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
|
-
|
|
85
|
-
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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(
|