@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
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const chai_1 = require("chai");
|
|
4
|
-
const components_1 = require("
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const components_1 = require("../../components");
|
|
5
|
+
const metadata_1 = require("../../metadata");
|
|
6
|
+
const http_1 = require("../internal/http");
|
|
7
|
+
const meta = new metadata_1.DataAPIMeta(Object)
|
|
8
|
+
.setFilter("documentType", () => true)
|
|
9
|
+
.setFilter("status", () => true);
|
|
8
10
|
function context(query, options) {
|
|
9
|
-
return {
|
|
10
|
-
url: new URL(`http://localhost/?${query}`),
|
|
11
|
+
return Object.assign((0, http_1.createRequestContext)(`http://localhost/?${query}`), {
|
|
11
12
|
dataAPIEntry: { options },
|
|
12
|
-
};
|
|
13
|
+
});
|
|
13
14
|
}
|
|
14
15
|
function extract(ctx) {
|
|
15
16
|
return components_1.Parameters.ExtractGeneric(ctx, meta, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_options.test.js","sourceRoot":"","sources":["../../../src/tests/components/filter_options.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,
|
|
1
|
+
{"version":3,"file":"filter_options.test.js","sourceRoot":"","sources":["../../../src/tests/components/filter_options.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,10 @@ 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
|
+
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)
|
|
@@ -58,12 +59,12 @@ Member = __decorate([
|
|
|
58
59
|
class MemberModel extends (0, interface_database_decorators_1.BasicDataModel)(Member, memberTableName) {
|
|
59
60
|
}
|
|
60
61
|
describe("Foreign and Computed fields on the same key", () => {
|
|
61
|
-
it("lists the computed value read from the key and the resolved relation", async () => await
|
|
62
|
-
it("gets the computed value read from the key and the resolved relation", async () => await
|
|
63
|
-
it("combines several filters on one field with AND", async () => await
|
|
62
|
+
it("lists the computed value read from the key and the resolved relation", async () => await expectListsComputedFromForeignKey());
|
|
63
|
+
it("gets the computed value read from the key and the resolved relation", async () => await expectGetsComputedFromForeignKey());
|
|
64
|
+
it("combines several filters on one field with AND", async () => await expectCombinesFiltersOnOneField());
|
|
64
65
|
});
|
|
65
66
|
async function _createDataController(testName) {
|
|
66
|
-
let _ForeignComputedAPI = class _ForeignComputedAPI extends (0,
|
|
67
|
+
let _ForeignComputedAPI = class _ForeignComputedAPI extends (0, index_1.DataController)(Member, { list: index_1.DefaultRoutes.List, get: index_1.DefaultRoutes.Get }, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
67
68
|
};
|
|
68
69
|
__decorate([
|
|
69
70
|
(0, metadata_1.ModelReference)(),
|
|
@@ -95,14 +96,11 @@ async function _createDataController(testName) {
|
|
|
95
96
|
], _ForeignComputedAPI.prototype, "team", void 0);
|
|
96
97
|
__decorate([
|
|
97
98
|
(0, metadata_1.Listable)(),
|
|
98
|
-
(0, metadata_1.Computed)((row, db) => db
|
|
99
|
-
.table(memberTableName)
|
|
100
|
-
.getAll(row.key("team"), "team")
|
|
101
|
-
.count(), { default: 0 }),
|
|
99
|
+
(0, metadata_1.Computed)((row, db) => db.table(memberTableName).getAll(row.key("team"), "team").count(), { default: 0 }),
|
|
102
100
|
__metadata("design:type", Number)
|
|
103
101
|
], _ForeignComputedAPI.prototype, "teammates", void 0);
|
|
104
102
|
_ForeignComputedAPI = __decorate([
|
|
105
|
-
(0,
|
|
103
|
+
(0, index_1.RegisterDataController)()
|
|
106
104
|
], _ForeignComputedAPI);
|
|
107
105
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
108
106
|
await _dropTables();
|
|
@@ -129,9 +127,9 @@ async function _dropTables() {
|
|
|
129
127
|
async function _list(testName, query) {
|
|
130
128
|
const response = await (0, utils_1.request)(testName, "list", "GET", undefined, query);
|
|
131
129
|
(0, chai_1.expect)(response.status, await response.clone().text()).to.equal(200);
|
|
132
|
-
return
|
|
130
|
+
return await (0, http_1.readJson)(response);
|
|
133
131
|
}
|
|
134
|
-
async function
|
|
132
|
+
async function expectListsComputedFromForeignKey() {
|
|
135
133
|
const { teamIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
136
134
|
const data = await _list((0, utils_1.getFunctionName)(), [["limit", "10"]]);
|
|
137
135
|
const byLabel = Object.fromEntries(data.results.map((m) => [m.label, m]));
|
|
@@ -143,15 +141,15 @@ async function listsComputedFromForeignKey() {
|
|
|
143
141
|
name: "Blue",
|
|
144
142
|
});
|
|
145
143
|
}
|
|
146
|
-
async function
|
|
144
|
+
async function expectGetsComputedFromForeignKey() {
|
|
147
145
|
const { teamIds, memberIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
148
146
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id: memberIds[3] });
|
|
149
147
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
150
|
-
const member =
|
|
148
|
+
const member = await (0, http_1.readJson)(response);
|
|
151
149
|
(0, chai_1.expect)(member.teammates).to.equal(1);
|
|
152
150
|
(0, chai_1.expect)(member.team).to.deep.equal({ _id: teamIds[1], name: "Blue" });
|
|
153
151
|
}
|
|
154
|
-
async function
|
|
152
|
+
async function expectCombinesFiltersOnOneField() {
|
|
155
153
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
156
154
|
const range = await _list((0, utils_1.getFunctionName)(), [
|
|
157
155
|
["filter_age", "ge:18"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foreign_computed.test.js","sourceRoot":"","sources":["../../../src/tests/components/foreign_computed.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,6DAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"foreign_computed.test.js","sourceRoot":"","sources":["../../../src/tests/components/foreign_computed.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,10 @@ 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
19
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
20
|
-
const
|
|
21
|
-
const metadata_1 = require("
|
|
20
|
+
const index_1 = require("../../index");
|
|
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");
|
|
24
25
|
const currentTestName = node_path_1.default
|
|
25
26
|
.basename(__filename)
|
|
@@ -28,7 +29,6 @@ const authorTableName = `authors-${currentTestName}`;
|
|
|
28
29
|
const bookTableName = `books-${currentTestName}`;
|
|
29
30
|
const shelfTableName = `shelves-${currentTestName}`;
|
|
30
31
|
const schemaName = "default";
|
|
31
|
-
// Join source for the relation target's @Joined label.
|
|
32
32
|
let Author = class Author extends interface_database_decorators_1.Table {
|
|
33
33
|
};
|
|
34
34
|
__decorate([
|
|
@@ -40,8 +40,6 @@ Author = __decorate([
|
|
|
40
40
|
], Author);
|
|
41
41
|
class AuthorModel extends (0, interface_database_decorators_1.BasicDataModel)(Author, authorTableName) {
|
|
42
42
|
}
|
|
43
|
-
// Relation TARGET: `authorName` is a @Joined field (not a physical column),
|
|
44
|
-
// pulled from Author via authorId — like memberSettingDataAPI.name from User.
|
|
45
43
|
let Book = class Book extends interface_database_decorators_1.Table {
|
|
46
44
|
};
|
|
47
45
|
__decorate([
|
|
@@ -58,8 +56,6 @@ Book = __decorate([
|
|
|
58
56
|
], Book);
|
|
59
57
|
class BookModel extends (0, interface_database_decorators_1.BasicDataModel)(Book, bookTableName) {
|
|
60
58
|
}
|
|
61
|
-
// PARENT (the listed controller): `book` is a relation to Book, whose label is
|
|
62
|
-
// the joined `authorName`.
|
|
63
59
|
let Shelf = class Shelf extends interface_database_decorators_1.Table {
|
|
64
60
|
};
|
|
65
61
|
__decorate([
|
|
@@ -74,13 +70,13 @@ class ShelfModel extends (0, interface_database_decorators_1.BasicDataModel)(She
|
|
|
74
70
|
}
|
|
75
71
|
const orphanBookId = "orphan-book-id";
|
|
76
72
|
describe("Foreign relation with @Joined target label", () => {
|
|
77
|
-
it("resolves a joined label through a relation in list", async () => await
|
|
78
|
-
it("returns null relation for an orphan foreign key", async () => await
|
|
79
|
-
it("resolves a joined label through a relation in get", async () => await
|
|
80
|
-
it("returns null relation for an orphan foreign key in get", async () => await
|
|
73
|
+
it("resolves a joined label through a relation in list", async () => await expectResolvesJoinedLabelInList());
|
|
74
|
+
it("returns null relation for an orphan foreign key", async () => await expectReturnsNullForOrphanRelation());
|
|
75
|
+
it("resolves a joined label through a relation in get", async () => await expectResolvesJoinedLabelInGet());
|
|
76
|
+
it("returns null relation for an orphan foreign key in get", async () => await expectReturnsNullForOrphanRelationInGet());
|
|
81
77
|
});
|
|
82
78
|
async function _setup(testName) {
|
|
83
|
-
let _BookTargetAPI = class _BookTargetAPI extends (0,
|
|
79
|
+
let _BookTargetAPI = class _BookTargetAPI extends (0, index_1.DataController)(Book, { list: index_1.DefaultRoutes.List }, (0, interface_api_1.Controller)(`/${testName}_book`)) {
|
|
84
80
|
};
|
|
85
81
|
__decorate([
|
|
86
82
|
(0, metadata_1.ModelReference)(),
|
|
@@ -112,10 +108,10 @@ async function _setup(testName) {
|
|
|
112
108
|
__metadata("design:type", String)
|
|
113
109
|
], _BookTargetAPI.prototype, "authorName", void 0);
|
|
114
110
|
_BookTargetAPI = __decorate([
|
|
115
|
-
(0,
|
|
111
|
+
(0, index_1.RegisterDataController)()
|
|
116
112
|
], _BookTargetAPI);
|
|
117
113
|
const bookMeta = (0, interface_core_1.GetMetadata)(_BookTargetAPI, metadata_1.DataAPIMeta);
|
|
118
|
-
let _ShelfAPI = class _ShelfAPI extends (0,
|
|
114
|
+
let _ShelfAPI = class _ShelfAPI extends (0, index_1.DataController)(Shelf, { list: index_1.DefaultRoutes.List, get: index_1.DefaultRoutes.Get }, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
119
115
|
};
|
|
120
116
|
__decorate([
|
|
121
117
|
(0, metadata_1.ModelReference)(),
|
|
@@ -134,7 +130,7 @@ async function _setup(testName) {
|
|
|
134
130
|
__metadata("design:type", String)
|
|
135
131
|
], _ShelfAPI.prototype, "book", void 0);
|
|
136
132
|
_ShelfAPI = __decorate([
|
|
137
|
-
(0,
|
|
133
|
+
(0, index_1.RegisterDataController)()
|
|
138
134
|
], _ShelfAPI);
|
|
139
135
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
140
136
|
await _dropTables();
|
|
@@ -168,16 +164,14 @@ async function _dropTables() {
|
|
|
168
164
|
await schema.instance().table(authorTableName).delete();
|
|
169
165
|
}
|
|
170
166
|
}
|
|
171
|
-
async function
|
|
167
|
+
async function expectResolvesJoinedLabelInList() {
|
|
172
168
|
await _setup((0, utils_1.getFunctionName)());
|
|
173
169
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
174
170
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
175
|
-
const data =
|
|
171
|
+
const data = await (0, http_1.readJson)(response);
|
|
176
172
|
const alpha = data.results.find((s) => s.book?.title === "Alpha Rising");
|
|
177
173
|
(0, chai_1.expect)(alpha, "row for Alpha Rising").to.not.equal(undefined);
|
|
178
|
-
// Core regression: the joined label resolves through the relation.
|
|
179
174
|
(0, chai_1.expect)(alpha?.book?.authorName).to.equal("Alice Carter");
|
|
180
|
-
// The join key must not leak: only the requested fields are exposed.
|
|
181
175
|
(0, chai_1.expect)(Object.keys(alpha?.book ?? {}).sort()).to.deep.equal([
|
|
182
176
|
"_id",
|
|
183
177
|
"authorName",
|
|
@@ -186,38 +180,36 @@ async function resolvesJoinedLabelInList() {
|
|
|
186
180
|
const beta = data.results.find((s) => s.book?.title === "Beta Stories");
|
|
187
181
|
(0, chai_1.expect)(beta?.book?.authorName).to.equal("Bob Stone");
|
|
188
182
|
}
|
|
189
|
-
async function
|
|
183
|
+
async function expectReturnsNullForOrphanRelation() {
|
|
190
184
|
await _setup((0, utils_1.getFunctionName)());
|
|
191
185
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
192
186
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
193
|
-
const data =
|
|
187
|
+
const data = await (0, http_1.readJson)(response);
|
|
194
188
|
const resolved = data.results.filter((s) => s.book?.title);
|
|
195
189
|
(0, chai_1.expect)(resolved).to.have.lengthOf(2);
|
|
196
|
-
// The orphan shelf points to a non-existent book → relation stays null.
|
|
197
190
|
const orphan = data.results.find((s) => !s.book?.title);
|
|
198
191
|
(0, chai_1.expect)(orphan, "orphan relation row present").to.not.equal(undefined);
|
|
199
192
|
(0, chai_1.expect)(orphan?.book, "orphan relation value").to.equal(null);
|
|
200
193
|
}
|
|
201
|
-
async function
|
|
194
|
+
async function expectResolvesJoinedLabelInGet() {
|
|
202
195
|
const { shelfIds } = await _setup((0, utils_1.getFunctionName)());
|
|
203
196
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id: shelfIds[0] });
|
|
204
197
|
if (response.status !== 200) {
|
|
205
198
|
const text = await response.text();
|
|
206
199
|
throw new Error(`get failed (${response.status}): ${text}`);
|
|
207
200
|
}
|
|
208
|
-
const shelf =
|
|
201
|
+
const shelf = await (0, http_1.readJson)(response);
|
|
209
202
|
(0, chai_1.expect)(shelf.book?.title).to.equal("Alpha Rising");
|
|
210
203
|
(0, chai_1.expect)(shelf.book?.authorName).to.equal("Alice Carter");
|
|
211
204
|
}
|
|
212
|
-
async function
|
|
205
|
+
async function expectReturnsNullForOrphanRelationInGet() {
|
|
213
206
|
const { shelfIds } = await _setup((0, utils_1.getFunctionName)());
|
|
214
|
-
// shelfIds[2] points to an orphan book id.
|
|
215
207
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id: shelfIds[2] });
|
|
216
208
|
if (response.status !== 200) {
|
|
217
209
|
const text = await response.text();
|
|
218
210
|
throw new Error(`get orphan failed (${response.status}): ${text}`);
|
|
219
211
|
}
|
|
220
|
-
const shelf =
|
|
212
|
+
const shelf = await (0, http_1.readJson)(response);
|
|
221
213
|
(0, chai_1.expect)(shelf.book, "orphan relation value in get").to.equal(null);
|
|
222
214
|
}
|
|
223
215
|
//# sourceMappingURL=foreign_joined.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foreign_joined.test.js","sourceRoot":"","sources":["../../../src/tests/components/foreign_joined.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,6DAAuD;AACvD,uEAAwD;AACxD,+DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"foreign_joined.test.js","sourceRoot":"","sources":["../../../src/tests/components/foreign_joined.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,10 @@ 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
|
|
19
|
+
const index_1 = require("../../index");
|
|
20
20
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
21
|
-
const metadata_1 = require("
|
|
21
|
+
const metadata_1 = require("../../metadata");
|
|
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)
|
|
@@ -68,21 +69,21 @@ const authorsDataset = [
|
|
|
68
69
|
];
|
|
69
70
|
const orphanAuthorId = "orphan-author-id";
|
|
70
71
|
describe("Field Joined", () => {
|
|
71
|
-
it("lists rows with joined fields flattened", async () => await
|
|
72
|
-
it("gets row with joined fields flattened", async () => await
|
|
73
|
-
it("sorts by joined field ascending", async () => await
|
|
74
|
-
it("sorts by joined field descending", async () => await
|
|
75
|
-
it("filters by joined field", async () => await
|
|
76
|
-
it("keeps joined fields on paginated rows when unused by sort and filter", async () => await
|
|
77
|
-
it("resolves computed fields reading a non-plucked joined field", async () => await
|
|
78
|
-
it("returns null for orphan foreign key", async () => await
|
|
79
|
-
it("ignores joined field on edit body", async () => await
|
|
72
|
+
it("lists rows with joined fields flattened", async () => await expectListsRowsWithJoinedFieldsFlattened());
|
|
73
|
+
it("gets row with joined fields flattened", async () => await expectGetsRowWithJoinedFieldsFlattened());
|
|
74
|
+
it("sorts by joined field ascending", async () => await expectSortsByJoinedFieldAscending());
|
|
75
|
+
it("sorts by joined field descending", async () => await expectSortsByJoinedFieldDescending());
|
|
76
|
+
it("filters by joined field", async () => await expectFiltersByJoinedField());
|
|
77
|
+
it("keeps joined fields on paginated rows when unused by sort and filter", async () => await expectKeepsJoinedFieldsOnPaginatedRows());
|
|
78
|
+
it("resolves computed fields reading a non-plucked joined field", async () => await expectResolvesComputedFieldReadingNonPluckedJoinedField());
|
|
79
|
+
it("returns null for orphan foreign key", async () => await expectReturnsNullForOrphanForeignKey());
|
|
80
|
+
it("ignores joined field on edit body", async () => await expectIgnoresJoinedFieldOnEdit());
|
|
80
81
|
});
|
|
81
82
|
async function _createDataController(testName) {
|
|
82
|
-
let _JoinedTestAPI = class _JoinedTestAPI extends (0,
|
|
83
|
-
list:
|
|
84
|
-
get:
|
|
85
|
-
edit:
|
|
83
|
+
let _JoinedTestAPI = class _JoinedTestAPI extends (0, index_1.DataController)(Book, {
|
|
84
|
+
list: index_1.DefaultRoutes.List,
|
|
85
|
+
get: index_1.DefaultRoutes.Get,
|
|
86
|
+
edit: index_1.DefaultRoutes.Edit,
|
|
86
87
|
}, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
87
88
|
};
|
|
88
89
|
__decorate([
|
|
@@ -133,17 +134,13 @@ async function _createDataController(testName) {
|
|
|
133
134
|
__metadata("design:type", String)
|
|
134
135
|
], _JoinedTestAPI.prototype, "email", void 0);
|
|
135
136
|
_JoinedTestAPI = __decorate([
|
|
136
|
-
(0,
|
|
137
|
+
(0, index_1.RegisterDataController)()
|
|
137
138
|
], _JoinedTestAPI);
|
|
138
139
|
return _seedTables();
|
|
139
140
|
}
|
|
140
|
-
// Regression fixture for the lazy joined-field split: `name` is a joined
|
|
141
|
-
// field that is neither listable, filtered, nor sorted, while `display` is a
|
|
142
|
-
// listable computed field whose expression reads it. The deferred joined
|
|
143
|
-
// lookup must still run before the computed expression on the paginated rows.
|
|
144
141
|
async function _createComputedJoinedController(testName) {
|
|
145
|
-
let _JoinedComputedTestAPI = class _JoinedComputedTestAPI extends (0,
|
|
146
|
-
list:
|
|
142
|
+
let _JoinedComputedTestAPI = class _JoinedComputedTestAPI extends (0, index_1.DataController)(Book, {
|
|
143
|
+
list: index_1.DefaultRoutes.List,
|
|
147
144
|
}, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
148
145
|
};
|
|
149
146
|
__decorate([
|
|
@@ -175,7 +172,7 @@ async function _createComputedJoinedController(testName) {
|
|
|
175
172
|
__metadata("design:type", String)
|
|
176
173
|
], _JoinedComputedTestAPI.prototype, "display", void 0);
|
|
177
174
|
_JoinedComputedTestAPI = __decorate([
|
|
178
|
-
(0,
|
|
175
|
+
(0, index_1.RegisterDataController)()
|
|
179
176
|
], _JoinedComputedTestAPI);
|
|
180
177
|
return _seedTables();
|
|
181
178
|
}
|
|
@@ -205,63 +202,63 @@ async function _dropTables() {
|
|
|
205
202
|
await schema.instance().table(authorTableName).delete();
|
|
206
203
|
}
|
|
207
204
|
}
|
|
208
|
-
async function
|
|
205
|
+
async function expectListsRowsWithJoinedFieldsFlattened() {
|
|
209
206
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
210
207
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
211
208
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
212
|
-
const data =
|
|
209
|
+
const data = await (0, http_1.readJson)(response);
|
|
213
210
|
(0, chai_1.expect)(data.results).to.have.lengthOf(5);
|
|
214
211
|
const alphaRising = data.results.find((b) => b.title === "Alpha Rising");
|
|
215
212
|
(0, chai_1.expect)(alphaRising).to.not.equal(undefined);
|
|
216
213
|
(0, chai_1.expect)(alphaRising?.name).to.equal("Alice Carter");
|
|
217
214
|
(0, chai_1.expect)(alphaRising?.email).to.equal("alice@example.com");
|
|
218
|
-
(0, chai_1.expect)(
|
|
215
|
+
(0, chai_1.expect)(alphaRising?.authorId).to.be.a("string");
|
|
219
216
|
const betaStories = data.results.find((b) => b.title === "Beta Stories");
|
|
220
217
|
(0, chai_1.expect)(betaStories?.name).to.equal("Bob Stone");
|
|
221
218
|
(0, chai_1.expect)(betaStories?.email).to.equal("bob@example.com");
|
|
222
219
|
}
|
|
223
|
-
async function
|
|
220
|
+
async function expectGetsRowWithJoinedFieldsFlattened() {
|
|
224
221
|
const { bookIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
225
222
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id: bookIds[0] });
|
|
226
223
|
if (response.status !== 200) {
|
|
227
224
|
const text = await response.text();
|
|
228
225
|
throw new Error(`get failed (${response.status}): ${text}`);
|
|
229
226
|
}
|
|
230
|
-
const book =
|
|
227
|
+
const book = await (0, http_1.readJson)(response);
|
|
231
228
|
(0, chai_1.expect)(book.title).to.equal("Alpha Rising");
|
|
232
229
|
(0, chai_1.expect)(book.name).to.equal("Alice Carter");
|
|
233
230
|
(0, chai_1.expect)(book.email).to.equal("alice@example.com");
|
|
234
|
-
(0, chai_1.expect)(
|
|
231
|
+
(0, chai_1.expect)(book.authorId).to.be.a("string");
|
|
235
232
|
}
|
|
236
|
-
async function
|
|
233
|
+
async function expectSortsByJoinedFieldAscending() {
|
|
237
234
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
238
235
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
239
236
|
sortKey: "name",
|
|
240
237
|
sortDirection: "asc",
|
|
241
238
|
});
|
|
242
239
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
243
|
-
const data =
|
|
240
|
+
const data = await (0, http_1.readJson)(response);
|
|
244
241
|
const namesInOrder = data.results
|
|
245
242
|
.map((b) => b.name)
|
|
246
|
-
.filter((n) =>
|
|
243
|
+
.filter((n) => n !== null);
|
|
247
244
|
const sorted = [...namesInOrder].sort((a, b) => a.localeCompare(b));
|
|
248
245
|
(0, chai_1.expect)(namesInOrder).to.deep.equal(sorted);
|
|
249
246
|
}
|
|
250
|
-
async function
|
|
247
|
+
async function expectSortsByJoinedFieldDescending() {
|
|
251
248
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
252
249
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
253
250
|
sortKey: "name",
|
|
254
251
|
sortDirection: "desc",
|
|
255
252
|
});
|
|
256
253
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
257
|
-
const data =
|
|
254
|
+
const data = await (0, http_1.readJson)(response);
|
|
258
255
|
const namesInOrder = data.results
|
|
259
256
|
.map((b) => b.name)
|
|
260
|
-
.filter((n) =>
|
|
257
|
+
.filter((n) => n !== null);
|
|
261
258
|
const sorted = [...namesInOrder].sort((a, b) => b.localeCompare(a));
|
|
262
259
|
(0, chai_1.expect)(namesInOrder).to.deep.equal(sorted);
|
|
263
260
|
}
|
|
264
|
-
async function
|
|
261
|
+
async function expectFiltersByJoinedField() {
|
|
265
262
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
266
263
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
267
264
|
filter_name: "eq:Alice Carter",
|
|
@@ -270,13 +267,13 @@ async function filtersByJoinedField() {
|
|
|
270
267
|
const text = await response.text();
|
|
271
268
|
throw new Error(`filter failed (${response.status}): ${text}`);
|
|
272
269
|
}
|
|
273
|
-
const data =
|
|
270
|
+
const data = await (0, http_1.readJson)(response);
|
|
274
271
|
(0, chai_1.expect)(data.results.length).to.equal(2);
|
|
275
272
|
for (const book of data.results) {
|
|
276
273
|
(0, chai_1.expect)(book.name).to.equal("Alice Carter");
|
|
277
274
|
}
|
|
278
275
|
}
|
|
279
|
-
async function
|
|
276
|
+
async function expectKeepsJoinedFieldsOnPaginatedRows() {
|
|
280
277
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
281
278
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
282
279
|
sortKey: "title",
|
|
@@ -285,7 +282,7 @@ async function keepsJoinedFieldsOnPaginatedRows() {
|
|
|
285
282
|
limit: "2",
|
|
286
283
|
});
|
|
287
284
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
288
|
-
const data =
|
|
285
|
+
const data = await (0, http_1.readJson)(response);
|
|
289
286
|
(0, chai_1.expect)(data.total).to.equal(5);
|
|
290
287
|
(0, chai_1.expect)(data.results.map((b) => b.title)).to.deep.equal([
|
|
291
288
|
"Alpha Rising",
|
|
@@ -300,31 +297,30 @@ async function keepsJoinedFieldsOnPaginatedRows() {
|
|
|
300
297
|
"bob@example.com",
|
|
301
298
|
]);
|
|
302
299
|
}
|
|
303
|
-
async function
|
|
300
|
+
async function expectResolvesComputedFieldReadingNonPluckedJoinedField() {
|
|
304
301
|
await _createComputedJoinedController((0, utils_1.getFunctionName)());
|
|
305
302
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
306
303
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
307
|
-
const data =
|
|
304
|
+
const data = await (0, http_1.readJson)(response);
|
|
308
305
|
(0, chai_1.expect)(data.total).to.equal(5);
|
|
309
306
|
(0, chai_1.expect)(data.results).to.have.lengthOf(5);
|
|
310
307
|
const alphaRising = data.results.find((b) => b.title === "Alpha Rising");
|
|
311
308
|
(0, chai_1.expect)(alphaRising).to.not.equal(undefined);
|
|
312
309
|
(0, chai_1.expect)(alphaRising?.display).to.equal("Alice Carter (author)");
|
|
313
|
-
// the joined field itself is not listable, so it must stay out of the response
|
|
314
310
|
(0, chai_1.expect)(alphaRising?.name).to.equal(undefined);
|
|
315
311
|
}
|
|
316
|
-
async function
|
|
312
|
+
async function expectReturnsNullForOrphanForeignKey() {
|
|
317
313
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
318
314
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
319
315
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
320
|
-
const data =
|
|
316
|
+
const data = await (0, http_1.readJson)(response);
|
|
321
317
|
const orphan = data.results.find((b) => b.title === "Lost Chapter");
|
|
322
318
|
(0, chai_1.expect)(orphan).to.not.equal(undefined);
|
|
323
319
|
(0, chai_1.expect)(orphan?.name).to.equal(null);
|
|
324
320
|
(0, chai_1.expect)(orphan?.email).to.equal(null);
|
|
325
321
|
(0, chai_1.expect)(orphan?.authorId).to.equal(orphanAuthorId);
|
|
326
322
|
}
|
|
327
|
-
async function
|
|
323
|
+
async function expectIgnoresJoinedFieldOnEdit() {
|
|
328
324
|
const { bookIds, bookModel, authorIds, authorModel } = await _createDataController((0, utils_1.getFunctionName)());
|
|
329
325
|
const editPayload = {
|
|
330
326
|
title: "Alpha Rising (revised)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joined.test.js","sourceRoot":"","sources":["../../../src/tests/components/joined.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"joined.test.js","sourceRoot":"","sources":["../../../src/tests/components/joined.test.ts"],"names":[],"mappings":"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"}
|