@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,21 +10,193 @@ 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 localization_1 = require("
|
|
13
|
+
const table_1 = require("../../table");
|
|
14
|
+
const localization_1 = require("../../modifiers/localization");
|
|
15
15
|
describe("Modifiers - localization", () => {
|
|
16
|
-
it("creates localization modifier", async () =>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
it("stores
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
it("creates localization modifier", async () => {
|
|
17
|
+
const modifier = new TestableLocalizationModifier();
|
|
18
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
19
|
+
(0, chai_1.expect)(modifier).to.be.instanceOf(localization_1.LocalizationModifier);
|
|
20
|
+
(0, chai_1.expect)(modifier.getOptions().fallbackLocale).to.equal("en");
|
|
21
|
+
});
|
|
22
|
+
it("stores multiple locale values", async () => {
|
|
23
|
+
const modifier = new TestableLocalizationModifier();
|
|
24
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
25
|
+
const enValue = "Hello World";
|
|
26
|
+
const frValue = "Bonjour le Monde";
|
|
27
|
+
const esValue = "Hola Mundo";
|
|
28
|
+
const locked1 = modifier.lock(undefined, enValue, "en");
|
|
29
|
+
const locked2 = modifier.lock(locked1, frValue, "fr");
|
|
30
|
+
const locked3 = modifier.lock(locked2, esValue, "es");
|
|
31
|
+
(0, chai_1.expect)(locked3).to.deep.equal({
|
|
32
|
+
en: enValue,
|
|
33
|
+
fr: frValue,
|
|
34
|
+
es: esValue,
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
it("retrieves specific locale value", async () => {
|
|
38
|
+
const modifier = new TestableLocalizationModifier();
|
|
39
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
40
|
+
const data = {
|
|
41
|
+
en: "Hello World",
|
|
42
|
+
fr: "Bonjour le Monde",
|
|
43
|
+
es: "Hola Mundo",
|
|
44
|
+
};
|
|
45
|
+
const enValue = modifier.unlock(data, "en");
|
|
46
|
+
const frValue = modifier.unlock(data, "fr");
|
|
47
|
+
const esValue = modifier.unlock(data, "es");
|
|
48
|
+
(0, chai_1.expect)(enValue).to.equal("Hello World");
|
|
49
|
+
(0, chai_1.expect)(frValue).to.equal("Bonjour le Monde");
|
|
50
|
+
(0, chai_1.expect)(esValue).to.equal("Hola Mundo");
|
|
51
|
+
});
|
|
52
|
+
it("falls back to default locale", async () => {
|
|
53
|
+
const modifier = new TestableLocalizationModifier();
|
|
54
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
55
|
+
const data = {
|
|
56
|
+
en: "Hello World",
|
|
57
|
+
fr: "Bonjour le Monde",
|
|
58
|
+
};
|
|
59
|
+
const missingValue = modifier.unlock(data, "es");
|
|
60
|
+
(0, chai_1.expect)(missingValue).to.equal("Hello World");
|
|
61
|
+
});
|
|
62
|
+
it("reads the fallback locale of a field", async () => {
|
|
63
|
+
class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
|
|
64
|
+
}
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, localization_1.Localized)({ fallbackLocale: "fr" }),
|
|
67
|
+
(0, table_1.Field)("string"),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], TestTable.prototype, "title", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, localization_1.Localized)(),
|
|
72
|
+
(0, table_1.Field)("string"),
|
|
73
|
+
__metadata("design:type", String)
|
|
74
|
+
], TestTable.prototype, "summary", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, table_1.Field)("string"),
|
|
77
|
+
__metadata("design:type", String)
|
|
78
|
+
], TestTable.prototype, "code", void 0);
|
|
79
|
+
(0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "title")).to.equal("fr");
|
|
80
|
+
(0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "summary")).to.equal(undefined);
|
|
81
|
+
(0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "code")).to.equal(undefined);
|
|
82
|
+
});
|
|
83
|
+
it("falls back for an empty value", async () => {
|
|
84
|
+
const modifier = new TestableLocalizationModifier();
|
|
85
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
86
|
+
(0, chai_1.expect)(modifier.unlock({ en: "Hello", fr: "" }, "fr")).to.equal("Hello");
|
|
87
|
+
});
|
|
88
|
+
it("stores an empty value as no value", async () => {
|
|
89
|
+
const modifier = new TestableLocalizationModifier();
|
|
90
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
91
|
+
const cleared = modifier.lock({ en: "Hello", fr: "Bonjour" }, "", "fr");
|
|
92
|
+
const everyLanguage = modifier.lock(undefined, { en: "Hello", fr: "" }, "*");
|
|
93
|
+
(0, chai_1.expect)(cleared).to.deep.equal({ en: "Hello" });
|
|
94
|
+
(0, chai_1.expect)(everyLanguage).to.deep.equal({ en: "Hello" });
|
|
95
|
+
});
|
|
96
|
+
it("handles missing locale gracefully", async () => {
|
|
97
|
+
const modifier = new TestableLocalizationModifier();
|
|
98
|
+
modifier.setOptions({});
|
|
99
|
+
const data = {
|
|
100
|
+
en: "Hello World",
|
|
101
|
+
};
|
|
102
|
+
const missingValue = modifier.unlock(data, "fr");
|
|
103
|
+
(0, chai_1.expect)(missingValue).to.equal(undefined);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe("Modifiers - localization", () => {
|
|
107
|
+
it("provides localize method through mixin", async () => {
|
|
108
|
+
const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
|
|
109
|
+
class TestTable extends TestTableWithMixin {
|
|
110
|
+
}
|
|
111
|
+
__decorate([
|
|
112
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
113
|
+
(0, table_1.Field)("string"),
|
|
114
|
+
__metadata("design:type", String)
|
|
115
|
+
], TestTable.prototype, "title", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
118
|
+
(0, table_1.Field)("string"),
|
|
119
|
+
__metadata("design:type", String)
|
|
120
|
+
], TestTable.prototype, "description", void 0);
|
|
121
|
+
const instance = new TestTable();
|
|
122
|
+
(0, chai_1.expect)(instance).to.have.property("localize").that.is.a("function");
|
|
123
|
+
(0, chai_1.expect)(instance.localize("fr")).to.equal(instance);
|
|
124
|
+
});
|
|
125
|
+
it("handles localization decorator", async () => {
|
|
126
|
+
class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
|
|
127
|
+
}
|
|
128
|
+
__decorate([
|
|
129
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
130
|
+
(0, table_1.Field)("string"),
|
|
131
|
+
__metadata("design:type", String)
|
|
132
|
+
], TestTable.prototype, "title", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
(0, localization_1.Localized)({ fallbackLocale: "fr" }),
|
|
135
|
+
(0, table_1.Field)("string"),
|
|
136
|
+
__metadata("design:type", String)
|
|
137
|
+
], TestTable.prototype, "description", void 0);
|
|
138
|
+
const instance = new TestTable();
|
|
139
|
+
instance.localize("fr");
|
|
140
|
+
instance.title = "French Title";
|
|
141
|
+
instance.description = "French Description";
|
|
142
|
+
instance.localize("en").title = "English Title";
|
|
143
|
+
instance.localize("en").description = "English Description";
|
|
144
|
+
instance.localize("be");
|
|
145
|
+
(0, chai_1.expect)(instance.title).to.equal("English Title");
|
|
146
|
+
(0, chai_1.expect)(instance.description).to.equal("French Description");
|
|
147
|
+
});
|
|
148
|
+
it("localizes specific fields", async () => {
|
|
149
|
+
const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
|
|
150
|
+
class TestTable extends TestTableWithMixin {
|
|
151
|
+
}
|
|
152
|
+
__decorate([
|
|
153
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
154
|
+
(0, table_1.Field)("string"),
|
|
155
|
+
__metadata("design:type", String)
|
|
156
|
+
], TestTable.prototype, "title", void 0);
|
|
157
|
+
__decorate([
|
|
158
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
159
|
+
(0, table_1.Field)("string"),
|
|
160
|
+
__metadata("design:type", String)
|
|
161
|
+
], TestTable.prototype, "description", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
164
|
+
(0, table_1.Field)("string"),
|
|
165
|
+
__metadata("design:type", String)
|
|
166
|
+
], TestTable.prototype, "content", void 0);
|
|
167
|
+
const instance = new TestTable();
|
|
168
|
+
instance.localize("en");
|
|
169
|
+
instance.title = "English Title";
|
|
170
|
+
instance.description = "English Description";
|
|
171
|
+
instance.content = "English Content";
|
|
172
|
+
instance.localize("fr");
|
|
173
|
+
instance.title = "French Title";
|
|
174
|
+
instance.description = "French Description";
|
|
175
|
+
instance.content = "French Content";
|
|
176
|
+
instance.localize("en");
|
|
177
|
+
instance.localize("fr", ["title", "content"]);
|
|
178
|
+
(0, chai_1.expect)(instance.title).to.equal("French Title");
|
|
179
|
+
(0, chai_1.expect)(instance.content).to.equal("French Content");
|
|
180
|
+
(0, chai_1.expect)(instance.description).to.equal("English Description");
|
|
181
|
+
});
|
|
182
|
+
it("maintains data structure integrity", async () => {
|
|
183
|
+
const modifier = new TestableLocalizationModifier();
|
|
184
|
+
modifier.setOptions({ fallbackLocale: "en" });
|
|
185
|
+
const complexData = {
|
|
186
|
+
en: { title: "English Title", content: "English Content" },
|
|
187
|
+
fr: { title: "French Title", content: "French Content" },
|
|
188
|
+
};
|
|
189
|
+
const enValue = modifier.unlock(complexData, "en");
|
|
190
|
+
const frValue = modifier.unlock(complexData, "fr");
|
|
191
|
+
(0, chai_1.expect)(enValue).to.deep.equal({
|
|
192
|
+
title: "English Title",
|
|
193
|
+
content: "English Content",
|
|
194
|
+
});
|
|
195
|
+
(0, chai_1.expect)(frValue).to.deep.equal({
|
|
196
|
+
title: "French Title",
|
|
197
|
+
content: "French Content",
|
|
198
|
+
});
|
|
199
|
+
});
|
|
28
200
|
});
|
|
29
201
|
class TestableLocalizationModifier extends localization_1.LocalizationModifier {
|
|
30
202
|
setOptions(options) {
|
|
@@ -34,186 +206,4 @@ class TestableLocalizationModifier extends localization_1.LocalizationModifier {
|
|
|
34
206
|
return this.options;
|
|
35
207
|
}
|
|
36
208
|
}
|
|
37
|
-
async function CreateLocalizationModifierTest() {
|
|
38
|
-
const modifier = new TestableLocalizationModifier();
|
|
39
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
40
|
-
(0, chai_1.expect)(modifier).to.be.instanceOf(localization_1.LocalizationModifier);
|
|
41
|
-
(0, chai_1.expect)(modifier.getOptions().fallbackLocale).to.equal("en");
|
|
42
|
-
}
|
|
43
|
-
async function StoreMultipleLocaleValuesTest() {
|
|
44
|
-
const modifier = new TestableLocalizationModifier();
|
|
45
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
46
|
-
const enValue = "Hello World";
|
|
47
|
-
const frValue = "Bonjour le Monde";
|
|
48
|
-
const esValue = "Hola Mundo";
|
|
49
|
-
const locked1 = modifier.lock(undefined, enValue, "en");
|
|
50
|
-
const locked2 = modifier.lock(locked1, frValue, "fr");
|
|
51
|
-
const locked3 = modifier.lock(locked2, esValue, "es");
|
|
52
|
-
(0, chai_1.expect)(locked3).to.deep.equal({
|
|
53
|
-
en: enValue,
|
|
54
|
-
fr: frValue,
|
|
55
|
-
es: esValue,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
async function RetrieveSpecificLocaleValueTest() {
|
|
59
|
-
const modifier = new TestableLocalizationModifier();
|
|
60
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
61
|
-
const data = {
|
|
62
|
-
en: "Hello World",
|
|
63
|
-
fr: "Bonjour le Monde",
|
|
64
|
-
es: "Hola Mundo",
|
|
65
|
-
};
|
|
66
|
-
const enValue = modifier.unlock(data, "en");
|
|
67
|
-
const frValue = modifier.unlock(data, "fr");
|
|
68
|
-
const esValue = modifier.unlock(data, "es");
|
|
69
|
-
(0, chai_1.expect)(enValue).to.equal("Hello World");
|
|
70
|
-
(0, chai_1.expect)(frValue).to.equal("Bonjour le Monde");
|
|
71
|
-
(0, chai_1.expect)(esValue).to.equal("Hola Mundo");
|
|
72
|
-
}
|
|
73
|
-
async function FallbackToDefaultLocaleTest() {
|
|
74
|
-
const modifier = new TestableLocalizationModifier();
|
|
75
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
76
|
-
const data = {
|
|
77
|
-
en: "Hello World",
|
|
78
|
-
fr: "Bonjour le Monde",
|
|
79
|
-
};
|
|
80
|
-
const missingValue = modifier.unlock(data, "es");
|
|
81
|
-
(0, chai_1.expect)(missingValue).to.equal("Hello World");
|
|
82
|
-
}
|
|
83
|
-
async function ReadFallbackLocaleOfFieldTest() {
|
|
84
|
-
class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
|
|
85
|
-
}
|
|
86
|
-
__decorate([
|
|
87
|
-
(0, localization_1.Localized)({ fallbackLocale: "fr" }),
|
|
88
|
-
(0, table_1.Field)("string"),
|
|
89
|
-
__metadata("design:type", String)
|
|
90
|
-
], TestTable.prototype, "title", void 0);
|
|
91
|
-
__decorate([
|
|
92
|
-
(0, localization_1.Localized)(),
|
|
93
|
-
(0, table_1.Field)("string"),
|
|
94
|
-
__metadata("design:type", String)
|
|
95
|
-
], TestTable.prototype, "summary", void 0);
|
|
96
|
-
__decorate([
|
|
97
|
-
(0, table_1.Field)("string"),
|
|
98
|
-
__metadata("design:type", String)
|
|
99
|
-
], TestTable.prototype, "code", void 0);
|
|
100
|
-
(0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "title")).to.equal("fr");
|
|
101
|
-
(0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "summary")).to.equal(undefined);
|
|
102
|
-
(0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "code")).to.equal(undefined);
|
|
103
|
-
}
|
|
104
|
-
async function FallbackForEmptyValueTest() {
|
|
105
|
-
const modifier = new TestableLocalizationModifier();
|
|
106
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
107
|
-
(0, chai_1.expect)(modifier.unlock({ en: "Hello", fr: "" }, "fr")).to.equal("Hello");
|
|
108
|
-
}
|
|
109
|
-
async function StoreEmptyValueAsAbsentTest() {
|
|
110
|
-
const modifier = new TestableLocalizationModifier();
|
|
111
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
112
|
-
const cleared = modifier.lock({ en: "Hello", fr: "Bonjour" }, "", "fr");
|
|
113
|
-
const everyLanguage = modifier.lock(undefined, { en: "Hello", fr: "" }, "*");
|
|
114
|
-
(0, chai_1.expect)(cleared).to.deep.equal({ en: "Hello" });
|
|
115
|
-
(0, chai_1.expect)(everyLanguage).to.deep.equal({ en: "Hello" });
|
|
116
|
-
}
|
|
117
|
-
async function HandleMissingLocaleGracefullyTest() {
|
|
118
|
-
const modifier = new TestableLocalizationModifier();
|
|
119
|
-
modifier.setOptions({});
|
|
120
|
-
const data = {
|
|
121
|
-
en: "Hello World",
|
|
122
|
-
};
|
|
123
|
-
const missingValue = modifier.unlock(data, "fr");
|
|
124
|
-
(0, chai_1.expect)(missingValue).to.equal(undefined);
|
|
125
|
-
}
|
|
126
|
-
async function ProvideLocalizeMethodTest() {
|
|
127
|
-
const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
|
|
128
|
-
class TestTable extends TestTableWithMixin {
|
|
129
|
-
}
|
|
130
|
-
__decorate([
|
|
131
|
-
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
132
|
-
(0, table_1.Field)("string"),
|
|
133
|
-
__metadata("design:type", String)
|
|
134
|
-
], TestTable.prototype, "title", void 0);
|
|
135
|
-
__decorate([
|
|
136
|
-
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
137
|
-
(0, table_1.Field)("string"),
|
|
138
|
-
__metadata("design:type", String)
|
|
139
|
-
], TestTable.prototype, "description", void 0);
|
|
140
|
-
const instance = new TestTable();
|
|
141
|
-
(0, chai_1.expect)(typeof instance.localize).to.equal("function");
|
|
142
|
-
(0, chai_1.expect)(instance.localize("fr")).to.equal(instance);
|
|
143
|
-
}
|
|
144
|
-
async function HandleLocalizationDecoratorTest() {
|
|
145
|
-
class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
|
|
146
|
-
}
|
|
147
|
-
__decorate([
|
|
148
|
-
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
149
|
-
(0, table_1.Field)("string"),
|
|
150
|
-
__metadata("design:type", String)
|
|
151
|
-
], TestTable.prototype, "title", void 0);
|
|
152
|
-
__decorate([
|
|
153
|
-
(0, localization_1.Localized)({ fallbackLocale: "fr" }),
|
|
154
|
-
(0, table_1.Field)("string"),
|
|
155
|
-
__metadata("design:type", String)
|
|
156
|
-
], TestTable.prototype, "description", void 0);
|
|
157
|
-
const instance = new TestTable();
|
|
158
|
-
instance.localize("fr");
|
|
159
|
-
instance.title = "French Title";
|
|
160
|
-
instance.description = "French Description";
|
|
161
|
-
instance.localize("en").title = "English Title";
|
|
162
|
-
instance.localize("en").description = "English Description";
|
|
163
|
-
instance.localize("be");
|
|
164
|
-
(0, chai_1.expect)(instance.title).to.equal("English Title");
|
|
165
|
-
(0, chai_1.expect)(instance.description).to.equal("French Description");
|
|
166
|
-
}
|
|
167
|
-
async function LocalizeSpecificFieldsTest() {
|
|
168
|
-
const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
|
|
169
|
-
class TestTable extends TestTableWithMixin {
|
|
170
|
-
}
|
|
171
|
-
__decorate([
|
|
172
|
-
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
173
|
-
(0, table_1.Field)("string"),
|
|
174
|
-
__metadata("design:type", String)
|
|
175
|
-
], TestTable.prototype, "title", void 0);
|
|
176
|
-
__decorate([
|
|
177
|
-
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
178
|
-
(0, table_1.Field)("string"),
|
|
179
|
-
__metadata("design:type", String)
|
|
180
|
-
], TestTable.prototype, "description", void 0);
|
|
181
|
-
__decorate([
|
|
182
|
-
(0, localization_1.Localized)({ fallbackLocale: "en" }),
|
|
183
|
-
(0, table_1.Field)("string"),
|
|
184
|
-
__metadata("design:type", String)
|
|
185
|
-
], TestTable.prototype, "content", void 0);
|
|
186
|
-
const instance = new TestTable();
|
|
187
|
-
instance.localize("en");
|
|
188
|
-
instance.title = "English Title";
|
|
189
|
-
instance.description = "English Description";
|
|
190
|
-
instance.content = "English Content";
|
|
191
|
-
instance.localize("fr");
|
|
192
|
-
instance.title = "French Title";
|
|
193
|
-
instance.description = "French Description";
|
|
194
|
-
instance.content = "French Content";
|
|
195
|
-
instance.localize("en");
|
|
196
|
-
instance.localize("fr", ["title", "content"]);
|
|
197
|
-
(0, chai_1.expect)(instance.title).to.equal("French Title");
|
|
198
|
-
(0, chai_1.expect)(instance.content).to.equal("French Content");
|
|
199
|
-
(0, chai_1.expect)(instance.description).to.equal("English Description");
|
|
200
|
-
}
|
|
201
|
-
async function MaintainDataStructureIntegrityTest() {
|
|
202
|
-
const modifier = new TestableLocalizationModifier();
|
|
203
|
-
modifier.setOptions({ fallbackLocale: "en" });
|
|
204
|
-
const complexData = {
|
|
205
|
-
en: { title: "English Title", content: "English Content" },
|
|
206
|
-
fr: { title: "French Title", content: "French Content" },
|
|
207
|
-
};
|
|
208
|
-
const enValue = modifier.unlock(complexData, "en");
|
|
209
|
-
const frValue = modifier.unlock(complexData, "fr");
|
|
210
|
-
(0, chai_1.expect)(enValue).to.deep.equal({
|
|
211
|
-
title: "English Title",
|
|
212
|
-
content: "English Content",
|
|
213
|
-
});
|
|
214
|
-
(0, chai_1.expect)(frValue).to.deep.equal({
|
|
215
|
-
title: "French Title",
|
|
216
|
-
content: "French Content",
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
209
|
//# sourceMappingURL=localization.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/localization.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"localization.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/localization.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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 chai_1 = require("chai");
|
|
13
|
+
const interface_database_1 = require("@antelopejs/interface-database");
|
|
14
|
+
const database_1 = require("../database");
|
|
15
|
+
const model_1 = require("../model");
|
|
16
|
+
const autodate_1 = require("../modifiers/autodate");
|
|
17
|
+
const encryption_1 = require("../modifiers/encryption");
|
|
18
|
+
const schema_1 = require("../schema");
|
|
19
|
+
const table_1 = require("../table");
|
|
20
|
+
const SCHEMA_ID = "partial-update-schema";
|
|
21
|
+
let Note = class Note extends table_1.Table.with(encryption_1.EncryptionModifier) {
|
|
22
|
+
};
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, table_1.Field)("string"),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], Note.prototype, "title", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, autodate_1.UpdateTime)(),
|
|
29
|
+
(0, table_1.Field)("date"),
|
|
30
|
+
__metadata("design:type", Date)
|
|
31
|
+
], Note.prototype, "updatedAt", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, encryption_1.Encrypted)({ secretKey: "0123456789abcdef0123456789abcdef" }),
|
|
34
|
+
(0, table_1.Field)("string"),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], Note.prototype, "secret", void 0);
|
|
37
|
+
Note = __decorate([
|
|
38
|
+
(0, schema_1.RegisterTable)("partial_update_notes", SCHEMA_ID)
|
|
39
|
+
], Note);
|
|
40
|
+
const NoteModel = (0, model_1.BasicDataModel)(Note, "partial_update_notes");
|
|
41
|
+
describe("Integration - partial update", () => {
|
|
42
|
+
it("keeps modifier data on an update of another field", async () => {
|
|
43
|
+
await (0, database_1.RegisterSchema)(SCHEMA_ID);
|
|
44
|
+
const instance = interface_database_1.Schema.get(SCHEMA_ID)?.instance();
|
|
45
|
+
if (!instance)
|
|
46
|
+
throw new Error("Partial update schema not found");
|
|
47
|
+
const model = new NoteModel(instance);
|
|
48
|
+
const [id] = await model.insert({ title: "First", secret: "kept" });
|
|
49
|
+
await model.update(id, { title: "Second" });
|
|
50
|
+
const note = await model.get(id);
|
|
51
|
+
(0, chai_1.expect)(note?.title).to.equal("Second");
|
|
52
|
+
(0, chai_1.expect)(note?.secret).to.equal("kept");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=partial_update.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partial_update.test.js","sourceRoot":"","sources":["../../src/tests/partial_update.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA8B;AAC9B,uEAAwD;AACxD,0CAA6C;AAC7C,oCAA0C;AAC1C,oDAAmD;AACnD,wDAAwE;AACxE,sCAA0C;AAC1C,oCAAwC;AAExC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAG1C,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,aAAK,CAAC,IAAI,CAAC,+BAAkB,CAAC;CAWhD,CAAA;AATS;IADP,IAAA,aAAK,EAAC,QAAQ,CAAC;;mCACM;AAId;IAFP,IAAA,qBAAU,GAAE;IACZ,IAAA,aAAK,EAAC,MAAM,CAAC;8BACK,IAAI;uCAAC;AAIhB;IAFP,IAAA,sBAAS,EAAC,EAAE,SAAS,EAAE,kCAAkC,EAAE,CAAC;IAC5D,IAAA,aAAK,EAAC,QAAQ,CAAC;;oCACO;AAVnB,IAAI;IADT,IAAA,sBAAa,EAAC,sBAAsB,EAAE,SAAS,CAAC;GAC3C,IAAI,CAWT;AAED,MAAM,SAAS,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAE/D,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,IAAA,yBAAc,EAAC,SAAS,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,2BAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpE,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|