@antelopejs/interface-database-decorators 0.0.2
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/LICENSE +190 -0
- package/README.md +42 -0
- package/dist/antelope.test.d.ts +2 -0
- package/dist/antelope.test.js +52 -0
- package/dist/antelope.test.js.map +1 -0
- package/dist/common.d.ts +22 -0
- package/dist/common.js +36 -0
- package/dist/common.js.map +1 -0
- package/dist/database.d.ts +2 -0
- package/dist/database.js +71 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/model.d.ts +101 -0
- package/dist/model.js +161 -0
- package/dist/model.js.map +1 -0
- package/dist/modifiers/common.d.ts +87 -0
- package/dist/modifiers/common.js +370 -0
- package/dist/modifiers/common.js.map +1 -0
- package/dist/modifiers/encryption.d.ts +37 -0
- package/dist/modifiers/encryption.js +79 -0
- package/dist/modifiers/encryption.js.map +1 -0
- package/dist/modifiers/hash.d.ts +41 -0
- package/dist/modifiers/hash.js +54 -0
- package/dist/modifiers/hash.js.map +1 -0
- package/dist/modifiers/index.d.ts +4 -0
- package/dist/modifiers/index.js +21 -0
- package/dist/modifiers/index.js.map +1 -0
- package/dist/modifiers/localization.d.ts +43 -0
- package/dist/modifiers/localization.js +57 -0
- package/dist/modifiers/localization.js.map +1 -0
- package/dist/schema.d.ts +4 -0
- package/dist/schema.js +21 -0
- package/dist/schema.js.map +1 -0
- package/dist/table.d.ts +53 -0
- package/dist/table.js +63 -0
- package/dist/table.js.map +1 -0
- package/dist/tests/common.test.d.ts +1 -0
- package/dist/tests/common.test.js +52 -0
- package/dist/tests/common.test.js.map +1 -0
- package/dist/tests/database.test.d.ts +1 -0
- package/dist/tests/database.test.js +184 -0
- package/dist/tests/database.test.js.map +1 -0
- package/dist/tests/integration.test.d.ts +1 -0
- package/dist/tests/integration.test.js +399 -0
- package/dist/tests/integration.test.js.map +1 -0
- package/dist/tests/model.test.d.ts +1 -0
- package/dist/tests/model.test.js +186 -0
- package/dist/tests/model.test.js.map +1 -0
- package/dist/tests/modifiers/common.test.d.ts +1 -0
- package/dist/tests/modifiers/common.test.js +165 -0
- package/dist/tests/modifiers/common.test.js.map +1 -0
- package/dist/tests/modifiers/encryption.test.d.ts +1 -0
- package/dist/tests/modifiers/encryption.test.js +161 -0
- package/dist/tests/modifiers/encryption.test.js.map +1 -0
- package/dist/tests/modifiers/hash.test.d.ts +1 -0
- package/dist/tests/modifiers/hash.test.js +126 -0
- package/dist/tests/modifiers/hash.test.js.map +1 -0
- package/dist/tests/modifiers/localization.test.d.ts +1 -0
- package/dist/tests/modifiers/localization.test.js +175 -0
- package/dist/tests/modifiers/localization.test.js.map +1 -0
- package/dist/tests/schema.test.d.ts +1 -0
- package/dist/tests/schema.test.js +102 -0
- package/dist/tests/schema.test.js.map +1 -0
- package/dist/tests/table.test.d.ts +1 -0
- package/dist/tests/table.test.js +112 -0
- package/dist/tests/table.test.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const interface_database_1 = require("@antelopejs/interface-database");
|
|
13
|
+
const database_1 = require("@antelopejs/interface-database-decorators/database");
|
|
14
|
+
const schema_1 = require("@antelopejs/interface-database-decorators/schema");
|
|
15
|
+
const table_1 = require("@antelopejs/interface-database-decorators/table");
|
|
16
|
+
const chai_1 = require("chai");
|
|
17
|
+
describe("Database - initialization", () => {
|
|
18
|
+
it("creates a schema instance", async () => CreateSchemaInstanceTest());
|
|
19
|
+
it("creates tables with default primary key", async () => CreateTablesWithDefaultPrimaryKeyTest());
|
|
20
|
+
it("creates tables with indexes", async () => CreateTablesWithIndexesTest());
|
|
21
|
+
it("creates tables with grouped indexes", async () => CreateTablesWithGroupedIndexesTest());
|
|
22
|
+
it("creates tables with fixture data", async () => CreateTablesWithFixtureDataTest());
|
|
23
|
+
it("handles multiple tables", async () => HandleMultipleTablesTest());
|
|
24
|
+
it("creates multiple instances for same schema", async () => CreateMultipleInstancesTest());
|
|
25
|
+
it("inserts fixtures for each instance", async () => InsertFixturesForEachInstanceTest());
|
|
26
|
+
});
|
|
27
|
+
async function CreateSchemaInstanceTest() {
|
|
28
|
+
let _TestTable = class _TestTable extends table_1.Table {
|
|
29
|
+
};
|
|
30
|
+
_TestTable = __decorate([
|
|
31
|
+
(0, schema_1.RegisterTable)("test_table", "test-new-schema")
|
|
32
|
+
], _TestTable);
|
|
33
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-new-schema", "test-new-instance");
|
|
34
|
+
const schema = interface_database_1.Schema.get("test-new-schema");
|
|
35
|
+
(0, chai_1.expect)(schema).to.not.equal(undefined);
|
|
36
|
+
}
|
|
37
|
+
async function CreateTablesWithDefaultPrimaryKeyTest() {
|
|
38
|
+
let _TestTable = class _TestTable extends table_1.Table {
|
|
39
|
+
};
|
|
40
|
+
_TestTable = __decorate([
|
|
41
|
+
(0, schema_1.RegisterTable)("pk_table", "test-pk-schema")
|
|
42
|
+
], _TestTable);
|
|
43
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-pk-schema", "test-pk-instance");
|
|
44
|
+
const schema = interface_database_1.Schema.get("test-pk-schema");
|
|
45
|
+
(0, chai_1.expect)(schema).to.not.equal(undefined);
|
|
46
|
+
}
|
|
47
|
+
async function CreateTablesWithIndexesTest() {
|
|
48
|
+
let _TestTable = class _TestTable extends table_1.Table {
|
|
49
|
+
};
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, table_1.Index)(),
|
|
52
|
+
__metadata("design:type", String)
|
|
53
|
+
], _TestTable.prototype, "name", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, table_1.Index)(),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], _TestTable.prototype, "email", void 0);
|
|
58
|
+
_TestTable = __decorate([
|
|
59
|
+
(0, schema_1.RegisterTable)("idx_table", "test-idx-schema")
|
|
60
|
+
], _TestTable);
|
|
61
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-idx-schema", "test-idx-instance");
|
|
62
|
+
const schema = interface_database_1.Schema.get("test-idx-schema");
|
|
63
|
+
(0, chai_1.expect)(schema).to.not.equal(undefined);
|
|
64
|
+
}
|
|
65
|
+
async function CreateTablesWithGroupedIndexesTest() {
|
|
66
|
+
let _TestTable = class _TestTable extends table_1.Table {
|
|
67
|
+
};
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, table_1.Index)({ group: "user_search" }),
|
|
70
|
+
__metadata("design:type", String)
|
|
71
|
+
], _TestTable.prototype, "name", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, table_1.Index)({ group: "user_search" }),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], _TestTable.prototype, "email", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, table_1.Index)({ group: "age_range" }),
|
|
78
|
+
__metadata("design:type", Number)
|
|
79
|
+
], _TestTable.prototype, "age", void 0);
|
|
80
|
+
_TestTable = __decorate([
|
|
81
|
+
(0, schema_1.RegisterTable)("grp_table", "test-grp-schema")
|
|
82
|
+
], _TestTable);
|
|
83
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-grp-schema", "test-grp-instance");
|
|
84
|
+
const schema = interface_database_1.Schema.get("test-grp-schema");
|
|
85
|
+
(0, chai_1.expect)(schema).to.not.equal(undefined);
|
|
86
|
+
}
|
|
87
|
+
async function CreateTablesWithFixtureDataTest() {
|
|
88
|
+
const testData = [
|
|
89
|
+
{ id: "1", name: "Test User 1" },
|
|
90
|
+
{ id: "2", name: "Test User 2" },
|
|
91
|
+
];
|
|
92
|
+
let _TestTable = class _TestTable extends table_1.Table {
|
|
93
|
+
};
|
|
94
|
+
_TestTable = __decorate([
|
|
95
|
+
(0, table_1.Fixture)(() => testData),
|
|
96
|
+
(0, schema_1.RegisterTable)("fixture_table", "test-fixture-schema")
|
|
97
|
+
], _TestTable);
|
|
98
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-fixture-schema", "test-fixture-instance");
|
|
99
|
+
const schema = interface_database_1.Schema.get("test-fixture-schema");
|
|
100
|
+
if (!schema)
|
|
101
|
+
throw new Error("Schema not found");
|
|
102
|
+
const result = await schema
|
|
103
|
+
.instance("test-fixture-instance")
|
|
104
|
+
.table("fixture_table");
|
|
105
|
+
for (const val of result) {
|
|
106
|
+
delete val._id;
|
|
107
|
+
}
|
|
108
|
+
const sortById = (a, b) => a.id.localeCompare(b.id);
|
|
109
|
+
(0, chai_1.expect)(result.sort(sortById)).to.deep.equal(testData.sort(sortById));
|
|
110
|
+
}
|
|
111
|
+
async function HandleMultipleTablesTest() {
|
|
112
|
+
let _UserTable = class _UserTable extends table_1.Table {
|
|
113
|
+
};
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, table_1.Index)(),
|
|
116
|
+
__metadata("design:type", String)
|
|
117
|
+
], _UserTable.prototype, "email", void 0);
|
|
118
|
+
_UserTable = __decorate([
|
|
119
|
+
(0, schema_1.RegisterTable)("users", "test-multi-table-schema")
|
|
120
|
+
], _UserTable);
|
|
121
|
+
let _ProductTable = class _ProductTable extends table_1.Table {
|
|
122
|
+
};
|
|
123
|
+
__decorate([
|
|
124
|
+
(0, table_1.Index)(),
|
|
125
|
+
__metadata("design:type", String)
|
|
126
|
+
], _ProductTable.prototype, "name", void 0);
|
|
127
|
+
_ProductTable = __decorate([
|
|
128
|
+
(0, schema_1.RegisterTable)("products", "test-multi-table-schema")
|
|
129
|
+
], _ProductTable);
|
|
130
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-multi-table-schema", "test-multi-table-instance");
|
|
131
|
+
const schema = interface_database_1.Schema.get("test-multi-table-schema");
|
|
132
|
+
(0, chai_1.expect)(schema).to.not.equal(undefined);
|
|
133
|
+
}
|
|
134
|
+
async function CreateMultipleInstancesTest() {
|
|
135
|
+
let _TenantTable = class _TenantTable extends table_1.Table {
|
|
136
|
+
};
|
|
137
|
+
_TenantTable = __decorate([
|
|
138
|
+
(0, schema_1.RegisterTable)("tenant_table", "test-multi-instance-schema")
|
|
139
|
+
], _TenantTable);
|
|
140
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-multi-instance-schema", "tenant-1");
|
|
141
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-multi-instance-schema", "tenant-2");
|
|
142
|
+
const schema1 = interface_database_1.Schema.get("test-multi-instance-schema");
|
|
143
|
+
const schema2 = interface_database_1.Schema.get("test-multi-instance-schema");
|
|
144
|
+
(0, chai_1.expect)(schema1).to.not.equal(undefined);
|
|
145
|
+
(0, chai_1.expect)(schema2).to.not.equal(undefined);
|
|
146
|
+
(0, chai_1.expect)(schema1).to.equal(schema2);
|
|
147
|
+
const instance1 = schema1?.instance("tenant-1");
|
|
148
|
+
const instance2 = schema2?.instance("tenant-2");
|
|
149
|
+
(0, chai_1.expect)(instance1).to.not.equal(undefined);
|
|
150
|
+
(0, chai_1.expect)(instance2).to.not.equal(undefined);
|
|
151
|
+
}
|
|
152
|
+
async function InsertFixturesForEachInstanceTest() {
|
|
153
|
+
const testData = [
|
|
154
|
+
{ id: "1", name: "Fixture 1" },
|
|
155
|
+
{ id: "2", name: "Fixture 2" },
|
|
156
|
+
];
|
|
157
|
+
let _FixtureTable = class _FixtureTable extends table_1.Table {
|
|
158
|
+
};
|
|
159
|
+
_FixtureTable = __decorate([
|
|
160
|
+
(0, table_1.Fixture)(() => testData),
|
|
161
|
+
(0, schema_1.RegisterTable)("fixture_multi", "test-fixture-multi-schema")
|
|
162
|
+
], _FixtureTable);
|
|
163
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-fixture-multi-schema", "fixture-inst-1");
|
|
164
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("test-fixture-multi-schema", "fixture-inst-2");
|
|
165
|
+
const schema = interface_database_1.Schema.get("test-fixture-multi-schema");
|
|
166
|
+
if (!schema)
|
|
167
|
+
throw new Error("Schema not found");
|
|
168
|
+
const sortById = (a, b) => a.id.localeCompare(b.id);
|
|
169
|
+
const result1 = await schema
|
|
170
|
+
.instance("fixture-inst-1")
|
|
171
|
+
.table("fixture_multi");
|
|
172
|
+
for (const val of result1) {
|
|
173
|
+
delete val._id;
|
|
174
|
+
}
|
|
175
|
+
(0, chai_1.expect)(result1.sort(sortById)).to.deep.equal(testData.sort(sortById));
|
|
176
|
+
const result2 = await schema
|
|
177
|
+
.instance("fixture-inst-2")
|
|
178
|
+
.table("fixture_multi");
|
|
179
|
+
for (const val of result2) {
|
|
180
|
+
delete val._id;
|
|
181
|
+
}
|
|
182
|
+
(0, chai_1.expect)(result2.sort(sortById)).to.deep.equal(testData.sort(sortById));
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=database.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.test.js","sourceRoot":"","sources":["../../src/tests/database.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const interface_database_1 = require("@antelopejs/interface-database");
|
|
13
|
+
const database_1 = require("@antelopejs/interface-database-decorators/database");
|
|
14
|
+
const model_1 = require("@antelopejs/interface-database-decorators/model");
|
|
15
|
+
const encryption_1 = require("@antelopejs/interface-database-decorators/modifiers/encryption");
|
|
16
|
+
const hash_1 = require("@antelopejs/interface-database-decorators/modifiers/hash");
|
|
17
|
+
const localization_1 = require("@antelopejs/interface-database-decorators/modifiers/localization");
|
|
18
|
+
const schema_1 = require("@antelopejs/interface-database-decorators/schema");
|
|
19
|
+
const table_1 = require("@antelopejs/interface-database-decorators/table");
|
|
20
|
+
const chai_1 = require("chai");
|
|
21
|
+
function getDatabase(schemaId, instanceId) {
|
|
22
|
+
const instance = interface_database_1.Schema.get(schemaId)?.instance(instanceId);
|
|
23
|
+
if (!instance)
|
|
24
|
+
throw new Error(`Database not found: ${schemaId}/${instanceId}`);
|
|
25
|
+
return instance;
|
|
26
|
+
}
|
|
27
|
+
describe("Integration - real database operations", () => {
|
|
28
|
+
it("creates and queries user with modifiers", async () => CreateAndQueryUserWithModifiersTest());
|
|
29
|
+
it("performs CRUD operations on products", async () => PerformCrudOperationsOnProductsTest());
|
|
30
|
+
it("handles localized content", async () => HandleLocalizedContentTest());
|
|
31
|
+
it("manages encrypted sensitive data", async () => ManageEncryptedSensitiveDataTest());
|
|
32
|
+
it("validates hashed passwords", async () => ValidateHashedPasswordsTest());
|
|
33
|
+
it("works with schema registration", async () => WorkWithSchemaRegistrationTest());
|
|
34
|
+
it("handles complex relationships", async () => HandleComplexRelationshipsTest());
|
|
35
|
+
it("performs bulk operations", async () => PerformBulkOperationsTest());
|
|
36
|
+
it("manages database initialization", async () => ManageDatabaseInitializationTest());
|
|
37
|
+
});
|
|
38
|
+
async function CreateAndQueryUserWithModifiersTest() {
|
|
39
|
+
let User = class User extends table_1.Table.with(hash_1.HashModifier, encryption_1.EncryptionModifier) {
|
|
40
|
+
};
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, table_1.Index)(),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], User.prototype, "email", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, hash_1.Hashed)({ algorithm: "sha256" }),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], User.prototype, "password", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, encryption_1.Encrypted)({ secretKey: "12345678901234567890123456789012" }),
|
|
51
|
+
__metadata("design:type", Object)
|
|
52
|
+
], User.prototype, "secretData", void 0);
|
|
53
|
+
User = __decorate([
|
|
54
|
+
(0, schema_1.RegisterTable)("users", "integration-modifiers-schema")
|
|
55
|
+
], User);
|
|
56
|
+
const UserModel = (0, model_1.BasicDataModel)(User, "users");
|
|
57
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-modifiers-schema", "test-integration-db");
|
|
58
|
+
const schemaInstance = getDatabase("integration-modifiers-schema", "test-integration-db");
|
|
59
|
+
const userModel = new UserModel(schemaInstance);
|
|
60
|
+
const userData = {
|
|
61
|
+
email: "test@example.com",
|
|
62
|
+
password: "securePassword123",
|
|
63
|
+
secretData: { token: "secret-token-123" },
|
|
64
|
+
name: "John Doe",
|
|
65
|
+
age: 30,
|
|
66
|
+
};
|
|
67
|
+
const insertResult = await userModel.insert(userData);
|
|
68
|
+
(0, chai_1.expect)(insertResult).to.have.length(1);
|
|
69
|
+
const userId = insertResult[0];
|
|
70
|
+
const retrievedUserFromModel = await userModel.get(userId);
|
|
71
|
+
const retrievedUserFromDatabase = await schemaInstance
|
|
72
|
+
.table("users")
|
|
73
|
+
.get(userId)
|
|
74
|
+
.run();
|
|
75
|
+
(0, chai_1.expect)(retrievedUserFromModel)
|
|
76
|
+
.to.have.property("email")
|
|
77
|
+
.that.equals("test@example.com");
|
|
78
|
+
(0, chai_1.expect)(retrievedUserFromModel)
|
|
79
|
+
.to.have.property("name")
|
|
80
|
+
.that.equals("John Doe");
|
|
81
|
+
(0, chai_1.expect)(retrievedUserFromModel).to.have.property("age").that.equals(30);
|
|
82
|
+
(0, chai_1.expect)(retrievedUserFromModel?.password).to.not.equal("securePassword123");
|
|
83
|
+
(0, chai_1.expect)(retrievedUserFromModel?.secretData).to.deep.equal({
|
|
84
|
+
token: "secret-token-123",
|
|
85
|
+
});
|
|
86
|
+
(0, chai_1.expect)(retrievedUserFromDatabase?.secretData).to.not.deep.equal({
|
|
87
|
+
token: "secret-token-123",
|
|
88
|
+
});
|
|
89
|
+
if (retrievedUserFromModel?.testHash) {
|
|
90
|
+
const isPasswordValid = retrievedUserFromModel.testHash("password", "securePassword123");
|
|
91
|
+
(0, chai_1.expect)(isPasswordValid).to.equal(true);
|
|
92
|
+
}
|
|
93
|
+
const dbUser = (await schemaInstance.table("users").get(userId).run());
|
|
94
|
+
(0, chai_1.expect)(dbUser).to.have.property("email").that.equals("test@example.com");
|
|
95
|
+
(0, chai_1.expect)(dbUser).to.have.property("name").that.equals("John Doe");
|
|
96
|
+
}
|
|
97
|
+
async function PerformCrudOperationsOnProductsTest() {
|
|
98
|
+
let Product = class Product extends table_1.Table {
|
|
99
|
+
};
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, table_1.Index)(),
|
|
102
|
+
__metadata("design:type", String)
|
|
103
|
+
], Product.prototype, "name", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, table_1.Index)(),
|
|
106
|
+
__metadata("design:type", String)
|
|
107
|
+
], Product.prototype, "category", void 0);
|
|
108
|
+
Product = __decorate([
|
|
109
|
+
(0, schema_1.RegisterTable)("products", "integration-crud-schema")
|
|
110
|
+
], Product);
|
|
111
|
+
const ProductModel = (0, model_1.BasicDataModel)(Product, "products");
|
|
112
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-crud-schema", "test-crud-db");
|
|
113
|
+
const schemaInstance = getDatabase("integration-crud-schema", "test-crud-db");
|
|
114
|
+
const productModel = new ProductModel(schemaInstance);
|
|
115
|
+
const productData = {
|
|
116
|
+
name: "Test Product",
|
|
117
|
+
category: "Electronics",
|
|
118
|
+
price: 99.99,
|
|
119
|
+
stockQuantity: 50,
|
|
120
|
+
isActive: true,
|
|
121
|
+
};
|
|
122
|
+
const insertResult = await productModel.insert(productData);
|
|
123
|
+
const productId = insertResult[0];
|
|
124
|
+
const retrievedProduct = await productModel.get(productId);
|
|
125
|
+
(0, chai_1.expect)(retrievedProduct).to.have.property("name").that.equals("Test Product");
|
|
126
|
+
(0, chai_1.expect)(retrievedProduct).to.have.property("price").that.equals(99.99);
|
|
127
|
+
const updateData = { price: 89.99, stockQuantity: 45 };
|
|
128
|
+
await productModel.update(productId, updateData);
|
|
129
|
+
const updatedProduct = await productModel.get(productId);
|
|
130
|
+
(0, chai_1.expect)(updatedProduct).to.have.property("price").that.equals(89.99);
|
|
131
|
+
(0, chai_1.expect)(updatedProduct).to.have.property("stockQuantity").that.equals(45);
|
|
132
|
+
await productModel.delete(productId);
|
|
133
|
+
const deletedProduct = await productModel.get(productId);
|
|
134
|
+
(0, chai_1.expect)(deletedProduct).to.equal(undefined);
|
|
135
|
+
}
|
|
136
|
+
async function HandleLocalizedContentTest() {
|
|
137
|
+
let LocalizedContent = class LocalizedContent extends table_1.Table.with(localization_1.LocalizationModifier) {
|
|
138
|
+
};
|
|
139
|
+
__decorate([
|
|
140
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
141
|
+
__metadata("design:type", String)
|
|
142
|
+
], LocalizedContent.prototype, "title", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
145
|
+
__metadata("design:type", String)
|
|
146
|
+
], LocalizedContent.prototype, "description", void 0);
|
|
147
|
+
LocalizedContent = __decorate([
|
|
148
|
+
(0, schema_1.RegisterTable)("localized_content", "integration-l10n-schema")
|
|
149
|
+
], LocalizedContent);
|
|
150
|
+
const ContentModel = (0, model_1.BasicDataModel)(LocalizedContent, "localized_content");
|
|
151
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-l10n-schema", "test-localization-db");
|
|
152
|
+
const schemaInstance = getDatabase("integration-l10n-schema", "test-localization-db");
|
|
153
|
+
const contentModel = new ContentModel(schemaInstance);
|
|
154
|
+
const content = new LocalizedContent();
|
|
155
|
+
content._id = "content-123";
|
|
156
|
+
content.category = "News";
|
|
157
|
+
content.localize("en").title = "English Title";
|
|
158
|
+
content.localize("fr").title = "French Title";
|
|
159
|
+
content.localize("en").description = "English Description";
|
|
160
|
+
content.localize("fr").description = "French Description";
|
|
161
|
+
const insertResult = await contentModel.insert(content);
|
|
162
|
+
const contentId = insertResult[0];
|
|
163
|
+
const retrievedContent = await contentModel.get(contentId);
|
|
164
|
+
(0, chai_1.expect)(retrievedContent).to.have.property("title");
|
|
165
|
+
(0, chai_1.expect)(retrievedContent).to.have.property("description");
|
|
166
|
+
(0, chai_1.expect)(retrievedContent).to.have.property("category").that.equals("News");
|
|
167
|
+
if (retrievedContent?.localize) {
|
|
168
|
+
const frenchContent = retrievedContent.localize("fr");
|
|
169
|
+
(0, chai_1.expect)(frenchContent.title).to.equal("French Title");
|
|
170
|
+
(0, chai_1.expect)(frenchContent.description).to.equal("French Description");
|
|
171
|
+
const englishContent = retrievedContent.localize("en");
|
|
172
|
+
(0, chai_1.expect)(englishContent.title).to.equal("English Title");
|
|
173
|
+
(0, chai_1.expect)(englishContent.description).to.equal("English Description");
|
|
174
|
+
const germanContent = retrievedContent.localize("de");
|
|
175
|
+
(0, chai_1.expect)(germanContent.title).to.equal("English Title");
|
|
176
|
+
(0, chai_1.expect)(germanContent.description).to.equal("English Description");
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async function ManageEncryptedSensitiveDataTest() {
|
|
180
|
+
let SensitiveData = class SensitiveData extends table_1.Table.with(encryption_1.EncryptionModifier) {
|
|
181
|
+
};
|
|
182
|
+
__decorate([
|
|
183
|
+
(0, encryption_1.Encrypted)({ secretKey: "12345678901234567890123456789012" }),
|
|
184
|
+
__metadata("design:type", String)
|
|
185
|
+
], SensitiveData.prototype, "creditCard", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
(0, encryption_1.Encrypted)({ secretKey: "12345678901234567890123456789012" }),
|
|
188
|
+
__metadata("design:type", String)
|
|
189
|
+
], SensitiveData.prototype, "ssn", void 0);
|
|
190
|
+
SensitiveData = __decorate([
|
|
191
|
+
(0, schema_1.RegisterTable)("sensitive_data", "integration-encrypt-schema")
|
|
192
|
+
], SensitiveData);
|
|
193
|
+
const SensitiveDataModel = (0, model_1.BasicDataModel)(SensitiveData, "sensitive_data");
|
|
194
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-encrypt-schema", "test-encryption-db");
|
|
195
|
+
const schemaInstance = getDatabase("integration-encrypt-schema", "test-encryption-db");
|
|
196
|
+
const sensitiveDataModel = new SensitiveDataModel(schemaInstance);
|
|
197
|
+
const sensitiveData = {
|
|
198
|
+
creditCard: "4111-1111-1111-1111",
|
|
199
|
+
ssn: "123-45-6789",
|
|
200
|
+
userId: "user123",
|
|
201
|
+
};
|
|
202
|
+
const insertResult = await sensitiveDataModel.insert(sensitiveData);
|
|
203
|
+
const dataId = insertResult[0];
|
|
204
|
+
const retrievedData = await sensitiveDataModel.get(dataId);
|
|
205
|
+
(0, chai_1.expect)(retrievedData).to.have.property("userId").that.equals("user123");
|
|
206
|
+
(0, chai_1.expect)(retrievedData?.creditCard).to.equal("4111-1111-1111-1111");
|
|
207
|
+
(0, chai_1.expect)(retrievedData?.ssn).to.equal("123-45-6789");
|
|
208
|
+
const dbData = (await schemaInstance
|
|
209
|
+
.table("sensitive_data")
|
|
210
|
+
.get(dataId)
|
|
211
|
+
.run());
|
|
212
|
+
(0, chai_1.expect)(dbData).to.have.property("userId").that.equals("user123");
|
|
213
|
+
(0, chai_1.expect)(dbData?.creditCard).to.not.equal("4111-1111-1111-1111");
|
|
214
|
+
(0, chai_1.expect)(dbData?.ssn).to.not.equal("123-45-6789");
|
|
215
|
+
}
|
|
216
|
+
async function ValidateHashedPasswordsTest() {
|
|
217
|
+
let UserAccount = class UserAccount extends table_1.Table.with(hash_1.HashModifier) {
|
|
218
|
+
};
|
|
219
|
+
__decorate([
|
|
220
|
+
(0, table_1.Index)(),
|
|
221
|
+
__metadata("design:type", String)
|
|
222
|
+
], UserAccount.prototype, "username", void 0);
|
|
223
|
+
__decorate([
|
|
224
|
+
(0, hash_1.Hashed)({ algorithm: "sha256" }),
|
|
225
|
+
__metadata("design:type", String)
|
|
226
|
+
], UserAccount.prototype, "password", void 0);
|
|
227
|
+
UserAccount = __decorate([
|
|
228
|
+
(0, schema_1.RegisterTable)("user_accounts", "integration-hash-schema")
|
|
229
|
+
], UserAccount);
|
|
230
|
+
const UserAccountModel = (0, model_1.BasicDataModel)(UserAccount, "user_accounts");
|
|
231
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-hash-schema", "test-hash-db");
|
|
232
|
+
const schemaInstance = getDatabase("integration-hash-schema", "test-hash-db");
|
|
233
|
+
const userAccountModel = new UserAccountModel(schemaInstance);
|
|
234
|
+
const accountData = {
|
|
235
|
+
username: "testuser",
|
|
236
|
+
password: "mySecurePassword123",
|
|
237
|
+
email: "test@example.com",
|
|
238
|
+
};
|
|
239
|
+
const insertResult = await userAccountModel.insert(accountData);
|
|
240
|
+
const accountId = insertResult[0];
|
|
241
|
+
const retrievedAccount = await userAccountModel.get(accountId);
|
|
242
|
+
(0, chai_1.expect)(retrievedAccount).to.have.property("username").that.equals("testuser");
|
|
243
|
+
(0, chai_1.expect)(retrievedAccount?.password).to.not.equal("mySecurePassword123");
|
|
244
|
+
if (retrievedAccount?.testHash) {
|
|
245
|
+
const isPasswordValid = retrievedAccount.testHash("password", "mySecurePassword123");
|
|
246
|
+
const isPasswordInvalid = retrievedAccount.testHash("password", "wrongPassword");
|
|
247
|
+
(0, chai_1.expect)(isPasswordValid).to.equal(true);
|
|
248
|
+
(0, chai_1.expect)(isPasswordInvalid).to.equal(false);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
async function WorkWithSchemaRegistrationTest() {
|
|
252
|
+
let SchemaUser = class SchemaUser extends table_1.Table {
|
|
253
|
+
};
|
|
254
|
+
__decorate([
|
|
255
|
+
(0, table_1.Index)(),
|
|
256
|
+
__metadata("design:type", String)
|
|
257
|
+
], SchemaUser.prototype, "email", void 0);
|
|
258
|
+
SchemaUser = __decorate([
|
|
259
|
+
(0, schema_1.RegisterTable)("schema_users", "integration-schema-reg")
|
|
260
|
+
], SchemaUser);
|
|
261
|
+
let SchemaProduct = class SchemaProduct extends table_1.Table {
|
|
262
|
+
};
|
|
263
|
+
__decorate([
|
|
264
|
+
(0, table_1.Index)(),
|
|
265
|
+
__metadata("design:type", String)
|
|
266
|
+
], SchemaProduct.prototype, "name", void 0);
|
|
267
|
+
SchemaProduct = __decorate([
|
|
268
|
+
(0, schema_1.RegisterTable)("schema_products", "integration-schema-reg")
|
|
269
|
+
], SchemaProduct);
|
|
270
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-schema-reg", "test-schema-integration-db");
|
|
271
|
+
const schemaInstance = getDatabase("integration-schema-reg", "test-schema-integration-db");
|
|
272
|
+
const UserModel = (0, model_1.BasicDataModel)(SchemaUser, "schema_users");
|
|
273
|
+
const ProductModel = (0, model_1.BasicDataModel)(SchemaProduct, "schema_products");
|
|
274
|
+
const userModel = new UserModel(schemaInstance);
|
|
275
|
+
const productModel = new ProductModel(schemaInstance);
|
|
276
|
+
const userData = { email: "user@example.com", name: "Test User" };
|
|
277
|
+
const productData = { name: "Test Product", price: 29.99 };
|
|
278
|
+
const userResult = await userModel.insert(userData);
|
|
279
|
+
const productResult = await productModel.insert(productData);
|
|
280
|
+
(0, chai_1.expect)(userResult).to.have.length(1);
|
|
281
|
+
(0, chai_1.expect)(productResult).to.have.length(1);
|
|
282
|
+
const retrievedUser = await userModel.get(userResult[0]);
|
|
283
|
+
const retrievedProduct = await productModel.get(productResult[0]);
|
|
284
|
+
(0, chai_1.expect)(retrievedUser)
|
|
285
|
+
.to.have.property("email")
|
|
286
|
+
.that.equals("user@example.com");
|
|
287
|
+
(0, chai_1.expect)(retrievedProduct).to.have.property("name").that.equals("Test Product");
|
|
288
|
+
}
|
|
289
|
+
async function HandleComplexRelationshipsTest() {
|
|
290
|
+
let Order = class Order extends table_1.Table {
|
|
291
|
+
};
|
|
292
|
+
__decorate([
|
|
293
|
+
(0, table_1.Index)(),
|
|
294
|
+
__metadata("design:type", String)
|
|
295
|
+
], Order.prototype, "customerId", void 0);
|
|
296
|
+
__decorate([
|
|
297
|
+
(0, table_1.Index)(),
|
|
298
|
+
__metadata("design:type", Date)
|
|
299
|
+
], Order.prototype, "orderDate", void 0);
|
|
300
|
+
Order = __decorate([
|
|
301
|
+
(0, schema_1.RegisterTable)("orders", "integration-rel-schema")
|
|
302
|
+
], Order);
|
|
303
|
+
let OrderItem = class OrderItem extends table_1.Table {
|
|
304
|
+
};
|
|
305
|
+
__decorate([
|
|
306
|
+
(0, table_1.Index)(),
|
|
307
|
+
__metadata("design:type", String)
|
|
308
|
+
], OrderItem.prototype, "orderId", void 0);
|
|
309
|
+
__decorate([
|
|
310
|
+
(0, table_1.Index)(),
|
|
311
|
+
__metadata("design:type", String)
|
|
312
|
+
], OrderItem.prototype, "productId", void 0);
|
|
313
|
+
OrderItem = __decorate([
|
|
314
|
+
(0, schema_1.RegisterTable)("order_items", "integration-rel-schema")
|
|
315
|
+
], OrderItem);
|
|
316
|
+
const OrderModel = (0, model_1.BasicDataModel)(Order, "orders");
|
|
317
|
+
const OrderItemModel = (0, model_1.BasicDataModel)(OrderItem, "order_items");
|
|
318
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-rel-schema", "test-relationships-db");
|
|
319
|
+
const schemaInstance = getDatabase("integration-rel-schema", "test-relationships-db");
|
|
320
|
+
const orderModel = new OrderModel(schemaInstance);
|
|
321
|
+
const orderItemModel = new OrderItemModel(schemaInstance);
|
|
322
|
+
const orderData = {
|
|
323
|
+
customerId: "customer123",
|
|
324
|
+
orderDate: new Date(),
|
|
325
|
+
totalAmount: 299.97,
|
|
326
|
+
status: "pending",
|
|
327
|
+
};
|
|
328
|
+
const orderResult = await orderModel.insert(orderData);
|
|
329
|
+
const orderId = orderResult[0];
|
|
330
|
+
const orderItemsData = [
|
|
331
|
+
{ orderId, productId: "product1", quantity: 2, unitPrice: 99.99 },
|
|
332
|
+
{ orderId, productId: "product2", quantity: 1, unitPrice: 99.99 },
|
|
333
|
+
];
|
|
334
|
+
const orderItemsResult = await orderItemModel.insert(orderItemsData);
|
|
335
|
+
(0, chai_1.expect)(orderItemsResult).to.have.length(2);
|
|
336
|
+
const retrievedOrder = await orderModel.get(orderId);
|
|
337
|
+
(0, chai_1.expect)(retrievedOrder)
|
|
338
|
+
.to.have.property("customerId")
|
|
339
|
+
.that.equals("customer123");
|
|
340
|
+
(0, chai_1.expect)(retrievedOrder).to.have.property("totalAmount").that.equals(299.97);
|
|
341
|
+
const orderItems = await orderItemModel.getBy("orderId", orderId);
|
|
342
|
+
(0, chai_1.expect)(orderItems).to.be.an("array");
|
|
343
|
+
(0, chai_1.expect)(orderItems).to.have.length(2);
|
|
344
|
+
}
|
|
345
|
+
async function PerformBulkOperationsTest() {
|
|
346
|
+
let BulkProduct = class BulkProduct extends table_1.Table {
|
|
347
|
+
};
|
|
348
|
+
__decorate([
|
|
349
|
+
(0, table_1.Index)(),
|
|
350
|
+
__metadata("design:type", String)
|
|
351
|
+
], BulkProduct.prototype, "category", void 0);
|
|
352
|
+
BulkProduct = __decorate([
|
|
353
|
+
(0, schema_1.RegisterTable)("bulk_products", "integration-bulk-schema")
|
|
354
|
+
], BulkProduct);
|
|
355
|
+
const BulkProductModel = (0, model_1.BasicDataModel)(BulkProduct, "bulk_products");
|
|
356
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-bulk-schema", "test-bulk-db");
|
|
357
|
+
const schemaInstance = getDatabase("integration-bulk-schema", "test-bulk-db");
|
|
358
|
+
const bulkProductModel = new BulkProductModel(schemaInstance);
|
|
359
|
+
const bulkData = [
|
|
360
|
+
{ name: "Product 1", category: "Electronics", price: 99.99 },
|
|
361
|
+
{ name: "Product 2", category: "Electronics", price: 149.99 },
|
|
362
|
+
{ name: "Product 3", category: "Books", price: 19.99 },
|
|
363
|
+
{ name: "Product 4", category: "Books", price: 29.99 },
|
|
364
|
+
{ name: "Product 5", category: "Clothing", price: 49.99 },
|
|
365
|
+
];
|
|
366
|
+
const insertResult = await bulkProductModel.insert(bulkData);
|
|
367
|
+
(0, chai_1.expect)(insertResult).to.have.length(5);
|
|
368
|
+
const allProducts = await bulkProductModel.getAll();
|
|
369
|
+
(0, chai_1.expect)(allProducts).to.be.an("array");
|
|
370
|
+
(0, chai_1.expect)(allProducts).to.have.length(5);
|
|
371
|
+
const electronicsProducts = await bulkProductModel.getBy("category", "Electronics");
|
|
372
|
+
(0, chai_1.expect)(electronicsProducts).to.be.an("array");
|
|
373
|
+
(0, chai_1.expect)(electronicsProducts).to.have.length(2);
|
|
374
|
+
const booksProducts = await bulkProductModel.getBy("category", "Books");
|
|
375
|
+
(0, chai_1.expect)(booksProducts).to.be.an("array");
|
|
376
|
+
(0, chai_1.expect)(booksProducts).to.have.length(2);
|
|
377
|
+
}
|
|
378
|
+
async function ManageDatabaseInitializationTest() {
|
|
379
|
+
let FixtureUser = class FixtureUser extends table_1.Table {
|
|
380
|
+
};
|
|
381
|
+
__decorate([
|
|
382
|
+
(0, table_1.Index)(),
|
|
383
|
+
__metadata("design:type", String)
|
|
384
|
+
], FixtureUser.prototype, "email", void 0);
|
|
385
|
+
FixtureUser = __decorate([
|
|
386
|
+
(0, table_1.Fixture)(() => [
|
|
387
|
+
{ id: "1", name: "Fixture User 1", email: "fixture1@example.com" },
|
|
388
|
+
{ id: "2", name: "Fixture User 2", email: "fixture2@example.com" },
|
|
389
|
+
]),
|
|
390
|
+
(0, schema_1.RegisterTable)("fixture_users", "integration-fixture-schema")
|
|
391
|
+
], FixtureUser);
|
|
392
|
+
await (0, database_1.CreateDatabaseSchemaInstance)("integration-fixture-schema", "test-fixture-db");
|
|
393
|
+
const schemaInstance = getDatabase("integration-fixture-schema", "test-fixture-db");
|
|
394
|
+
const FixtureUserModel = (0, model_1.BasicDataModel)(FixtureUser, "fixture_users");
|
|
395
|
+
const fixtureUserModel = new FixtureUserModel(schemaInstance);
|
|
396
|
+
const allUsers = await fixtureUserModel.getAll();
|
|
397
|
+
(0, chai_1.expect)(allUsers.length).to.be.greaterThan(0);
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|