@antelopejs/interface-data-api 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components.d.ts +32 -9
- package/dist/components.js +113 -628
- package/dist/components.js.map +1 -1
- package/dist/index.d.ts +41 -36
- package/dist/index.js +94 -92
- package/dist/index.js.map +1 -1
- package/dist/internal/computed.d.ts +6 -0
- package/dist/internal/computed.js +43 -0
- package/dist/internal/computed.js.map +1 -0
- package/dist/internal/controller-types.d.ts +19 -0
- package/dist/internal/controller-types.js +4 -0
- package/dist/internal/controller-types.js.map +1 -0
- package/dist/internal/default-filter.d.ts +4 -0
- package/dist/internal/default-filter.js +19 -0
- package/dist/internal/default-filter.js.map +1 -0
- package/dist/internal/deferred-joined-stream.d.ts +11 -0
- package/dist/internal/deferred-joined-stream.js +112 -0
- package/dist/internal/deferred-joined-stream.js.map +1 -0
- package/dist/internal/field-types.d.ts +183 -0
- package/dist/internal/field-types.js +4 -0
- package/dist/internal/field-types.js.map +1 -0
- package/dist/internal/filters.d.ts +4 -0
- package/dist/internal/filters.js +15 -0
- package/dist/internal/filters.js.map +1 -0
- package/dist/internal/foreign.d.ts +6 -0
- package/dist/internal/foreign.js +116 -0
- package/dist/internal/foreign.js.map +1 -0
- package/dist/internal/guards.d.ts +20 -0
- package/dist/internal/guards.js +74 -0
- package/dist/internal/guards.js.map +1 -0
- package/dist/internal/joined.d.ts +28 -0
- package/dist/internal/joined.js +127 -0
- package/dist/internal/joined.js.map +1 -0
- package/dist/internal/list.d.ts +16 -0
- package/dist/internal/list.js +178 -0
- package/dist/internal/list.js.map +1 -0
- package/dist/internal/meta-records.d.ts +17 -0
- package/dist/internal/meta-records.js +73 -0
- package/dist/internal/meta-records.js.map +1 -0
- package/dist/internal/properties.d.ts +4 -0
- package/dist/internal/properties.js +43 -0
- package/dist/internal/properties.js.map +1 -0
- package/dist/internal/table-reference.d.ts +11 -0
- package/dist/internal/table-reference.js +46 -0
- package/dist/internal/table-reference.js.map +1 -0
- package/dist/internal/tables.d.ts +18 -0
- package/dist/internal/tables.js +37 -0
- package/dist/internal/tables.js.map +1 -0
- package/dist/internal/validation.d.ts +11 -0
- package/dist/internal/validation.js +88 -0
- package/dist/internal/validation.js.map +1 -0
- package/dist/metadata.d.ts +27 -228
- package/dist/metadata.js +61 -188
- package/dist/metadata.js.map +1 -1
- package/dist/tests/components/access_control.test.js +20 -20
- package/dist/tests/components/access_control.test.js.map +1 -1
- package/dist/tests/components/computed.test.js +28 -30
- package/dist/tests/components/computed.test.js.map +1 -1
- package/dist/tests/components/cross_instance.test.js +8 -6
- package/dist/tests/components/cross_instance.test.js.map +1 -1
- package/dist/tests/components/deferred_joined.test.js +56 -53
- package/dist/tests/components/deferred_joined.test.js.map +1 -1
- package/dist/tests/components/filter_options.test.js +8 -7
- package/dist/tests/components/filter_options.test.js.map +1 -1
- package/dist/tests/components/foreign_computed.test.js +14 -16
- package/dist/tests/components/foreign_computed.test.js.map +1 -1
- package/dist/tests/components/foreign_joined.test.js +19 -27
- package/dist/tests/components/foreign_joined.test.js.map +1 -1
- package/dist/tests/components/joined.test.js +41 -45
- package/dist/tests/components/joined.test.js.map +1 -1
- package/dist/tests/components/listable.test.js +59 -58
- package/dist/tests/components/listable.test.js.map +1 -1
- package/dist/tests/components/localized_sort.test.d.ts +1 -0
- package/dist/tests/components/localized_sort.test.js +131 -0
- package/dist/tests/components/localized_sort.test.js.map +1 -0
- package/dist/tests/components/mandatory.test.js +33 -28
- package/dist/tests/components/mandatory.test.js.map +1 -1
- package/dist/tests/components/modifier_key.test.js +19 -18
- package/dist/tests/components/modifier_key.test.js.map +1 -1
- package/dist/tests/components/parse_body.test.d.ts +1 -0
- package/dist/tests/components/parse_body.test.js +75 -0
- package/dist/tests/components/parse_body.test.js.map +1 -0
- package/dist/tests/components/parsed_value.test.js +27 -21
- package/dist/tests/components/parsed_value.test.js.map +1 -1
- package/dist/tests/components/partial_edit.test.js +33 -32
- package/dist/tests/components/partial_edit.test.js.map +1 -1
- package/dist/tests/components/per_action_access.test.js +12 -12
- package/dist/tests/components/per_action_access.test.js.map +1 -1
- package/dist/tests/components/validator.test.js +45 -37
- package/dist/tests/components/validator.test.js.map +1 -1
- package/dist/tests/helpers/other-instance.d.ts +11 -1
- package/dist/tests/helpers/other-instance.js +27 -5
- package/dist/tests/helpers/other-instance.js.map +1 -1
- package/dist/tests/index/get_guard.test.js +6 -6
- package/dist/tests/index/get_guard.test.js.map +1 -1
- package/dist/tests/index/inheritance.test.js +10 -9
- package/dist/tests/index/inheritance.test.js.map +1 -1
- package/dist/tests/index/routes.test.js +40 -44
- package/dist/tests/index/routes.test.js.map +1 -1
- package/dist/tests/integration.test.d.ts +1 -1
- package/dist/tests/integration.test.js +53 -729
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/internal/http.d.ts +23 -0
- package/dist/tests/internal/http.js +35 -0
- package/dist/tests/internal/http.js.map +1 -0
- package/dist/tests/internal/shop-api.d.ts +1 -0
- package/dist/tests/internal/shop-api.js +331 -0
- package/dist/tests/internal/shop-api.js.map +1 -0
- package/dist/tests/internal/shop-schema.d.ts +154 -0
- package/dist/tests/internal/shop-schema.js +387 -0
- package/dist/tests/internal/shop-schema.js.map +1 -0
- package/dist/tests/utils.d.ts +5 -5
- package/dist/tests/utils.js +1 -3
- package/dist/tests/utils.js.map +1 -1
- package/dist/tests/utils.test.js +10 -11
- package/dist/tests/utils.test.js.map +1 -1
- package/docs/3.routes.md +8 -3
- package/docs/5.validators.md +16 -7
- package/docs/6.listable.md +4 -0
- package/docs/8.filters.md +7 -3
- package/package.json +17 -6
- package/skills/data-api-interface/SKILL.md +4 -0
- package/skills/data-api-interface/cases.json +99 -0
|
@@ -16,10 +16,11 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
17
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
18
18
|
const interface_database_1 = require("@antelopejs/interface-database");
|
|
19
|
-
const
|
|
20
|
-
const metadata_1 = require("
|
|
19
|
+
const index_1 = require("../../index");
|
|
20
|
+
const metadata_1 = require("../../metadata");
|
|
21
21
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
22
22
|
const constants_1 = require("../constants");
|
|
23
|
+
const http_1 = require("../internal/http");
|
|
23
24
|
const utils_1 = require("../utils");
|
|
24
25
|
const currentTestName = node_path_1.default
|
|
25
26
|
.basename(__filename)
|
|
@@ -72,17 +73,17 @@ const localizedArticle = {
|
|
|
72
73
|
summary: { en: "Summary", fr: "Résumé" },
|
|
73
74
|
};
|
|
74
75
|
describe("Partial edit", () => {
|
|
75
|
-
it("leaves the fields absent from the body unchanged", async () => await
|
|
76
|
-
it("clears a field sent as null", async () => await
|
|
77
|
-
it("skips the setters of fields absent from the body", async () => await
|
|
78
|
-
it("runs the setters of fields present in the body", async () => await
|
|
79
|
-
it("still runs every setter on new", async () => await
|
|
80
|
-
it("keeps the other languages of a written localized field", async () => await
|
|
81
|
-
it("keeps the localized fields absent from the body", async () => await
|
|
82
|
-
it("answers 404 for a missing row", async () => await
|
|
83
|
-
it("answers 400 for a body that is not JSON", async () => await
|
|
84
|
-
it("answers 400 for a body that is not a JSON object", async () => await
|
|
85
|
-
it("answers 400 on new for a body that is not a JSON object", async () => await
|
|
76
|
+
it("leaves the fields absent from the body unchanged", async () => await expectLeavesAbsentFieldsUnchanged());
|
|
77
|
+
it("clears a field sent as null", async () => await expectClearsNullField());
|
|
78
|
+
it("skips the setters of fields absent from the body", async () => await expectSkipsSettersOfAbsentFields());
|
|
79
|
+
it("runs the setters of fields present in the body", async () => await expectRunsSettersOfPresentFields());
|
|
80
|
+
it("still runs every setter on new", async () => await expectRunsEverySetterOnNew());
|
|
81
|
+
it("keeps the other languages of a written localized field", async () => await expectKeepsOtherLanguagesOfWrittenField());
|
|
82
|
+
it("keeps the localized fields absent from the body", async () => await expectKeepsAbsentLocalizedFields());
|
|
83
|
+
it("answers 404 for a missing row", async () => await expectAnswersNotFound());
|
|
84
|
+
it("answers 400 for a body that is not JSON", async () => await expectAnswersBadRequestForInvalidJson());
|
|
85
|
+
it("answers 400 for a body that is not a JSON object", async () => await expectAnswersBadRequestForNonObjectBody());
|
|
86
|
+
it("answers 400 on new for a body that is not a JSON object", async () => await expectAnswersBadRequestForNonObjectBodyOnNew());
|
|
86
87
|
});
|
|
87
88
|
async function _dropArticleTable() {
|
|
88
89
|
const schema = interface_database_1.Schema.get(schemaName);
|
|
@@ -91,10 +92,10 @@ async function _dropArticleTable() {
|
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
async function _createDataController(testName, article) {
|
|
94
|
-
let _PartialEditTestAPI = class _PartialEditTestAPI extends (0,
|
|
95
|
-
get:
|
|
96
|
-
new:
|
|
97
|
-
edit:
|
|
95
|
+
let _PartialEditTestAPI = class _PartialEditTestAPI extends (0, index_1.DataController)(Article, {
|
|
96
|
+
get: index_1.DefaultRoutes.Get,
|
|
97
|
+
new: index_1.DefaultRoutes.New,
|
|
98
|
+
edit: index_1.DefaultRoutes.Edit,
|
|
98
99
|
}, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
99
100
|
set slug(value) {
|
|
100
101
|
this.table.slug = value ?? defaultSlug;
|
|
@@ -136,7 +137,7 @@ async function _createDataController(testName, article) {
|
|
|
136
137
|
__metadata("design:paramtypes", [Object])
|
|
137
138
|
], _PartialEditTestAPI.prototype, "slug", null);
|
|
138
139
|
_PartialEditTestAPI = __decorate([
|
|
139
|
-
(0,
|
|
140
|
+
(0, index_1.RegisterDataController)()
|
|
140
141
|
], _PartialEditTestAPI);
|
|
141
142
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
142
143
|
await _dropArticleTable();
|
|
@@ -153,18 +154,18 @@ async function _createLocalizedArticle(testName) {
|
|
|
153
154
|
locale: allLocales,
|
|
154
155
|
});
|
|
155
156
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
156
|
-
const { _id: id } =
|
|
157
|
+
const { _id: id } = await (0, http_1.readJson)(response);
|
|
157
158
|
return id;
|
|
158
159
|
}
|
|
159
160
|
async function _getLocalized(testName, id, locale) {
|
|
160
161
|
const response = await (0, utils_1.getRequest)(testName, { id, locale });
|
|
161
162
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
162
|
-
return
|
|
163
|
+
return await (0, http_1.readJson)(response);
|
|
163
164
|
}
|
|
164
165
|
async function _rawRequest(testName, uri, method, body, queryParams = {}) {
|
|
165
166
|
return await fetch(`${constants_1.URL_BASE}/${testName}/${uri}?${new URLSearchParams(queryParams).toString()}`, { method, headers: { "Content-Type": "application/json" }, body });
|
|
166
167
|
}
|
|
167
|
-
async function
|
|
168
|
+
async function expectLeavesAbsentFieldsUnchanged() {
|
|
168
169
|
const { id, articleModel } = await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
169
170
|
if (!id)
|
|
170
171
|
throw new Error("Expected id from _createDataController");
|
|
@@ -178,7 +179,7 @@ async function leavesAbsentFieldsUnchanged() {
|
|
|
178
179
|
slug: storedArticle.slug,
|
|
179
180
|
});
|
|
180
181
|
}
|
|
181
|
-
async function
|
|
182
|
+
async function expectClearsNullField() {
|
|
182
183
|
const { id, articleModel } = await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
183
184
|
if (!id)
|
|
184
185
|
throw new Error("Expected id from _createDataController");
|
|
@@ -188,7 +189,7 @@ async function clearsNullField() {
|
|
|
188
189
|
(0, chai_1.expect)(article?.notes).to.equal(null);
|
|
189
190
|
(0, chai_1.expect)(article?.reference).to.equal(storedArticle.reference);
|
|
190
191
|
}
|
|
191
|
-
async function
|
|
192
|
+
async function expectSkipsSettersOfAbsentFields() {
|
|
192
193
|
const { id, articleModel } = await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
193
194
|
if (!id)
|
|
194
195
|
throw new Error("Expected id from _createDataController");
|
|
@@ -197,7 +198,7 @@ async function skipsSettersOfAbsentFields() {
|
|
|
197
198
|
const article = await articleModel.get(id);
|
|
198
199
|
(0, chai_1.expect)(article?.slug).to.equal(storedArticle.slug);
|
|
199
200
|
}
|
|
200
|
-
async function
|
|
201
|
+
async function expectRunsSettersOfPresentFields() {
|
|
201
202
|
const { id, articleModel } = await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
202
203
|
if (!id)
|
|
203
204
|
throw new Error("Expected id from _createDataController");
|
|
@@ -206,17 +207,17 @@ async function runsSettersOfPresentFields() {
|
|
|
206
207
|
const article = await articleModel.get(id);
|
|
207
208
|
(0, chai_1.expect)(article?.slug).to.equal("edited-slug");
|
|
208
209
|
}
|
|
209
|
-
async function
|
|
210
|
+
async function expectRunsEverySetterOnNew() {
|
|
210
211
|
const { articleModel } = await _createDataController((0, utils_1.getFunctionName)());
|
|
211
212
|
const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
|
|
212
213
|
reference: "ART-003",
|
|
213
214
|
});
|
|
214
215
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
215
|
-
const { _id: id } =
|
|
216
|
+
const { _id: id } = await (0, http_1.readJson)(response);
|
|
216
217
|
const article = await articleModel.get(id);
|
|
217
218
|
(0, chai_1.expect)(article?.slug).to.equal(defaultSlug);
|
|
218
219
|
}
|
|
219
|
-
async function
|
|
220
|
+
async function expectKeepsOtherLanguagesOfWrittenField() {
|
|
220
221
|
const id = await _createLocalizedArticle((0, utils_1.getFunctionName)());
|
|
221
222
|
const response = await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), { title: "Nouveau titre" }, { id, locale: "fr" });
|
|
222
223
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
@@ -229,7 +230,7 @@ async function keepsOtherLanguagesOfWrittenField() {
|
|
|
229
230
|
summary: localizedArticle.summary.en,
|
|
230
231
|
});
|
|
231
232
|
}
|
|
232
|
-
async function
|
|
233
|
+
async function expectKeepsAbsentLocalizedFields() {
|
|
233
234
|
const id = await _createLocalizedArticle((0, utils_1.getFunctionName)());
|
|
234
235
|
const response = await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), { reference: "ART-002-B" }, { id, locale: allLocales });
|
|
235
236
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
@@ -242,12 +243,12 @@ async function keepsAbsentLocalizedFields() {
|
|
|
242
243
|
summary: localizedArticle.summary.en,
|
|
243
244
|
});
|
|
244
245
|
}
|
|
245
|
-
async function
|
|
246
|
+
async function expectAnswersNotFound() {
|
|
246
247
|
await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
247
248
|
const response = await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), { author: "Bob" }, { id: missingRowId });
|
|
248
249
|
(0, chai_1.expect)(response.status).to.equal(404);
|
|
249
250
|
}
|
|
250
|
-
async function
|
|
251
|
+
async function expectAnswersBadRequestForInvalidJson() {
|
|
251
252
|
const { id } = await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
252
253
|
if (!id)
|
|
253
254
|
throw new Error("Expected id from _createDataController");
|
|
@@ -256,7 +257,7 @@ async function answersBadRequestForInvalidJson() {
|
|
|
256
257
|
});
|
|
257
258
|
(0, chai_1.expect)(response.status).to.equal(400);
|
|
258
259
|
}
|
|
259
|
-
async function
|
|
260
|
+
async function expectAnswersBadRequestForNonObjectBody() {
|
|
260
261
|
const { id } = await _createDataController((0, utils_1.getFunctionName)(), storedArticle);
|
|
261
262
|
if (!id)
|
|
262
263
|
throw new Error("Expected id from _createDataController");
|
|
@@ -267,7 +268,7 @@ async function answersBadRequestForNonObjectBody() {
|
|
|
267
268
|
(0, chai_1.expect)(response.status).to.equal(400, `body ${body}`);
|
|
268
269
|
}
|
|
269
270
|
}
|
|
270
|
-
async function
|
|
271
|
+
async function expectAnswersBadRequestForNonObjectBodyOnNew() {
|
|
271
272
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
272
273
|
for (const body of ["{", "[]", "null"]) {
|
|
273
274
|
const response = await _rawRequest((0, utils_1.getFunctionName)(), "new", "POST", body);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partial_edit.test.js","sourceRoot":"","sources":["../../../src/tests/components/partial_edit.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"partial_edit.test.js","sourceRoot":"","sources":["../../../src/tests/components/partial_edit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
17
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
18
|
-
const
|
|
19
|
-
const metadata_1 = require("
|
|
18
|
+
const index_1 = require("../../index");
|
|
19
|
+
const metadata_1 = require("../../metadata");
|
|
20
20
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
21
|
+
const http_1 = require("../internal/http");
|
|
21
22
|
const utils_1 = require("../utils");
|
|
22
23
|
const currentTestName = node_path_1.default
|
|
23
24
|
.basename(__filename)
|
|
@@ -55,8 +56,8 @@ const defaultUserDataset = {
|
|
|
55
56
|
age: 30,
|
|
56
57
|
};
|
|
57
58
|
describe("Per-Action Access Control", () => {
|
|
58
|
-
it("writable in new but read-only in edit", async () => await
|
|
59
|
-
it("read-only globally but read-write in new", async () => await
|
|
59
|
+
it("writable in new but read-only in edit", async () => await expectWritableInNewReadOnlyInEdit());
|
|
60
|
+
it("read-only globally but read-write in new", async () => await expectReadOnlyGloballyReadWriteInNew());
|
|
60
61
|
it("reads a field's effective mode per action", () => {
|
|
61
62
|
const field = {
|
|
62
63
|
mode: metadata_1.AccessMode.ReadWrite,
|
|
@@ -67,10 +68,9 @@ describe("Per-Action Access Control", () => {
|
|
|
67
68
|
(0, chai_1.expect)((0, metadata_1.GetEffectiveMode)(field, "_default")).to.equal(metadata_1.AccessMode.ReadWrite);
|
|
68
69
|
(0, chai_1.expect)((0, metadata_1.GetEffectiveMode)(field)).to.equal(metadata_1.AccessMode.ReadWrite);
|
|
69
70
|
});
|
|
70
|
-
after(async () => { });
|
|
71
71
|
});
|
|
72
72
|
async function _createDataController(testName, user) {
|
|
73
|
-
let _PerActionAccessAPI = class _PerActionAccessAPI extends (0,
|
|
73
|
+
let _PerActionAccessAPI = class _PerActionAccessAPI extends (0, index_1.DataController)(User, index_1.DefaultRoutes.All, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
74
74
|
};
|
|
75
75
|
__decorate([
|
|
76
76
|
(0, metadata_1.ModelReference)(),
|
|
@@ -102,7 +102,7 @@ async function _createDataController(testName, user) {
|
|
|
102
102
|
__metadata("design:type", Number)
|
|
103
103
|
], _PerActionAccessAPI.prototype, "age", void 0);
|
|
104
104
|
_PerActionAccessAPI = __decorate([
|
|
105
|
-
(0,
|
|
105
|
+
(0, index_1.RegisterDataController)()
|
|
106
106
|
], _PerActionAccessAPI);
|
|
107
107
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
108
108
|
const database = (0, utils_1.getSchemaInstance)(schemaName);
|
|
@@ -110,21 +110,21 @@ async function _createDataController(testName, user) {
|
|
|
110
110
|
const insertResult = await userModel.insert(user);
|
|
111
111
|
return { id: insertResult[0], userModel };
|
|
112
112
|
}
|
|
113
|
-
async function
|
|
113
|
+
async function expectWritableInNewReadOnlyInEdit() {
|
|
114
114
|
const { id, userModel } = await _createDataController((0, utils_1.getFunctionName)(), defaultUserDataset);
|
|
115
115
|
const getResponse = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id });
|
|
116
116
|
(0, chai_1.expect)(getResponse.status).to.equal(200);
|
|
117
|
-
const data =
|
|
117
|
+
const data = await (0, http_1.readJson)(getResponse);
|
|
118
118
|
(0, chai_1.expect)(data.role).to.equal("admin");
|
|
119
119
|
await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), { role: "user" }, { id });
|
|
120
120
|
const user = await userModel.get(id);
|
|
121
121
|
(0, chai_1.expect)(user?.role).to.equal("admin");
|
|
122
122
|
}
|
|
123
|
-
async function
|
|
123
|
+
async function expectReadOnlyGloballyReadWriteInNew() {
|
|
124
124
|
const { id, userModel } = await _createDataController((0, utils_1.getFunctionName)(), defaultUserDataset);
|
|
125
125
|
const newResponse = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), defaultUserDataset);
|
|
126
126
|
(0, chai_1.expect)(newResponse.status).to.equal(200);
|
|
127
|
-
const created =
|
|
127
|
+
const created = await (0, http_1.readJson)(newResponse);
|
|
128
128
|
const newUser = await userModel.get(created._id);
|
|
129
129
|
(0, chai_1.expect)(newUser?.age).to.equal(30);
|
|
130
130
|
await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), { age: 99 }, { id });
|
|
@@ -132,7 +132,7 @@ async function readOnlyGloballyReadWriteInNew() {
|
|
|
132
132
|
(0, chai_1.expect)(editedUser?.age).to.equal(30);
|
|
133
133
|
const getResponse = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id });
|
|
134
134
|
(0, chai_1.expect)(getResponse.status).to.equal(200);
|
|
135
|
-
const getData =
|
|
135
|
+
const getData = await (0, http_1.readJson)(getResponse);
|
|
136
136
|
(0, chai_1.expect)(getData.age).to.equal(30);
|
|
137
137
|
}
|
|
138
138
|
//# sourceMappingURL=per_action_access.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"per_action_access.test.js","sourceRoot":"","sources":["../../../src/tests/components/per_action_access.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,6DAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"per_action_access.test.js","sourceRoot":"","sources":["../../../src/tests/components/per_action_access.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
17
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
18
|
-
const
|
|
19
|
-
const metadata_1 = require("
|
|
18
|
+
const index_1 = require("../../index");
|
|
19
|
+
const metadata_1 = require("../../metadata");
|
|
20
20
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
21
|
+
const http_1 = require("../internal/http");
|
|
21
22
|
const utils_1 = require("../utils");
|
|
23
|
+
const guards_1 = require("../../internal/guards");
|
|
22
24
|
const currentTestName = node_path_1.default
|
|
23
25
|
.basename(__filename)
|
|
24
26
|
.replace(/\.test\.(ts|js)$/, "");
|
|
@@ -79,20 +81,19 @@ const validProductData = {
|
|
|
79
81
|
},
|
|
80
82
|
};
|
|
81
83
|
describe("Field Validator", () => {
|
|
82
|
-
it("validate correct parameters on new", async () => await
|
|
83
|
-
it("validate incorrect date parameter on new", async () => await
|
|
84
|
-
it("validate incorrect regex parameter on new", async () => await
|
|
85
|
-
it("validate incorrect string parameter on new", async () => await
|
|
86
|
-
it("validate incorrect number parameter on new", async () => await
|
|
87
|
-
it("validate correct parameters on edit", async () => await
|
|
88
|
-
it("validate incorrect date parameter on edit", async () => await
|
|
89
|
-
it("validate incorrect regex parameter on edit", async () => await
|
|
90
|
-
it("validate incorrect string parameter on edit", async () => await
|
|
91
|
-
it("validate incorrect number parameter on edit", async () => await
|
|
92
|
-
after(async () => { });
|
|
84
|
+
it("validate correct parameters on new", async () => await expectCorrectParametersOnNew());
|
|
85
|
+
it("validate incorrect date parameter on new", async () => await expectIncorrectDateParameterOnNew());
|
|
86
|
+
it("validate incorrect regex parameter on new", async () => await expectIncorrectEmailParameterOnNew());
|
|
87
|
+
it("validate incorrect string parameter on new", async () => await expectIncorrectStringParameterOnNew());
|
|
88
|
+
it("validate incorrect number parameter on new", async () => await expectIncorrectNumberParameterOnNew());
|
|
89
|
+
it("validate correct parameters on edit", async () => await expectCorrectParametersOnEdit());
|
|
90
|
+
it("validate incorrect date parameter on edit", async () => await expectIncorrectDateParameterOnEdit());
|
|
91
|
+
it("validate incorrect regex parameter on edit", async () => await expectIncorrectEmailParameterOnEdit());
|
|
92
|
+
it("validate incorrect string parameter on edit", async () => await expectIncorrectStringParameterOnEdit());
|
|
93
|
+
it("validate incorrect number parameter on edit", async () => await expectIncorrectNumberParameterOnEdit());
|
|
93
94
|
});
|
|
94
95
|
async function _createDataController(testName, route, product) {
|
|
95
|
-
let _ValidatorTestAPI = class _ValidatorTestAPI extends (0,
|
|
96
|
+
let _ValidatorTestAPI = class _ValidatorTestAPI extends (0, index_1.DataController)(Product, route, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
96
97
|
};
|
|
97
98
|
__decorate([
|
|
98
99
|
(0, metadata_1.ModelReference)(),
|
|
@@ -101,18 +102,18 @@ async function _createDataController(testName, route, product) {
|
|
|
101
102
|
], _ValidatorTestAPI.prototype, "productModel", void 0);
|
|
102
103
|
__decorate([
|
|
103
104
|
(0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
|
|
104
|
-
(0, metadata_1.Validator)((value) =>
|
|
105
|
+
(0, metadata_1.Validator)((value) => (0, guards_1.isString)(value) && value.length >= 3),
|
|
105
106
|
__metadata("design:type", String)
|
|
106
107
|
], _ValidatorTestAPI.prototype, "name", void 0);
|
|
107
108
|
__decorate([
|
|
108
109
|
(0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
|
|
109
|
-
(0, metadata_1.Validator)((value) =>
|
|
110
|
+
(0, metadata_1.Validator)((value) => (0, guards_1.isNumber)(value) && value >= 0),
|
|
110
111
|
__metadata("design:type", Number)
|
|
111
112
|
], _ValidatorTestAPI.prototype, "price", void 0);
|
|
112
113
|
__decorate([
|
|
113
114
|
(0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
|
|
114
115
|
(0, metadata_1.Validator)((value) => {
|
|
115
|
-
if (
|
|
116
|
+
if (!(0, guards_1.isString)(value))
|
|
116
117
|
return false;
|
|
117
118
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
118
119
|
return emailRegex.test(value);
|
|
@@ -121,22 +122,22 @@ async function _createDataController(testName, route, product) {
|
|
|
121
122
|
], _ValidatorTestAPI.prototype, "email", void 0);
|
|
122
123
|
__decorate([
|
|
123
124
|
(0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
|
|
124
|
-
(0, metadata_1.Validator)((value) =>
|
|
125
|
+
(0, metadata_1.Validator)((value) => (0, guards_1.isString)(value) && !Number.isNaN(Date.parse(value))),
|
|
125
126
|
__metadata("design:type", Date)
|
|
126
127
|
], _ValidatorTestAPI.prototype, "birthDate", void 0);
|
|
127
128
|
__decorate([
|
|
128
129
|
(0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
|
|
129
|
-
(0, metadata_1.Validator)((value) => ["active", "inactive", "pending"].
|
|
130
|
+
(0, metadata_1.Validator)((value) => ["active", "inactive", "pending"].some((status) => status === value)),
|
|
130
131
|
__metadata("design:type", String)
|
|
131
132
|
], _ValidatorTestAPI.prototype, "status", void 0);
|
|
132
133
|
__decorate([
|
|
133
134
|
(0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
|
|
134
135
|
(0, metadata_1.Validator)((value) => Array.isArray(value) &&
|
|
135
|
-
value.every((tag) =>
|
|
136
|
+
value.every((tag) => (0, guards_1.isString)(tag) && tag.length > 0)),
|
|
136
137
|
__metadata("design:type", Array)
|
|
137
138
|
], _ValidatorTestAPI.prototype, "tags", void 0);
|
|
138
139
|
_ValidatorTestAPI = __decorate([
|
|
139
|
-
(0,
|
|
140
|
+
(0, index_1.RegisterDataController)()
|
|
140
141
|
], _ValidatorTestAPI);
|
|
141
142
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
142
143
|
const productModel = new ProductModel((0, utils_1.getSchemaInstance)(schemaName));
|
|
@@ -146,10 +147,10 @@ async function _createDataController(testName, route, product) {
|
|
|
146
147
|
}
|
|
147
148
|
return { productModel };
|
|
148
149
|
}
|
|
149
|
-
function createIncorrectValidator(testName, fieldName, invalidValue, requestFunction,
|
|
150
|
+
function createIncorrectValidator(testName, fieldName, invalidValue, requestFunction, scenario) {
|
|
150
151
|
return async () => {
|
|
151
|
-
const { id } = await _createDataController(testName, route, createDataset);
|
|
152
|
-
const invalidData = { ...testDataset, [fieldName]: invalidValue };
|
|
152
|
+
const { id } = await _createDataController(testName, scenario.route, scenario.createDataset);
|
|
153
|
+
const invalidData = { ...scenario.testDataset, [fieldName]: invalidValue };
|
|
153
154
|
const response = await requestFunction(testName, invalidData, id ? { id } : {});
|
|
154
155
|
(0, chai_1.expect)(response.status).to.equal(400);
|
|
155
156
|
const error = await response.text();
|
|
@@ -166,7 +167,7 @@ function createCorrectValidator(testName, requestFunction, route, testDataset, c
|
|
|
166
167
|
product_fetched = await productModel.get(id);
|
|
167
168
|
}
|
|
168
169
|
else {
|
|
169
|
-
const created =
|
|
170
|
+
const created = await (0, http_1.readJson)(response);
|
|
170
171
|
(0, chai_1.expect)(created._id).to.be.a("string");
|
|
171
172
|
product_fetched = await productModel.get(created._id);
|
|
172
173
|
}
|
|
@@ -183,19 +184,26 @@ function createCorrectValidator(testName, requestFunction, route, testDataset, c
|
|
|
183
184
|
};
|
|
184
185
|
}
|
|
185
186
|
function createIncorrectValidatorEdit(testName, fieldName, invalidValue, requestFunction) {
|
|
186
|
-
return createIncorrectValidator(testName, fieldName, invalidValue, requestFunction, {
|
|
187
|
+
return createIncorrectValidator(testName, fieldName, invalidValue, requestFunction, {
|
|
188
|
+
route: { edit: index_1.DefaultRoutes.Edit },
|
|
189
|
+
testDataset: validProductData.alternative,
|
|
190
|
+
createDataset: validProductData.default,
|
|
191
|
+
});
|
|
187
192
|
}
|
|
188
193
|
function createIncorrectValidatorNew(testName, fieldName, invalidValue, requestFunction) {
|
|
189
|
-
return createIncorrectValidator(testName, fieldName, invalidValue, requestFunction, {
|
|
194
|
+
return createIncorrectValidator(testName, fieldName, invalidValue, requestFunction, {
|
|
195
|
+
route: { new: index_1.DefaultRoutes.New },
|
|
196
|
+
testDataset: validProductData.default,
|
|
197
|
+
});
|
|
190
198
|
}
|
|
191
|
-
const
|
|
192
|
-
const
|
|
193
|
-
const
|
|
194
|
-
const
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
const
|
|
198
|
-
const
|
|
199
|
-
const
|
|
200
|
-
const
|
|
199
|
+
const expectCorrectParametersOnNew = createCorrectValidator("CorrectParametersOnNew", utils_1.newRequest, { new: index_1.DefaultRoutes.New }, validProductData.default);
|
|
200
|
+
const expectIncorrectDateParameterOnNew = createIncorrectValidatorNew("DateParameterOnNew", "birthDate", "invalid", utils_1.newRequest);
|
|
201
|
+
const expectIncorrectEmailParameterOnNew = createIncorrectValidatorNew("EmailParameterOnNew", "email", "invalid", utils_1.newRequest);
|
|
202
|
+
const expectIncorrectStringParameterOnNew = createIncorrectValidatorNew("StringParameterOnNew", "name", "ab", utils_1.newRequest);
|
|
203
|
+
const expectIncorrectNumberParameterOnNew = createIncorrectValidatorNew("NumberParameterOnNew", "price", -10, utils_1.newRequest);
|
|
204
|
+
const expectCorrectParametersOnEdit = createCorrectValidator("CorrectParametersOnEdit", utils_1.editRequest, { edit: index_1.DefaultRoutes.Edit }, validProductData.alternative, validProductData.default);
|
|
205
|
+
const expectIncorrectDateParameterOnEdit = createIncorrectValidatorEdit("DateParameterOnEdit", "birthDate", "invalid-date", utils_1.editRequest);
|
|
206
|
+
const expectIncorrectEmailParameterOnEdit = createIncorrectValidatorEdit("EmailParameterOnEdit", "email", "invalid-email@a", utils_1.editRequest);
|
|
207
|
+
const expectIncorrectStringParameterOnEdit = createIncorrectValidatorEdit("StringParameterOnEdit", "name", "ab", utils_1.editRequest);
|
|
208
|
+
const expectIncorrectNumberParameterOnEdit = createIncorrectValidatorEdit("NumberParameterOnEdit", "price", -10, utils_1.editRequest);
|
|
201
209
|
//# sourceMappingURL=validator.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.test.js","sourceRoot":"","sources":["../../../src/tests/components/validator.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,6DAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"validator.test.js","sourceRoot":"","sources":["../../../src/tests/components/validator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type ModuleRequire = (request: string) =>
|
|
1
|
+
type ModuleRequire = (request: string) => object;
|
|
2
2
|
/**
|
|
3
3
|
* Evaluates built packages a second time, the way the core gives each
|
|
4
4
|
* provider binding its own copy of an interface: every file under `folders`
|
|
@@ -10,4 +10,14 @@ type ModuleRequire = (request: string) => unknown;
|
|
|
10
10
|
* @returns A `require` resolving into the second copy
|
|
11
11
|
*/
|
|
12
12
|
export declare function CreateOtherInstance(folders: string[]): ModuleRequire;
|
|
13
|
+
/**
|
|
14
|
+
* Evaluates a built module again and checks that the copy exports every name
|
|
15
|
+
* the module already loaded exports.
|
|
16
|
+
*
|
|
17
|
+
* @param load The `require` of {@link CreateOtherInstance}
|
|
18
|
+
* @param file Built file to evaluate again
|
|
19
|
+
* @param reference The module already loaded from the same file
|
|
20
|
+
* @returns The second copy of the module
|
|
21
|
+
*/
|
|
22
|
+
export declare function LoadAgain<Exports extends object>(load: ModuleRequire, file: string, reference: Exports): Exports;
|
|
13
23
|
export {};
|
|
@@ -4,10 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.CreateOtherInstance = CreateOtherInstance;
|
|
7
|
+
exports.LoadAgain = LoadAgain;
|
|
7
8
|
const node_module_1 = __importDefault(require("node:module"));
|
|
8
9
|
const node_fs_1 = require("node:fs");
|
|
9
10
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
const
|
|
11
|
+
const guards_1 = require("../../internal/guards");
|
|
12
|
+
class InternalModule extends node_module_1.default {
|
|
13
|
+
}
|
|
11
14
|
/**
|
|
12
15
|
* Evaluates built packages a second time, the way the core gives each
|
|
13
16
|
* provider binding its own copy of an interface: every file under `folders`
|
|
@@ -26,16 +29,16 @@ function CreateOtherInstance(folders) {
|
|
|
26
29
|
if (cached) {
|
|
27
30
|
return cached.exports;
|
|
28
31
|
}
|
|
29
|
-
const loaded = new
|
|
32
|
+
const loaded = new InternalModule(filename, parent);
|
|
30
33
|
loaded.filename = filename;
|
|
31
|
-
loaded.paths =
|
|
32
|
-
loaded.require = (
|
|
34
|
+
loaded.paths = InternalModule._nodeModulePaths(node_path_1.default.dirname(filename));
|
|
35
|
+
loaded.require = (request) => requireFrom(loaded, request);
|
|
33
36
|
modules.set(filename, loaded);
|
|
34
37
|
loaded.load(filename);
|
|
35
38
|
return loaded.exports;
|
|
36
39
|
};
|
|
37
40
|
const requireFrom = (parent, request) => {
|
|
38
|
-
const filename =
|
|
41
|
+
const filename = InternalModule._resolveFilename(request, parent);
|
|
39
42
|
const isOwned = owned.some((root) => filename.startsWith(root));
|
|
40
43
|
return isOwned
|
|
41
44
|
? load(filename, parent)
|
|
@@ -43,4 +46,23 @@ function CreateOtherInstance(folders) {
|
|
|
43
46
|
};
|
|
44
47
|
return (request) => requireFrom(module, request);
|
|
45
48
|
}
|
|
49
|
+
function exportsAllOf(loaded, reference) {
|
|
50
|
+
return ((0, guards_1.isObject)(loaded) && Object.keys(reference).every((name) => name in loaded));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Evaluates a built module again and checks that the copy exports every name
|
|
54
|
+
* the module already loaded exports.
|
|
55
|
+
*
|
|
56
|
+
* @param load The `require` of {@link CreateOtherInstance}
|
|
57
|
+
* @param file Built file to evaluate again
|
|
58
|
+
* @param reference The module already loaded from the same file
|
|
59
|
+
* @returns The second copy of the module
|
|
60
|
+
*/
|
|
61
|
+
function LoadAgain(load, file, reference) {
|
|
62
|
+
const loaded = load(file);
|
|
63
|
+
if (!exportsAllOf(loaded, reference)) {
|
|
64
|
+
throw new Error(`${file} does not export the names of its first copy`);
|
|
65
|
+
}
|
|
66
|
+
return loaded;
|
|
67
|
+
}
|
|
46
68
|
//# sourceMappingURL=other-instance.js.map
|