@antelopejs/interface-database-decorators 0.1.10 → 0.1.12
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/README.md +9 -7
- package/dist/common.js.map +1 -1
- package/dist/database.js +18 -2
- package/dist/database.js.map +1 -1
- package/dist/model.js +48 -29
- package/dist/model.js.map +1 -1
- package/dist/modifiers/common.d.ts +24 -4
- package/dist/modifiers/common.js +104 -130
- package/dist/modifiers/common.js.map +1 -1
- package/dist/modifiers/encryption.js +14 -9
- package/dist/modifiers/encryption.js.map +1 -1
- package/dist/modifiers/hash.d.ts +46 -4
- package/dist/modifiers/hash.js +172 -14
- package/dist/modifiers/hash.js.map +1 -1
- package/dist/modifiers/internal/kinds.d.ts +13 -0
- package/dist/modifiers/internal/kinds.js +33 -0
- package/dist/modifiers/internal/kinds.js.map +1 -0
- package/dist/modifiers/internal/records.d.ts +31 -0
- package/dist/modifiers/internal/records.js +56 -0
- package/dist/modifiers/internal/records.js.map +1 -0
- package/dist/modifiers/localization.js +4 -2
- package/dist/modifiers/localization.js.map +1 -1
- package/dist/schema.js +1 -2
- package/dist/schema.js.map +1 -1
- package/dist/table.js +21 -6
- package/dist/table.js.map +1 -1
- package/dist/tests/codec_helpers.d.ts +6 -2
- package/dist/tests/codec_helpers.js +18 -14
- package/dist/tests/codec_helpers.js.map +1 -1
- package/dist/tests/common.test.js +38 -46
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/cross_instance.test.js +27 -2
- package/dist/tests/cross_instance.test.js.map +1 -1
- package/dist/tests/database.test.js +278 -256
- package/dist/tests/database.test.js.map +1 -1
- package/dist/tests/hash_upgrade.test.d.ts +1 -0
- package/dist/tests/hash_upgrade.test.js +132 -0
- package/dist/tests/hash_upgrade.test.js.map +1 -0
- package/dist/tests/helpers/hash-rows.d.ts +40 -0
- package/dist/tests/helpers/hash-rows.js +41 -0
- package/dist/tests/helpers/hash-rows.js.map +1 -0
- package/dist/tests/helpers/other-instance.d.ts +1 -1
- package/dist/tests/helpers/other-instance.js +41 -9
- package/dist/tests/helpers/other-instance.js.map +1 -1
- package/dist/tests/integration.test.js +485 -485
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/model.test.js +293 -308
- package/dist/tests/model.test.js.map +1 -1
- package/dist/tests/modifiers/autodate.test.js +80 -86
- package/dist/tests/modifiers/autodate.test.js.map +1 -1
- package/dist/tests/modifiers/common.test.js +181 -195
- package/dist/tests/modifiers/common.test.js.map +1 -1
- package/dist/tests/modifiers/encryption.test.js +149 -155
- package/dist/tests/modifiers/encryption.test.js.map +1 -1
- package/dist/tests/modifiers/hash.test.js +386 -99
- package/dist/tests/modifiers/hash.test.js.map +1 -1
- package/dist/tests/modifiers/localization.test.js +186 -196
- package/dist/tests/modifiers/localization.test.js.map +1 -1
- package/dist/tests/partial_update.test.d.ts +1 -0
- package/dist/tests/partial_update.test.js +55 -0
- package/dist/tests/partial_update.test.js.map +1 -0
- package/dist/tests/relation.test.js +92 -97
- package/dist/tests/relation.test.js.map +1 -1
- package/dist/tests/schema.test.js +101 -106
- package/dist/tests/schema.test.js.map +1 -1
- package/dist/tests/table.test.js +124 -132
- package/dist/tests/table.test.js.map +1 -1
- package/docs/3.table-modifiers.md +36 -15
- package/package.json +14 -3
- package/skills/database-decorators-interface/SKILL.md +4 -2
- package/skills/database-decorators-interface/cases.json +71 -0
|
@@ -10,103 +10,98 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const chai_1 = require("chai");
|
|
13
|
-
const table_1 = require("
|
|
14
|
-
const common_1 = require("
|
|
15
|
-
const relation_1 = require("
|
|
13
|
+
const table_1 = require("../table");
|
|
14
|
+
const common_1 = require("../common");
|
|
15
|
+
const relation_1 = require("../relation");
|
|
16
16
|
describe("Relation - Relation decorator", () => {
|
|
17
|
-
it("stores relation options in metadata", async () =>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
it("stores relation options in metadata", async () => {
|
|
18
|
+
class TargetTable extends table_1.Table {
|
|
19
|
+
name;
|
|
20
|
+
}
|
|
21
|
+
class SourceTable extends table_1.Table {
|
|
22
|
+
target;
|
|
23
|
+
}
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, relation_1.Relation)({ to: () => TargetTable }),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], SourceTable.prototype, "target", void 0);
|
|
28
|
+
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
29
|
+
(0, chai_1.expect)(metadata.relations).to.have.property("target");
|
|
30
|
+
(0, chai_1.expect)(metadata.relations.target.to()).to.equal(TargetTable);
|
|
31
|
+
(0, chai_1.expect)(metadata.relations.target.toField).to.equal(undefined);
|
|
32
|
+
(0, chai_1.expect)(metadata.relations.target.many).to.equal(undefined);
|
|
33
|
+
});
|
|
34
|
+
it("stores toField and many options", async () => {
|
|
35
|
+
class TargetTable extends table_1.Table {
|
|
36
|
+
code;
|
|
37
|
+
}
|
|
38
|
+
class SourceTable extends table_1.Table {
|
|
39
|
+
targets;
|
|
40
|
+
}
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, relation_1.Relation)({ to: () => TargetTable, toField: "code", many: true }),
|
|
43
|
+
__metadata("design:type", Array)
|
|
44
|
+
], SourceTable.prototype, "targets", void 0);
|
|
45
|
+
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
46
|
+
(0, chai_1.expect)(metadata.relations.targets.toField).to.equal("code");
|
|
47
|
+
(0, chai_1.expect)(metadata.relations.targets.many).to.equal(true);
|
|
48
|
+
});
|
|
49
|
+
it("supports multiple relations on one class", async () => {
|
|
50
|
+
class UserTable extends table_1.Table {
|
|
51
|
+
name;
|
|
52
|
+
}
|
|
53
|
+
class RoleTable extends table_1.Table {
|
|
54
|
+
label;
|
|
55
|
+
}
|
|
56
|
+
class SourceTable extends table_1.Table {
|
|
57
|
+
owner;
|
|
58
|
+
roles;
|
|
59
|
+
}
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, relation_1.Relation)({ to: () => UserTable }),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], SourceTable.prototype, "owner", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, relation_1.Relation)({ to: () => RoleTable, many: true }),
|
|
66
|
+
__metadata("design:type", Array)
|
|
67
|
+
], SourceTable.prototype, "roles", void 0);
|
|
68
|
+
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
69
|
+
(0, chai_1.expect)(Object.keys(metadata.relations)).to.have.members(["owner", "roles"]);
|
|
70
|
+
(0, chai_1.expect)(metadata.relations.owner.to()).to.equal(UserTable);
|
|
71
|
+
(0, chai_1.expect)(metadata.relations.roles.to()).to.equal(RoleTable);
|
|
72
|
+
});
|
|
73
|
+
it("resolves forward references through the thunk", async () => {
|
|
74
|
+
class SourceTable extends table_1.Table {
|
|
75
|
+
later;
|
|
76
|
+
}
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, relation_1.Relation)({ to: () => LaterTable }),
|
|
79
|
+
__metadata("design:type", String)
|
|
80
|
+
], SourceTable.prototype, "later", void 0);
|
|
81
|
+
class LaterTable extends table_1.Table {
|
|
82
|
+
name;
|
|
83
|
+
}
|
|
84
|
+
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
85
|
+
(0, chai_1.expect)(metadata.relations.later.to()).to.equal(LaterTable);
|
|
86
|
+
});
|
|
87
|
+
it("keeps metadata separate between classes", async () => {
|
|
88
|
+
class TargetTable extends table_1.Table {
|
|
89
|
+
name;
|
|
90
|
+
}
|
|
91
|
+
class FirstTable extends table_1.Table {
|
|
92
|
+
target;
|
|
93
|
+
}
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, relation_1.Relation)({ to: () => TargetTable }),
|
|
96
|
+
__metadata("design:type", String)
|
|
97
|
+
], FirstTable.prototype, "target", void 0);
|
|
98
|
+
class SecondTable extends table_1.Table {
|
|
99
|
+
other;
|
|
100
|
+
}
|
|
101
|
+
const firstMetadata = (0, common_1.getMetadata)(FirstTable, relation_1.RelationStaticMetadata);
|
|
102
|
+
const secondMetadata = (0, common_1.getMetadata)(SecondTable, relation_1.RelationStaticMetadata);
|
|
103
|
+
(0, chai_1.expect)(firstMetadata.relations).to.have.property("target");
|
|
104
|
+
(0, chai_1.expect)(secondMetadata.relations).to.not.have.property("target");
|
|
105
|
+
});
|
|
22
106
|
});
|
|
23
|
-
async function StoreRelationOptionsInMetadataTest() {
|
|
24
|
-
class TargetTable extends table_1.Table {
|
|
25
|
-
name;
|
|
26
|
-
}
|
|
27
|
-
class SourceTable extends table_1.Table {
|
|
28
|
-
target;
|
|
29
|
-
}
|
|
30
|
-
__decorate([
|
|
31
|
-
(0, relation_1.Relation)({ to: () => TargetTable }),
|
|
32
|
-
__metadata("design:type", String)
|
|
33
|
-
], SourceTable.prototype, "target", void 0);
|
|
34
|
-
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
35
|
-
(0, chai_1.expect)(metadata.relations).to.have.property("target");
|
|
36
|
-
(0, chai_1.expect)(metadata.relations.target.to()).to.equal(TargetTable);
|
|
37
|
-
(0, chai_1.expect)(metadata.relations.target.toField).to.equal(undefined);
|
|
38
|
-
(0, chai_1.expect)(metadata.relations.target.many).to.equal(undefined);
|
|
39
|
-
}
|
|
40
|
-
async function StoreToFieldAndManyOptionsTest() {
|
|
41
|
-
class TargetTable extends table_1.Table {
|
|
42
|
-
code;
|
|
43
|
-
}
|
|
44
|
-
class SourceTable extends table_1.Table {
|
|
45
|
-
targets;
|
|
46
|
-
}
|
|
47
|
-
__decorate([
|
|
48
|
-
(0, relation_1.Relation)({ to: () => TargetTable, toField: "code", many: true }),
|
|
49
|
-
__metadata("design:type", Array)
|
|
50
|
-
], SourceTable.prototype, "targets", void 0);
|
|
51
|
-
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
52
|
-
(0, chai_1.expect)(metadata.relations.targets.toField).to.equal("code");
|
|
53
|
-
(0, chai_1.expect)(metadata.relations.targets.many).to.equal(true);
|
|
54
|
-
}
|
|
55
|
-
async function SupportMultipleRelationsOnOneClassTest() {
|
|
56
|
-
class UserTable extends table_1.Table {
|
|
57
|
-
name;
|
|
58
|
-
}
|
|
59
|
-
class RoleTable extends table_1.Table {
|
|
60
|
-
label;
|
|
61
|
-
}
|
|
62
|
-
class SourceTable extends table_1.Table {
|
|
63
|
-
owner;
|
|
64
|
-
roles;
|
|
65
|
-
}
|
|
66
|
-
__decorate([
|
|
67
|
-
(0, relation_1.Relation)({ to: () => UserTable }),
|
|
68
|
-
__metadata("design:type", String)
|
|
69
|
-
], SourceTable.prototype, "owner", void 0);
|
|
70
|
-
__decorate([
|
|
71
|
-
(0, relation_1.Relation)({ to: () => RoleTable, many: true }),
|
|
72
|
-
__metadata("design:type", Array)
|
|
73
|
-
], SourceTable.prototype, "roles", void 0);
|
|
74
|
-
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
75
|
-
(0, chai_1.expect)(Object.keys(metadata.relations)).to.have.members(["owner", "roles"]);
|
|
76
|
-
(0, chai_1.expect)(metadata.relations.owner.to()).to.equal(UserTable);
|
|
77
|
-
(0, chai_1.expect)(metadata.relations.roles.to()).to.equal(RoleTable);
|
|
78
|
-
}
|
|
79
|
-
async function ResolveForwardReferencesThroughThunkTest() {
|
|
80
|
-
class SourceTable extends table_1.Table {
|
|
81
|
-
later;
|
|
82
|
-
}
|
|
83
|
-
__decorate([
|
|
84
|
-
(0, relation_1.Relation)({ to: () => LaterTable }),
|
|
85
|
-
__metadata("design:type", String)
|
|
86
|
-
], SourceTable.prototype, "later", void 0);
|
|
87
|
-
class LaterTable extends table_1.Table {
|
|
88
|
-
name;
|
|
89
|
-
}
|
|
90
|
-
const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
|
|
91
|
-
(0, chai_1.expect)(metadata.relations.later.to()).to.equal(LaterTable);
|
|
92
|
-
}
|
|
93
|
-
async function KeepMetadataSeparateBetweenClassesTest() {
|
|
94
|
-
class TargetTable extends table_1.Table {
|
|
95
|
-
name;
|
|
96
|
-
}
|
|
97
|
-
class FirstTable extends table_1.Table {
|
|
98
|
-
target;
|
|
99
|
-
}
|
|
100
|
-
__decorate([
|
|
101
|
-
(0, relation_1.Relation)({ to: () => TargetTable }),
|
|
102
|
-
__metadata("design:type", String)
|
|
103
|
-
], FirstTable.prototype, "target", void 0);
|
|
104
|
-
class SecondTable extends table_1.Table {
|
|
105
|
-
other;
|
|
106
|
-
}
|
|
107
|
-
const firstMetadata = (0, common_1.getMetadata)(FirstTable, relation_1.RelationStaticMetadata);
|
|
108
|
-
const secondMetadata = (0, common_1.getMetadata)(SecondTable, relation_1.RelationStaticMetadata);
|
|
109
|
-
(0, chai_1.expect)(firstMetadata.relations).to.have.property("target");
|
|
110
|
-
(0, chai_1.expect)(secondMetadata.relations).to.not.have.property("target");
|
|
111
|
-
}
|
|
112
107
|
//# sourceMappingURL=relation.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.test.js","sourceRoot":"","sources":["../../src/tests/relation.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"relation.test.js","sourceRoot":"","sources":["../../src/tests/relation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,112 +10,107 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const chai_1 = require("chai");
|
|
13
|
-
const table_1 = require("
|
|
14
|
-
const common_1 = require("
|
|
15
|
-
const schema_1 = require("
|
|
13
|
+
const table_1 = require("../table");
|
|
14
|
+
const common_1 = require("../common");
|
|
15
|
+
const schema_1 = require("../schema");
|
|
16
16
|
describe("Schema - RegisterTable decorator", () => {
|
|
17
|
-
it("stores tableName and schemaName in metadata", async () =>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
it("stores tableName and schemaName in metadata", async () => {
|
|
18
|
+
let TestTable = class TestTable extends table_1.Table {
|
|
19
|
+
name;
|
|
20
|
+
};
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, table_1.Field)("string"),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], TestTable.prototype, "name", void 0);
|
|
25
|
+
TestTable = __decorate([
|
|
26
|
+
(0, schema_1.RegisterTable)("test_table", "test-schema")
|
|
27
|
+
], TestTable);
|
|
28
|
+
const metadata = (0, common_1.getMetadata)(TestTable, common_1.DatumStaticMetadata);
|
|
29
|
+
(0, chai_1.expect)(metadata.tableName).to.equal("test_table");
|
|
30
|
+
(0, chai_1.expect)(metadata.schemaName).to.equal("test-schema");
|
|
31
|
+
});
|
|
32
|
+
it("stores tableName for multiple classes", async () => {
|
|
33
|
+
let UserTable = class UserTable extends table_1.Table {
|
|
34
|
+
email;
|
|
35
|
+
name;
|
|
36
|
+
};
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, table_1.Index)(),
|
|
39
|
+
(0, table_1.Field)("string"),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], UserTable.prototype, "email", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, table_1.Field)("string"),
|
|
44
|
+
__metadata("design:type", String)
|
|
45
|
+
], UserTable.prototype, "name", void 0);
|
|
46
|
+
UserTable = __decorate([
|
|
47
|
+
(0, schema_1.RegisterTable)("user_table", "multi-schema")
|
|
48
|
+
], UserTable);
|
|
49
|
+
let ProductTable = class ProductTable extends table_1.Table {
|
|
50
|
+
name;
|
|
51
|
+
price;
|
|
52
|
+
};
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, table_1.Index)(),
|
|
55
|
+
(0, table_1.Field)("string"),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], ProductTable.prototype, "name", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, table_1.Field)("number"),
|
|
60
|
+
__metadata("design:type", Number)
|
|
61
|
+
], ProductTable.prototype, "price", void 0);
|
|
62
|
+
ProductTable = __decorate([
|
|
63
|
+
(0, schema_1.RegisterTable)("product_table", "multi-schema")
|
|
64
|
+
], ProductTable);
|
|
65
|
+
const userMetadata = (0, common_1.getMetadata)(UserTable, common_1.DatumStaticMetadata);
|
|
66
|
+
const productMetadata = (0, common_1.getMetadata)(ProductTable, common_1.DatumStaticMetadata);
|
|
67
|
+
(0, chai_1.expect)(userMetadata.tableName).to.equal("user_table");
|
|
68
|
+
(0, chai_1.expect)(userMetadata.schemaName).to.equal("multi-schema");
|
|
69
|
+
(0, chai_1.expect)(productMetadata.tableName).to.equal("product_table");
|
|
70
|
+
(0, chai_1.expect)(productMetadata.schemaName).to.equal("multi-schema");
|
|
71
|
+
});
|
|
72
|
+
it("preserves existing metadata", async () => {
|
|
73
|
+
let IndexedTable = class IndexedTable extends table_1.Table {
|
|
74
|
+
email;
|
|
75
|
+
name;
|
|
76
|
+
};
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, table_1.Index)(),
|
|
79
|
+
(0, table_1.Field)("string"),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], IndexedTable.prototype, "email", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, table_1.Field)("string"),
|
|
84
|
+
__metadata("design:type", String)
|
|
85
|
+
], IndexedTable.prototype, "name", void 0);
|
|
86
|
+
IndexedTable = __decorate([
|
|
87
|
+
(0, schema_1.RegisterTable)("indexed_table", "preserve-schema")
|
|
88
|
+
], IndexedTable);
|
|
89
|
+
const metadata = (0, common_1.getMetadata)(IndexedTable, common_1.DatumStaticMetadata);
|
|
90
|
+
(0, chai_1.expect)(metadata.tableName).to.equal("indexed_table");
|
|
91
|
+
(0, chai_1.expect)(metadata.schemaName).to.equal("preserve-schema");
|
|
92
|
+
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
93
|
+
(0, chai_1.expect)(metadata.indexes).to.have.property("email");
|
|
94
|
+
});
|
|
95
|
+
it("registers tables in schema registry", async () => {
|
|
96
|
+
let _RegUser = class _RegUser extends table_1.Table {
|
|
97
|
+
};
|
|
98
|
+
_RegUser = __decorate([
|
|
99
|
+
(0, schema_1.RegisterTable)("reg_users", "registry-schema")
|
|
100
|
+
], _RegUser);
|
|
101
|
+
let _RegProduct = class _RegProduct extends table_1.Table {
|
|
102
|
+
};
|
|
103
|
+
_RegProduct = __decorate([
|
|
104
|
+
(0, schema_1.RegisterTable)("reg_products", "registry-schema")
|
|
105
|
+
], _RegProduct);
|
|
106
|
+
const tables = (0, schema_1.getTablesForSchema)("registry-schema");
|
|
107
|
+
(0, chai_1.expect)(tables).to.not.equal(undefined);
|
|
108
|
+
(0, chai_1.expect)(tables).to.have.property("reg_users");
|
|
109
|
+
(0, chai_1.expect)(tables).to.have.property("reg_products");
|
|
110
|
+
});
|
|
111
|
+
it("returns undefined for unknown schema", async () => {
|
|
112
|
+
const tables = (0, schema_1.getTablesForSchema)("nonexistent-schema");
|
|
113
|
+
(0, chai_1.expect)(tables).to.equal(undefined);
|
|
114
|
+
});
|
|
22
115
|
});
|
|
23
|
-
async function StoreTableNameAndSchemaNameInMetadataTest() {
|
|
24
|
-
let TestTable = class TestTable extends table_1.Table {
|
|
25
|
-
name;
|
|
26
|
-
};
|
|
27
|
-
__decorate([
|
|
28
|
-
(0, table_1.Field)("string"),
|
|
29
|
-
__metadata("design:type", String)
|
|
30
|
-
], TestTable.prototype, "name", void 0);
|
|
31
|
-
TestTable = __decorate([
|
|
32
|
-
(0, schema_1.RegisterTable)("test_table", "test-schema")
|
|
33
|
-
], TestTable);
|
|
34
|
-
const metadata = (0, common_1.getMetadata)(TestTable, common_1.DatumStaticMetadata);
|
|
35
|
-
(0, chai_1.expect)(metadata.tableName).to.equal("test_table");
|
|
36
|
-
(0, chai_1.expect)(metadata.schemaName).to.equal("test-schema");
|
|
37
|
-
}
|
|
38
|
-
async function StoreTableNameForMultipleClassesTest() {
|
|
39
|
-
let UserTable = class UserTable extends table_1.Table {
|
|
40
|
-
email;
|
|
41
|
-
name;
|
|
42
|
-
};
|
|
43
|
-
__decorate([
|
|
44
|
-
(0, table_1.Index)(),
|
|
45
|
-
(0, table_1.Field)("string"),
|
|
46
|
-
__metadata("design:type", String)
|
|
47
|
-
], UserTable.prototype, "email", void 0);
|
|
48
|
-
__decorate([
|
|
49
|
-
(0, table_1.Field)("string"),
|
|
50
|
-
__metadata("design:type", String)
|
|
51
|
-
], UserTable.prototype, "name", void 0);
|
|
52
|
-
UserTable = __decorate([
|
|
53
|
-
(0, schema_1.RegisterTable)("user_table", "multi-schema")
|
|
54
|
-
], UserTable);
|
|
55
|
-
let ProductTable = class ProductTable extends table_1.Table {
|
|
56
|
-
name;
|
|
57
|
-
price;
|
|
58
|
-
};
|
|
59
|
-
__decorate([
|
|
60
|
-
(0, table_1.Index)(),
|
|
61
|
-
(0, table_1.Field)("string"),
|
|
62
|
-
__metadata("design:type", String)
|
|
63
|
-
], ProductTable.prototype, "name", void 0);
|
|
64
|
-
__decorate([
|
|
65
|
-
(0, table_1.Field)("number"),
|
|
66
|
-
__metadata("design:type", Number)
|
|
67
|
-
], ProductTable.prototype, "price", void 0);
|
|
68
|
-
ProductTable = __decorate([
|
|
69
|
-
(0, schema_1.RegisterTable)("product_table", "multi-schema")
|
|
70
|
-
], ProductTable);
|
|
71
|
-
const userMetadata = (0, common_1.getMetadata)(UserTable, common_1.DatumStaticMetadata);
|
|
72
|
-
const productMetadata = (0, common_1.getMetadata)(ProductTable, common_1.DatumStaticMetadata);
|
|
73
|
-
(0, chai_1.expect)(userMetadata.tableName).to.equal("user_table");
|
|
74
|
-
(0, chai_1.expect)(userMetadata.schemaName).to.equal("multi-schema");
|
|
75
|
-
(0, chai_1.expect)(productMetadata.tableName).to.equal("product_table");
|
|
76
|
-
(0, chai_1.expect)(productMetadata.schemaName).to.equal("multi-schema");
|
|
77
|
-
}
|
|
78
|
-
async function PreserveExistingMetadataTest() {
|
|
79
|
-
let IndexedTable = class IndexedTable extends table_1.Table {
|
|
80
|
-
email;
|
|
81
|
-
name;
|
|
82
|
-
};
|
|
83
|
-
__decorate([
|
|
84
|
-
(0, table_1.Index)(),
|
|
85
|
-
(0, table_1.Field)("string"),
|
|
86
|
-
__metadata("design:type", String)
|
|
87
|
-
], IndexedTable.prototype, "email", void 0);
|
|
88
|
-
__decorate([
|
|
89
|
-
(0, table_1.Field)("string"),
|
|
90
|
-
__metadata("design:type", String)
|
|
91
|
-
], IndexedTable.prototype, "name", void 0);
|
|
92
|
-
IndexedTable = __decorate([
|
|
93
|
-
(0, schema_1.RegisterTable)("indexed_table", "preserve-schema")
|
|
94
|
-
], IndexedTable);
|
|
95
|
-
const metadata = (0, common_1.getMetadata)(IndexedTable, common_1.DatumStaticMetadata);
|
|
96
|
-
(0, chai_1.expect)(metadata.tableName).to.equal("indexed_table");
|
|
97
|
-
(0, chai_1.expect)(metadata.schemaName).to.equal("preserve-schema");
|
|
98
|
-
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
99
|
-
(0, chai_1.expect)(metadata.indexes).to.have.property("email");
|
|
100
|
-
}
|
|
101
|
-
async function RegisterTablesInSchemaRegistryTest() {
|
|
102
|
-
let _RegUser = class _RegUser extends table_1.Table {
|
|
103
|
-
};
|
|
104
|
-
_RegUser = __decorate([
|
|
105
|
-
(0, schema_1.RegisterTable)("reg_users", "registry-schema")
|
|
106
|
-
], _RegUser);
|
|
107
|
-
let _RegProduct = class _RegProduct extends table_1.Table {
|
|
108
|
-
};
|
|
109
|
-
_RegProduct = __decorate([
|
|
110
|
-
(0, schema_1.RegisterTable)("reg_products", "registry-schema")
|
|
111
|
-
], _RegProduct);
|
|
112
|
-
const tables = (0, schema_1.getTablesForSchema)("registry-schema");
|
|
113
|
-
(0, chai_1.expect)(tables).to.not.equal(undefined);
|
|
114
|
-
(0, chai_1.expect)(tables).to.have.property("reg_users");
|
|
115
|
-
(0, chai_1.expect)(tables).to.have.property("reg_products");
|
|
116
|
-
}
|
|
117
|
-
async function ReturnUndefinedForUnknownSchemaTest() {
|
|
118
|
-
const tables = (0, schema_1.getTablesForSchema)("nonexistent-schema");
|
|
119
|
-
(0, chai_1.expect)(tables).to.equal(undefined);
|
|
120
|
-
}
|
|
121
116
|
//# sourceMappingURL=schema.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../src/tests/schema.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../src/tests/schema.test.ts"],"names":[],"mappings":"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"}
|