@antelopejs/interface-data-api 0.4.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/dist/components.d.ts +15 -7
- package/dist/components.js +98 -645
- 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.js +10 -11
- package/dist/tests/components/localized_sort.test.js.map +1 -1
- package/dist/tests/components/mandatory.test.js +25 -25
- 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 +23 -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 +12 -3
- package/docs/8.filters.md +7 -3
- package/package.json +14 -3
- package/skills/data-api-interface/SKILL.md +4 -0
- package/skills/data-api-interface/cases.json +99 -0
|
@@ -16,9 +16,10 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
17
|
const interface_database_1 = require("@antelopejs/interface-database");
|
|
18
18
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
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
|
+
const http_1 = require("../internal/http");
|
|
22
23
|
const utils_1 = require("../utils");
|
|
23
24
|
const currentTestName = node_path_1.default
|
|
24
25
|
.basename(__filename)
|
|
@@ -63,15 +64,15 @@ const authorDataset = [
|
|
|
63
64
|
];
|
|
64
65
|
const orphanAuthorId = "orphan-author-id";
|
|
65
66
|
describe("Modifier key with foreign fields", () => {
|
|
66
|
-
it("gets row with resolved foreign reference", async () => await
|
|
67
|
-
it("gets row with null foreign reference", async () => await
|
|
68
|
-
it("gets row with dangling foreign reference", async () => await
|
|
69
|
-
it("lists rows containing null foreign references", async () => await
|
|
67
|
+
it("gets row with resolved foreign reference", async () => await expectGetsRowWithResolvedForeignReference());
|
|
68
|
+
it("gets row with null foreign reference", async () => await expectGetsRowWithNullForeignReference());
|
|
69
|
+
it("gets row with dangling foreign reference", async () => await expectGetsRowWithDanglingForeignReference());
|
|
70
|
+
it("lists rows containing null foreign references", async () => await expectListsRowsContainingNullForeignReferences());
|
|
70
71
|
});
|
|
71
72
|
async function _createDataController(testName) {
|
|
72
|
-
let _ModifierKeyTestAPI = class _ModifierKeyTestAPI extends (0,
|
|
73
|
-
list:
|
|
74
|
-
get:
|
|
73
|
+
let _ModifierKeyTestAPI = class _ModifierKeyTestAPI extends (0, index_1.DataController)(Post, {
|
|
74
|
+
list: index_1.DefaultRoutes.List,
|
|
75
|
+
get: index_1.DefaultRoutes.Get,
|
|
75
76
|
}, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
76
77
|
};
|
|
77
78
|
__decorate([
|
|
@@ -101,7 +102,7 @@ async function _createDataController(testName) {
|
|
|
101
102
|
__metadata("design:type", String)
|
|
102
103
|
], _ModifierKeyTestAPI.prototype, "title", void 0);
|
|
103
104
|
_ModifierKeyTestAPI = __decorate([
|
|
104
|
-
(0,
|
|
105
|
+
(0, index_1.RegisterDataController)()
|
|
105
106
|
], _ModifierKeyTestAPI);
|
|
106
107
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
107
108
|
await _dropTables();
|
|
@@ -126,42 +127,42 @@ async function _dropTables() {
|
|
|
126
127
|
await schema.instance().table(authorTableName).delete();
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
|
-
async function
|
|
130
|
+
async function expectGetsRowWithResolvedForeignReference() {
|
|
130
131
|
const { postIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
131
132
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), {
|
|
132
133
|
id: postIds[0],
|
|
133
134
|
locale,
|
|
134
135
|
});
|
|
135
136
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
136
|
-
const post =
|
|
137
|
+
const post = await (0, http_1.readJson)(response);
|
|
137
138
|
(0, chai_1.expect)(post.authorId).to.not.equal(null);
|
|
138
139
|
(0, chai_1.expect)(post.authorId?.name).to.equal("Alice Carter");
|
|
139
140
|
}
|
|
140
|
-
async function
|
|
141
|
+
async function expectGetsRowWithNullForeignReference() {
|
|
141
142
|
const { postIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
142
143
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), {
|
|
143
144
|
id: postIds[2],
|
|
144
145
|
locale,
|
|
145
146
|
});
|
|
146
147
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
147
|
-
const post =
|
|
148
|
+
const post = await (0, http_1.readJson)(response);
|
|
148
149
|
(0, chai_1.expect)(post.authorId).to.equal(null);
|
|
149
150
|
}
|
|
150
|
-
async function
|
|
151
|
+
async function expectGetsRowWithDanglingForeignReference() {
|
|
151
152
|
const { postIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
152
153
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), {
|
|
153
154
|
id: postIds[1],
|
|
154
155
|
locale,
|
|
155
156
|
});
|
|
156
157
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
157
|
-
const post =
|
|
158
|
+
const post = await (0, http_1.readJson)(response);
|
|
158
159
|
(0, chai_1.expect)(post.authorId).to.equal(null);
|
|
159
160
|
}
|
|
160
|
-
async function
|
|
161
|
+
async function expectListsRowsContainingNullForeignReferences() {
|
|
161
162
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
162
163
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), { locale });
|
|
163
164
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
164
|
-
const data =
|
|
165
|
+
const data = await (0, http_1.readJson)(response);
|
|
165
166
|
(0, chai_1.expect)(data.results).to.have.lengthOf(3);
|
|
166
167
|
const nullAuthorPosts = data.results.filter((post) => post.authorId == null);
|
|
167
168
|
(0, chai_1.expect)(nullAuthorPosts).to.have.lengthOf(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifier_key.test.js","sourceRoot":"","sources":["../../../src/tests/components/modifier_key.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,uEAAwD;AACxD,6DAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"modifier_key.test.js","sourceRoot":"","sources":["../../../src/tests/components/modifier_key.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const interface_api_1 = require("@antelopejs/interface-api");
|
|
5
|
+
const components_1 = require("../../components");
|
|
6
|
+
function statusOfRefusal(body) {
|
|
7
|
+
try {
|
|
8
|
+
components_1.Validation.ParseBody(body);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
return error instanceof interface_api_1.HTTPResult ? error.getStatus() : undefined;
|
|
12
|
+
}
|
|
13
|
+
return 200;
|
|
14
|
+
}
|
|
15
|
+
function body(fields) {
|
|
16
|
+
return Buffer.from(JSON.stringify(fields));
|
|
17
|
+
}
|
|
18
|
+
class Money {
|
|
19
|
+
amount = 1;
|
|
20
|
+
}
|
|
21
|
+
describe("Validation.ParseBody", () => {
|
|
22
|
+
it("parses a JSON object", () => (0, chai_1.expect)(components_1.Validation.ParseBody(body({ name: "a", tags: [1, null] }))).to.eql({
|
|
23
|
+
name: "a",
|
|
24
|
+
tags: [1, null],
|
|
25
|
+
}));
|
|
26
|
+
it("hands back a body a route already parsed, with dates and undefined", () => {
|
|
27
|
+
const stamped = {
|
|
28
|
+
at: new Date(0),
|
|
29
|
+
nested: { list: [new Date(1), "x"], gone: undefined },
|
|
30
|
+
};
|
|
31
|
+
(0, chai_1.expect)(components_1.Validation.ParseBody(stamped)).to.equal(stamped);
|
|
32
|
+
});
|
|
33
|
+
it("refuses a body that is not a JSON object", () => {
|
|
34
|
+
(0, chai_1.expect)([
|
|
35
|
+
statusOfRefusal(Buffer.from("{")),
|
|
36
|
+
statusOfRefusal(body([1])),
|
|
37
|
+
statusOfRefusal(Buffer.from("null")),
|
|
38
|
+
statusOfRefusal(Buffer.from('"text"')),
|
|
39
|
+
]).to.eql([400, 400, 400, 400]);
|
|
40
|
+
});
|
|
41
|
+
it("accepts a body nested far deeper than the call stack allows", () => {
|
|
42
|
+
const depth = 50000;
|
|
43
|
+
const nested = `{"a":${"[".repeat(depth)}${"]".repeat(depth)}}`;
|
|
44
|
+
(0, chai_1.expect)(Object.keys(components_1.Validation.ParseBody(Buffer.from(nested)))).to.eql([
|
|
45
|
+
"a",
|
|
46
|
+
]);
|
|
47
|
+
});
|
|
48
|
+
it("refuses a body nested deeper than the call stack allows that ends in a function", () => {
|
|
49
|
+
const deepest = Object.create(null);
|
|
50
|
+
deepest.run = () => 1;
|
|
51
|
+
let nested = deepest;
|
|
52
|
+
for (let level = 0; level < 50000; level++)
|
|
53
|
+
nested = { next: nested };
|
|
54
|
+
(0, chai_1.expect)(statusOfRefusal(nested)).to.equal(400);
|
|
55
|
+
});
|
|
56
|
+
it("accepts a body without a prototype", () => {
|
|
57
|
+
const bare = Object.create(null);
|
|
58
|
+
bare.name = "a";
|
|
59
|
+
(0, chai_1.expect)(components_1.Validation.ParseBody(bare)).to.equal(bare);
|
|
60
|
+
});
|
|
61
|
+
it("refuses a parsed body holding what JSON cannot", () => {
|
|
62
|
+
const withFunction = Object.create(null);
|
|
63
|
+
withFunction.run = () => 1;
|
|
64
|
+
const withInstance = Object.create(null);
|
|
65
|
+
withInstance.price = new Money();
|
|
66
|
+
const withBigInt = Object.create(null);
|
|
67
|
+
withBigInt.count = 1n;
|
|
68
|
+
const withUndefined = Object.create(null);
|
|
69
|
+
withUndefined.list = [1, undefined];
|
|
70
|
+
const cyclic = {};
|
|
71
|
+
cyclic.self = cyclic;
|
|
72
|
+
(0, chai_1.expect)([withFunction, withInstance, withBigInt, withUndefined, cyclic].map(statusOfRefusal)).to.eql([400, 400, 400, 400, 400]);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=parse_body.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse_body.test.js","sourceRoot":"","sources":["../../../src/tests/components/parse_body.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,13 @@ 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 components_1 = require("
|
|
21
|
-
const metadata_1 = require("
|
|
19
|
+
const index_1 = require("../../index");
|
|
20
|
+
const components_1 = require("../../components");
|
|
21
|
+
const metadata_1 = require("../../metadata");
|
|
22
22
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
23
|
+
const http_1 = require("../internal/http");
|
|
23
24
|
const utils_1 = require("../utils");
|
|
25
|
+
const guards_1 = require("../../internal/guards");
|
|
24
26
|
const currentTestName = node_path_1.default
|
|
25
27
|
.basename(__filename)
|
|
26
28
|
.replace(/\.test\.(ts|js)$/, "");
|
|
@@ -47,23 +49,23 @@ Event = __decorate([
|
|
|
47
49
|
], Event);
|
|
48
50
|
class EventModel extends (0, interface_database_decorators_1.BasicDataModel)(Event, eventTableName) {
|
|
49
51
|
}
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
+
const parseDate = (value) => {
|
|
53
|
+
if (!(0, guards_1.isString)(value) || Number.isNaN(Date.parse(value))) {
|
|
52
54
|
return { success: false };
|
|
53
55
|
}
|
|
54
56
|
return { success: true, data: new Date(value) };
|
|
55
|
-
}
|
|
56
|
-
async
|
|
57
|
-
if (
|
|
57
|
+
};
|
|
58
|
+
const normalizeCode = async (value) => {
|
|
59
|
+
if (!(0, guards_1.isString)(value)) {
|
|
58
60
|
return { success: false };
|
|
59
61
|
}
|
|
60
62
|
return { success: true, data: value.trim().toUpperCase() };
|
|
61
|
-
}
|
|
63
|
+
};
|
|
62
64
|
describe("Field Validator parsed value", () => {
|
|
63
|
-
it("writes the parsed value on new", async () => await
|
|
64
|
-
it("writes the parsed value on edit", async () => await
|
|
65
|
-
it("writes the value of an asynchronous parse", async () => await
|
|
66
|
-
it("rejects a failed parse with the invalid field message", async () => await
|
|
65
|
+
it("writes the parsed value on new", async () => await expectWritesParsedValueOnNew());
|
|
66
|
+
it("writes the parsed value on edit", async () => await expectWritesParsedValueOnEdit());
|
|
67
|
+
it("writes the value of an asynchronous parse", async () => await expectWritesAsyncParsedValue());
|
|
68
|
+
it("rejects a failed parse with the invalid field message", async () => await expectRejectsFailedParse());
|
|
67
69
|
});
|
|
68
70
|
async function _dropEventTable() {
|
|
69
71
|
const schema = interface_database_1.Schema.get(schemaName);
|
|
@@ -72,7 +74,7 @@ async function _dropEventTable() {
|
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
async function _createDataController(testName, event) {
|
|
75
|
-
let _ParsedValueTestAPI = class _ParsedValueTestAPI extends (0,
|
|
77
|
+
let _ParsedValueTestAPI = class _ParsedValueTestAPI extends (0, index_1.DataController)(Event, { new: index_1.DefaultRoutes.New, edit: index_1.DefaultRoutes.Edit }, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
76
78
|
};
|
|
77
79
|
__decorate([
|
|
78
80
|
(0, metadata_1.ModelReference)(),
|
|
@@ -94,7 +96,7 @@ async function _createDataController(testName, event) {
|
|
|
94
96
|
__metadata("design:type", String)
|
|
95
97
|
], _ParsedValueTestAPI.prototype, "code", void 0);
|
|
96
98
|
_ParsedValueTestAPI = __decorate([
|
|
97
|
-
(0,
|
|
99
|
+
(0, index_1.RegisterDataController)()
|
|
98
100
|
], _ParsedValueTestAPI);
|
|
99
101
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
100
102
|
await _dropEventTable();
|
|
@@ -105,19 +107,19 @@ async function _createDataController(testName, event) {
|
|
|
105
107
|
}
|
|
106
108
|
return { eventModel };
|
|
107
109
|
}
|
|
108
|
-
async function
|
|
110
|
+
async function expectWritesParsedValueOnNew() {
|
|
109
111
|
const { eventModel } = await _createDataController((0, utils_1.getFunctionName)());
|
|
110
112
|
const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
|
|
111
113
|
name: "Launch",
|
|
112
114
|
startsAt,
|
|
113
115
|
});
|
|
114
116
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
115
|
-
const { _id: id } =
|
|
117
|
+
const { _id: id } = await (0, http_1.readJson)(response);
|
|
116
118
|
const event = await eventModel.get(id);
|
|
117
119
|
(0, chai_1.expect)(event?.startsAt).to.be.instanceOf(Date);
|
|
118
120
|
(0, chai_1.expect)(event?.startsAt.toISOString()).to.equal(startsAt);
|
|
119
121
|
}
|
|
120
|
-
async function
|
|
122
|
+
async function expectWritesParsedValueOnEdit() {
|
|
121
123
|
const { id, eventModel } = await _createDataController((0, utils_1.getFunctionName)(), {
|
|
122
124
|
name: "Launch",
|
|
123
125
|
startsAt: new Date(startsAt),
|
|
@@ -130,18 +132,18 @@ async function writesParsedValueOnEdit() {
|
|
|
130
132
|
(0, chai_1.expect)(event?.startsAt).to.be.instanceOf(Date);
|
|
131
133
|
(0, chai_1.expect)(event?.startsAt.toISOString()).to.equal(editedStartsAt);
|
|
132
134
|
}
|
|
133
|
-
async function
|
|
135
|
+
async function expectWritesAsyncParsedValue() {
|
|
134
136
|
const { eventModel } = await _createDataController((0, utils_1.getFunctionName)());
|
|
135
137
|
const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
|
|
136
138
|
name: "Launch",
|
|
137
139
|
code: " launch-26 ",
|
|
138
140
|
});
|
|
139
141
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
140
|
-
const { _id: id } =
|
|
142
|
+
const { _id: id } = await (0, http_1.readJson)(response);
|
|
141
143
|
const event = await eventModel.get(id);
|
|
142
144
|
(0, chai_1.expect)(event?.code).to.equal("LAUNCH-26");
|
|
143
145
|
}
|
|
144
|
-
async function
|
|
146
|
+
async function expectRejectsFailedParse() {
|
|
145
147
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
146
148
|
const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
|
|
147
149
|
name: "Launch",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsed_value.test.js","sourceRoot":"","sources":["../../../src/tests/components/parsed_value.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,6DAAuD;AACvD,uEAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"parsed_value.test.js","sourceRoot":"","sources":["../../../src/tests/components/parsed_value.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|