@antelopejs/interface-data-api 0.4.0 → 0.6.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 +26 -22
- package/dist/antelope.test.js +1 -5
- package/dist/antelope.test.js.map +1 -1
- package/dist/components.d.ts +67 -39
- package/dist/components.js +106 -685
- package/dist/components.js.map +1 -1
- package/dist/index.d.ts +57 -68
- package/dist/index.js +114 -100
- package/dist/index.js.map +1 -1
- package/dist/internal/computed.d.ts +6 -0
- package/dist/internal/computed.js +51 -0
- package/dist/internal/computed.js.map +1 -0
- package/dist/internal/controller-types.d.ts +34 -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 +29 -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 +125 -0
- package/dist/internal/deferred-joined-stream.js.map +1 -0
- package/dist/internal/extractors.d.ts +25 -0
- package/dist/internal/extractors.js +31 -0
- package/dist/internal/extractors.js.map +1 -0
- package/dist/internal/field-types.d.ts +199 -0
- package/dist/internal/field-types.js +4 -0
- package/dist/internal/field-types.js.map +1 -0
- package/dist/internal/filters.d.ts +6 -0
- package/dist/internal/filters.js +22 -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 +39 -0
- package/dist/internal/guards.js +116 -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 +182 -0
- package/dist/internal/list.js.map +1 -0
- package/dist/internal/meta-records.d.ts +19 -0
- package/dist/internal/meta-records.js +78 -0
- package/dist/internal/meta-records.js.map +1 -0
- package/dist/internal/properties.d.ts +4 -0
- package/dist/internal/properties.js +45 -0
- package/dist/internal/properties.js.map +1 -0
- package/dist/internal/prototypes.d.ts +14 -0
- package/dist/internal/prototypes.js +38 -0
- package/dist/internal/prototypes.js.map +1 -0
- package/dist/internal/read-properties.d.ts +3 -0
- package/dist/internal/read-properties.js +29 -0
- package/dist/internal/read-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 +28 -0
- package/dist/internal/tables.js +48 -0
- package/dist/internal/tables.js.map +1 -0
- package/dist/internal/validation.d.ts +12 -0
- package/dist/internal/validation.js +100 -0
- package/dist/internal/validation.js.map +1 -0
- package/dist/metadata.d.ts +27 -228
- package/dist/metadata.js +84 -213
- package/dist/metadata.js.map +1 -1
- package/dist/tests/components/access_control.test.js +28 -20
- package/dist/tests/components/access_control.test.js.map +1 -1
- package/dist/tests/components/computed.test.js +36 -27
- 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 +57 -54
- package/dist/tests/components/deferred_joined.test.js.map +1 -1
- package/dist/tests/components/extract_generic.test.d.ts +1 -0
- package/dist/tests/components/extract_generic.test.js +64 -0
- package/dist/tests/components/extract_generic.test.js.map +1 -0
- package/dist/tests/components/filter_comparisons.test.d.ts +1 -0
- package/dist/tests/components/filter_comparisons.test.js +34 -0
- package/dist/tests/components/filter_comparisons.test.js.map +1 -0
- package/dist/tests/components/filter_list_route.test.d.ts +1 -0
- package/dist/tests/components/filter_list_route.test.js +182 -0
- package/dist/tests/components/filter_list_route.test.js.map +1 -0
- package/dist/tests/components/filter_options.test.js +11 -10
- package/dist/tests/components/filter_options.test.js.map +1 -1
- package/dist/tests/components/foreign_computed.test.js +23 -14
- package/dist/tests/components/foreign_computed.test.js.map +1 -1
- package/dist/tests/components/foreign_joined.test.js +31 -27
- package/dist/tests/components/foreign_joined.test.js.map +1 -1
- package/dist/tests/components/joined.test.js +59 -45
- package/dist/tests/components/joined.test.js.map +1 -1
- package/dist/tests/components/listable.test.js +78 -58
- package/dist/tests/components/listable.test.js.map +1 -1
- package/dist/tests/components/localized_sort.test.js +14 -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 +27 -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 +76 -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 +38 -32
- package/dist/tests/components/partial_edit.test.js.map +1 -1
- package/dist/tests/components/per_action_access.test.js +20 -12
- package/dist/tests/components/per_action_access.test.js.map +1 -1
- package/dist/tests/components/prototype_named_filter.test.d.ts +1 -0
- package/dist/tests/components/prototype_named_filter.test.js +87 -0
- package/dist/tests/components/prototype_named_filter.test.js.map +1 -0
- package/dist/tests/components/validator.test.js +45 -37
- package/dist/tests/components/validator.test.js.map +1 -1
- package/dist/tests/components/written_row.test.d.ts +1 -0
- package/dist/tests/components/written_row.test.js +99 -0
- package/dist/tests/components/written_row.test.js.map +1 -0
- package/dist/tests/helpers/other-instance.d.ts +11 -1
- package/dist/tests/helpers/other-instance.js +35 -9
- package/dist/tests/helpers/other-instance.js.map +1 -1
- package/dist/tests/index/field_decorator_target.test.d.ts +1 -0
- package/dist/tests/index/field_decorator_target.test.js +20 -0
- package/dist/tests/index/field_decorator_target.test.js.map +1 -0
- 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 +14 -9
- package/dist/tests/index/inheritance.test.js.map +1 -1
- package/dist/tests/index/metadata_names.test.d.ts +1 -0
- package/dist/tests/index/metadata_names.test.js +91 -0
- package/dist/tests/index/metadata_names.test.js.map +1 -0
- package/dist/tests/index/routes.test.js +49 -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 +66 -729
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/internal/controller-fields.test.d.ts +1 -0
- package/dist/tests/internal/controller-fields.test.js +25 -0
- package/dist/tests/internal/controller-fields.test.js.map +1 -0
- package/dist/tests/internal/http.d.ts +35 -0
- package/dist/tests/internal/http.js +56 -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 +162 -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 +8 -10
- 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/1.introduction.md +38 -35
- package/docs/10.joined.md +51 -40
- package/docs/11.computed.md +91 -47
- package/docs/2.data-controllers.md +50 -42
- package/docs/3.routes.md +156 -134
- package/docs/4.access-rights.md +48 -44
- package/docs/5.validators.md +65 -47
- package/docs/6.listable.md +53 -49
- package/docs/7.foreign-keys.md +55 -48
- package/docs/8.filters.md +65 -54
- package/docs/9.modifiers.md +29 -25
- package/package.json +34 -13
- package/skills/data-api-interface/SKILL.md +13 -3
- package/skills/data-api-interface/cases.json +99 -0
|
@@ -14,11 +14,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
|
+
const zod_1 = require("zod");
|
|
17
18
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
18
19
|
const interface_database_1 = require("@antelopejs/interface-database");
|
|
19
|
-
const
|
|
20
|
+
const index_1 = require("../../index");
|
|
20
21
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
21
|
-
const metadata_1 = require("
|
|
22
|
+
const metadata_1 = require("../../metadata");
|
|
23
|
+
const http_1 = require("../internal/http");
|
|
22
24
|
const utils_1 = require("../utils");
|
|
23
25
|
const currentTestName = node_path_1.default
|
|
24
26
|
.basename(__filename)
|
|
@@ -61,6 +63,23 @@ Book = __decorate([
|
|
|
61
63
|
], Book);
|
|
62
64
|
class BookModel extends (0, interface_database_decorators_1.BasicDataModel)(Book, bookTableName) {
|
|
63
65
|
}
|
|
66
|
+
const bookListedSchema = zod_1.z.looseObject({
|
|
67
|
+
_id: zod_1.z.string(),
|
|
68
|
+
authorId: zod_1.z.string(),
|
|
69
|
+
title: zod_1.z.string(),
|
|
70
|
+
price: zod_1.z.number(),
|
|
71
|
+
name: zod_1.z.string().nullable(),
|
|
72
|
+
email: zod_1.z.string().nullable(),
|
|
73
|
+
});
|
|
74
|
+
const bookListSchema = zod_1.z.looseObject({
|
|
75
|
+
results: zod_1.z.array(bookListedSchema),
|
|
76
|
+
total: zod_1.z.number(),
|
|
77
|
+
});
|
|
78
|
+
const bookDisplayedSchema = zod_1.z.looseObject({
|
|
79
|
+
title: zod_1.z.string(),
|
|
80
|
+
display: zod_1.z.string().nullable(),
|
|
81
|
+
name: zod_1.z.string().optional(),
|
|
82
|
+
});
|
|
64
83
|
const authorsDataset = [
|
|
65
84
|
{ name: "Alice Carter", email: "alice@example.com" },
|
|
66
85
|
{ name: "Bob Stone", email: "bob@example.com" },
|
|
@@ -68,21 +87,21 @@ const authorsDataset = [
|
|
|
68
87
|
];
|
|
69
88
|
const orphanAuthorId = "orphan-author-id";
|
|
70
89
|
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
|
|
90
|
+
it("lists rows with joined fields flattened", async () => await expectListsRowsWithJoinedFieldsFlattened());
|
|
91
|
+
it("gets row with joined fields flattened", async () => await expectGetsRowWithJoinedFieldsFlattened());
|
|
92
|
+
it("sorts by joined field ascending", async () => await expectSortsByJoinedFieldAscending());
|
|
93
|
+
it("sorts by joined field descending", async () => await expectSortsByJoinedFieldDescending());
|
|
94
|
+
it("filters by joined field", async () => await expectFiltersByJoinedField());
|
|
95
|
+
it("keeps joined fields on paginated rows when unused by sort and filter", async () => await expectKeepsJoinedFieldsOnPaginatedRows());
|
|
96
|
+
it("resolves computed fields reading a non-plucked joined field", async () => await expectResolvesComputedFieldReadingNonPluckedJoinedField());
|
|
97
|
+
it("returns null for orphan foreign key", async () => await expectReturnsNullForOrphanForeignKey());
|
|
98
|
+
it("ignores joined field on edit body", async () => await expectIgnoresJoinedFieldOnEdit());
|
|
80
99
|
});
|
|
81
100
|
async function _createDataController(testName) {
|
|
82
|
-
let _JoinedTestAPI = class _JoinedTestAPI extends (0,
|
|
83
|
-
list:
|
|
84
|
-
get:
|
|
85
|
-
edit:
|
|
101
|
+
let _JoinedTestAPI = class _JoinedTestAPI extends (0, index_1.DataController)(Book, {
|
|
102
|
+
list: index_1.DefaultRoutes.List,
|
|
103
|
+
get: index_1.DefaultRoutes.Get,
|
|
104
|
+
edit: index_1.DefaultRoutes.Edit,
|
|
86
105
|
}, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
87
106
|
};
|
|
88
107
|
__decorate([
|
|
@@ -133,17 +152,13 @@ async function _createDataController(testName) {
|
|
|
133
152
|
__metadata("design:type", String)
|
|
134
153
|
], _JoinedTestAPI.prototype, "email", void 0);
|
|
135
154
|
_JoinedTestAPI = __decorate([
|
|
136
|
-
(0,
|
|
155
|
+
(0, index_1.RegisterDataController)()
|
|
137
156
|
], _JoinedTestAPI);
|
|
138
157
|
return _seedTables();
|
|
139
158
|
}
|
|
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
159
|
async function _createComputedJoinedController(testName) {
|
|
145
|
-
let _JoinedComputedTestAPI = class _JoinedComputedTestAPI extends (0,
|
|
146
|
-
list:
|
|
160
|
+
let _JoinedComputedTestAPI = class _JoinedComputedTestAPI extends (0, index_1.DataController)(Book, {
|
|
161
|
+
list: index_1.DefaultRoutes.List,
|
|
147
162
|
}, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
148
163
|
};
|
|
149
164
|
__decorate([
|
|
@@ -175,7 +190,7 @@ async function _createComputedJoinedController(testName) {
|
|
|
175
190
|
__metadata("design:type", String)
|
|
176
191
|
], _JoinedComputedTestAPI.prototype, "display", void 0);
|
|
177
192
|
_JoinedComputedTestAPI = __decorate([
|
|
178
|
-
(0,
|
|
193
|
+
(0, index_1.RegisterDataController)()
|
|
179
194
|
], _JoinedComputedTestAPI);
|
|
180
195
|
return _seedTables();
|
|
181
196
|
}
|
|
@@ -205,63 +220,63 @@ async function _dropTables() {
|
|
|
205
220
|
await schema.instance().table(authorTableName).delete();
|
|
206
221
|
}
|
|
207
222
|
}
|
|
208
|
-
async function
|
|
223
|
+
async function expectListsRowsWithJoinedFieldsFlattened() {
|
|
209
224
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
210
225
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
211
226
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
212
|
-
const data =
|
|
227
|
+
const data = await (0, http_1.readJson)(bookListSchema, response);
|
|
213
228
|
(0, chai_1.expect)(data.results).to.have.lengthOf(5);
|
|
214
229
|
const alphaRising = data.results.find((b) => b.title === "Alpha Rising");
|
|
215
230
|
(0, chai_1.expect)(alphaRising).to.not.equal(undefined);
|
|
216
231
|
(0, chai_1.expect)(alphaRising?.name).to.equal("Alice Carter");
|
|
217
232
|
(0, chai_1.expect)(alphaRising?.email).to.equal("alice@example.com");
|
|
218
|
-
(0, chai_1.expect)(
|
|
233
|
+
(0, chai_1.expect)(alphaRising?.authorId).to.be.a("string");
|
|
219
234
|
const betaStories = data.results.find((b) => b.title === "Beta Stories");
|
|
220
235
|
(0, chai_1.expect)(betaStories?.name).to.equal("Bob Stone");
|
|
221
236
|
(0, chai_1.expect)(betaStories?.email).to.equal("bob@example.com");
|
|
222
237
|
}
|
|
223
|
-
async function
|
|
238
|
+
async function expectGetsRowWithJoinedFieldsFlattened() {
|
|
224
239
|
const { bookIds } = await _createDataController((0, utils_1.getFunctionName)());
|
|
225
240
|
const response = await (0, utils_1.getRequest)((0, utils_1.getFunctionName)(), { id: bookIds[0] });
|
|
226
241
|
if (response.status !== 200) {
|
|
227
242
|
const text = await response.text();
|
|
228
243
|
throw new Error(`get failed (${response.status}): ${text}`);
|
|
229
244
|
}
|
|
230
|
-
const book =
|
|
245
|
+
const book = await (0, http_1.readJson)(bookListedSchema, response);
|
|
231
246
|
(0, chai_1.expect)(book.title).to.equal("Alpha Rising");
|
|
232
247
|
(0, chai_1.expect)(book.name).to.equal("Alice Carter");
|
|
233
248
|
(0, chai_1.expect)(book.email).to.equal("alice@example.com");
|
|
234
|
-
(0, chai_1.expect)(
|
|
249
|
+
(0, chai_1.expect)(book.authorId).to.be.a("string");
|
|
235
250
|
}
|
|
236
|
-
async function
|
|
251
|
+
async function expectSortsByJoinedFieldAscending() {
|
|
237
252
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
238
253
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
239
254
|
sortKey: "name",
|
|
240
255
|
sortDirection: "asc",
|
|
241
256
|
});
|
|
242
257
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
243
|
-
const data =
|
|
258
|
+
const data = await (0, http_1.readJson)(bookListSchema, response);
|
|
244
259
|
const namesInOrder = data.results
|
|
245
260
|
.map((b) => b.name)
|
|
246
|
-
.filter((n) =>
|
|
261
|
+
.filter((n) => n !== null);
|
|
247
262
|
const sorted = [...namesInOrder].sort((a, b) => a.localeCompare(b));
|
|
248
263
|
(0, chai_1.expect)(namesInOrder).to.deep.equal(sorted);
|
|
249
264
|
}
|
|
250
|
-
async function
|
|
265
|
+
async function expectSortsByJoinedFieldDescending() {
|
|
251
266
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
252
267
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
253
268
|
sortKey: "name",
|
|
254
269
|
sortDirection: "desc",
|
|
255
270
|
});
|
|
256
271
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
257
|
-
const data =
|
|
272
|
+
const data = await (0, http_1.readJson)(bookListSchema, response);
|
|
258
273
|
const namesInOrder = data.results
|
|
259
274
|
.map((b) => b.name)
|
|
260
|
-
.filter((n) =>
|
|
275
|
+
.filter((n) => n !== null);
|
|
261
276
|
const sorted = [...namesInOrder].sort((a, b) => b.localeCompare(a));
|
|
262
277
|
(0, chai_1.expect)(namesInOrder).to.deep.equal(sorted);
|
|
263
278
|
}
|
|
264
|
-
async function
|
|
279
|
+
async function expectFiltersByJoinedField() {
|
|
265
280
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
266
281
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
267
282
|
filter_name: "eq:Alice Carter",
|
|
@@ -270,13 +285,13 @@ async function filtersByJoinedField() {
|
|
|
270
285
|
const text = await response.text();
|
|
271
286
|
throw new Error(`filter failed (${response.status}): ${text}`);
|
|
272
287
|
}
|
|
273
|
-
const data =
|
|
288
|
+
const data = await (0, http_1.readJson)(bookListSchema, response);
|
|
274
289
|
(0, chai_1.expect)(data.results.length).to.equal(2);
|
|
275
290
|
for (const book of data.results) {
|
|
276
291
|
(0, chai_1.expect)(book.name).to.equal("Alice Carter");
|
|
277
292
|
}
|
|
278
293
|
}
|
|
279
|
-
async function
|
|
294
|
+
async function expectKeepsJoinedFieldsOnPaginatedRows() {
|
|
280
295
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
281
296
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
282
297
|
sortKey: "title",
|
|
@@ -285,7 +300,7 @@ async function keepsJoinedFieldsOnPaginatedRows() {
|
|
|
285
300
|
limit: "2",
|
|
286
301
|
});
|
|
287
302
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
288
|
-
const data =
|
|
303
|
+
const data = await (0, http_1.readJson)(bookListSchema, response);
|
|
289
304
|
(0, chai_1.expect)(data.total).to.equal(5);
|
|
290
305
|
(0, chai_1.expect)(data.results.map((b) => b.title)).to.deep.equal([
|
|
291
306
|
"Alpha Rising",
|
|
@@ -300,31 +315,30 @@ async function keepsJoinedFieldsOnPaginatedRows() {
|
|
|
300
315
|
"bob@example.com",
|
|
301
316
|
]);
|
|
302
317
|
}
|
|
303
|
-
async function
|
|
318
|
+
async function expectResolvesComputedFieldReadingNonPluckedJoinedField() {
|
|
304
319
|
await _createComputedJoinedController((0, utils_1.getFunctionName)());
|
|
305
320
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
306
321
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
307
|
-
const data =
|
|
322
|
+
const data = await (0, http_1.readJson)((0, http_1.listResponseSchema)(bookDisplayedSchema), response);
|
|
308
323
|
(0, chai_1.expect)(data.total).to.equal(5);
|
|
309
324
|
(0, chai_1.expect)(data.results).to.have.lengthOf(5);
|
|
310
325
|
const alphaRising = data.results.find((b) => b.title === "Alpha Rising");
|
|
311
326
|
(0, chai_1.expect)(alphaRising).to.not.equal(undefined);
|
|
312
327
|
(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
328
|
(0, chai_1.expect)(alphaRising?.name).to.equal(undefined);
|
|
315
329
|
}
|
|
316
|
-
async function
|
|
330
|
+
async function expectReturnsNullForOrphanForeignKey() {
|
|
317
331
|
await _createDataController((0, utils_1.getFunctionName)());
|
|
318
332
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
319
333
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
320
|
-
const data =
|
|
334
|
+
const data = await (0, http_1.readJson)(bookListSchema, response);
|
|
321
335
|
const orphan = data.results.find((b) => b.title === "Lost Chapter");
|
|
322
336
|
(0, chai_1.expect)(orphan).to.not.equal(undefined);
|
|
323
337
|
(0, chai_1.expect)(orphan?.name).to.equal(null);
|
|
324
338
|
(0, chai_1.expect)(orphan?.email).to.equal(null);
|
|
325
339
|
(0, chai_1.expect)(orphan?.authorId).to.equal(orphanAuthorId);
|
|
326
340
|
}
|
|
327
|
-
async function
|
|
341
|
+
async function expectIgnoresJoinedFieldOnEdit() {
|
|
328
342
|
const { bookIds, bookModel, authorIds, authorModel } = await _createDataController((0, utils_1.getFunctionName)());
|
|
329
343
|
const editPayload = {
|
|
330
344
|
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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"}
|
|
@@ -14,12 +14,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
16
|
const chai_1 = require("chai");
|
|
17
|
+
const zod_1 = require("zod");
|
|
17
18
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
18
19
|
const interface_database_1 = require("@antelopejs/interface-database");
|
|
19
|
-
const
|
|
20
|
-
const metadata_1 = require("
|
|
20
|
+
const index_1 = require("../../index");
|
|
21
|
+
const metadata_1 = require("../../metadata");
|
|
21
22
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
23
|
+
const http_1 = require("../internal/http");
|
|
22
24
|
const utils_1 = require("../utils");
|
|
25
|
+
const guards_1 = require("../../internal/guards");
|
|
23
26
|
const currentTestName = node_path_1.default
|
|
24
27
|
.basename(__filename)
|
|
25
28
|
.replace(/\.test\.(ts|js)$/, "");
|
|
@@ -61,6 +64,24 @@ Product = __decorate([
|
|
|
61
64
|
], Product);
|
|
62
65
|
class ProductModel extends (0, interface_database_decorators_1.BasicDataModel)(Product, productTableName) {
|
|
63
66
|
}
|
|
67
|
+
const productRowSchema = zod_1.z.looseObject({
|
|
68
|
+
_id: zod_1.z.string(),
|
|
69
|
+
reference: zod_1.z.string().optional(),
|
|
70
|
+
name: zod_1.z.string().optional(),
|
|
71
|
+
description: zod_1.z.string().optional(),
|
|
72
|
+
price: zod_1.z.number().optional(),
|
|
73
|
+
addedAt: zod_1.z.string().optional(),
|
|
74
|
+
internalNotes: zod_1.z.string().optional(),
|
|
75
|
+
metadata: zod_1.z.string().optional(),
|
|
76
|
+
});
|
|
77
|
+
const productListedSchema = zod_1.z.looseObject({
|
|
78
|
+
_id: zod_1.z.string(),
|
|
79
|
+
name: zod_1.z.string(),
|
|
80
|
+
price: zod_1.z.number(),
|
|
81
|
+
addedAt: zod_1.z.string(),
|
|
82
|
+
});
|
|
83
|
+
const productRowListSchema = (0, http_1.listResponseSchema)(productRowSchema);
|
|
84
|
+
const productListedListSchema = (0, http_1.listResponseSchema)(productListedSchema);
|
|
64
85
|
const defaultProductDataset = [
|
|
65
86
|
{
|
|
66
87
|
name: "OneSung X",
|
|
@@ -91,23 +112,22 @@ const defaultProductDataset = [
|
|
|
91
112
|
},
|
|
92
113
|
];
|
|
93
114
|
describe("Field Listable", () => {
|
|
94
|
-
it("default listing", async () => await
|
|
95
|
-
it("list only detailed fields", async () => await
|
|
96
|
-
it("list nonexistant pluck mode", async () => await
|
|
97
|
-
it("list only 2 rows per page", async () => await
|
|
98
|
-
it("list from 2nd page", async () => await
|
|
99
|
-
it("list only 2 first pages", async () => await
|
|
100
|
-
it("list only 2nd page", async () => await
|
|
101
|
-
it("sorting by string (name), ascending", async () => await
|
|
102
|
-
it("sorting by string (name), descending", async () => await
|
|
103
|
-
it("sorting by number (price), ascending", async () => await
|
|
104
|
-
it("sorting by number (price), descending", async () => await
|
|
105
|
-
it("sorting by date (addedAt), ascending", async () => await
|
|
106
|
-
it("sorting by date (addedAt), descending", async () => await
|
|
107
|
-
after(async () => { });
|
|
115
|
+
it("default listing", async () => await expectDefaultList());
|
|
116
|
+
it("list only detailed fields", async () => await expectDetailedList());
|
|
117
|
+
it("list nonexistant pluck mode", async () => await expectUnknownPluckMode());
|
|
118
|
+
it("list only 2 rows per page", async () => await expectTwoRowPage());
|
|
119
|
+
it("list from 2nd page", async () => await expectFromPageTwo());
|
|
120
|
+
it("list only 2 first pages", async () => await expectTwoFirstPages());
|
|
121
|
+
it("list only 2nd page", async () => await expectPageTwoOnly());
|
|
122
|
+
it("sorting by string (name), ascending", async () => await expectNameAscending());
|
|
123
|
+
it("sorting by string (name), descending", async () => await expectNameDescending());
|
|
124
|
+
it("sorting by number (price), ascending", async () => await expectPriceAscending());
|
|
125
|
+
it("sorting by number (price), descending", async () => await expectPriceDescending());
|
|
126
|
+
it("sorting by date (addedAt), ascending", async () => await expectAddedAtAscending());
|
|
127
|
+
it("sorting by date (addedAt), descending", async () => await expectAddedAtDescending());
|
|
108
128
|
});
|
|
109
129
|
async function _createDataController(testName, route, product) {
|
|
110
|
-
let _ListableTestAPI = class _ListableTestAPI extends (0,
|
|
130
|
+
let _ListableTestAPI = class _ListableTestAPI extends (0, index_1.DataController)(Product, route, (0, interface_api_1.Controller)(`/${testName}`)) {
|
|
111
131
|
};
|
|
112
132
|
__decorate([
|
|
113
133
|
(0, metadata_1.ModelReference)(),
|
|
@@ -159,7 +179,7 @@ async function _createDataController(testName, route, product) {
|
|
|
159
179
|
__metadata("design:type", String)
|
|
160
180
|
], _ListableTestAPI.prototype, "description", void 0);
|
|
161
181
|
_ListableTestAPI = __decorate([
|
|
162
|
-
(0,
|
|
182
|
+
(0, index_1.RegisterDataController)()
|
|
163
183
|
], _ListableTestAPI);
|
|
164
184
|
await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
|
|
165
185
|
await _dropProductTable();
|
|
@@ -184,11 +204,11 @@ async function _getDatabaseProducts(ids, productModel) {
|
|
|
184
204
|
}
|
|
185
205
|
return database_products;
|
|
186
206
|
}
|
|
187
|
-
async function
|
|
188
|
-
const { ids, productModel } = await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
207
|
+
async function expectDefaultList() {
|
|
208
|
+
const { ids, productModel } = await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
189
209
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {});
|
|
190
210
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
191
|
-
const data =
|
|
211
|
+
const data = await (0, http_1.readJson)(productRowListSchema, response);
|
|
192
212
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
193
213
|
const listed_products = data.results;
|
|
194
214
|
const database_products = await _getDatabaseProducts(Object.values(ids), productModel);
|
|
@@ -204,15 +224,15 @@ async function defaultListing() {
|
|
|
204
224
|
(0, chai_1.expect)(product.metadata).to.equal(undefined);
|
|
205
225
|
}
|
|
206
226
|
}
|
|
207
|
-
async function
|
|
227
|
+
async function expectDetailedList() {
|
|
208
228
|
const { ids, productModel } = await _createDataController((0, utils_1.getFunctionName)(), {
|
|
209
|
-
detailed:
|
|
229
|
+
detailed: index_1.DefaultRoutes.WithOptions(index_1.DefaultRoutes.List, {
|
|
210
230
|
pluckMode: "detailed",
|
|
211
231
|
}),
|
|
212
232
|
}, defaultProductDataset);
|
|
213
233
|
const response = await (0, utils_1.request)((0, utils_1.getFunctionName)(), "detailed", "GET", undefined, {});
|
|
214
234
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
215
|
-
const data =
|
|
235
|
+
const data = await (0, http_1.readJson)(productRowListSchema, response);
|
|
216
236
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
217
237
|
const listed_products = data.results;
|
|
218
238
|
const database_products = await _getDatabaseProducts(Object.values(ids), productModel);
|
|
@@ -228,20 +248,20 @@ async function listDetailedFields() {
|
|
|
228
248
|
(0, chai_1.expect)(product.reference).to.equal(undefined);
|
|
229
249
|
}
|
|
230
250
|
}
|
|
231
|
-
async function
|
|
251
|
+
async function expectUnknownPluckMode() {
|
|
232
252
|
await _createDataController((0, utils_1.getFunctionName)(), {
|
|
233
|
-
detailed:
|
|
253
|
+
detailed: index_1.DefaultRoutes.WithOptions(index_1.DefaultRoutes.List, {
|
|
234
254
|
pluckMode: "detailed",
|
|
235
255
|
}),
|
|
236
256
|
}, defaultProductDataset);
|
|
237
257
|
const response = await (0, utils_1.request)((0, utils_1.getFunctionName)(), "nonexistent", "GET", undefined, {});
|
|
238
258
|
(0, chai_1.expect)(response.status).to.equal(404);
|
|
239
259
|
}
|
|
240
|
-
async function
|
|
241
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
260
|
+
async function expectTwoRowPage() {
|
|
261
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
242
262
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), { limit: "2" });
|
|
243
263
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
244
|
-
const data =
|
|
264
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
245
265
|
(0, chai_1.expect)(data.results).to.have.length(2);
|
|
246
266
|
(0, chai_1.expect)(data.total).to.equal(defaultProductDataset.length);
|
|
247
267
|
(0, chai_1.expect)(data.limit).to.equal(2);
|
|
@@ -249,33 +269,33 @@ async function listOnly2RowsPerPage() {
|
|
|
249
269
|
(0, chai_1.expect)(data.results[0]._id).to.not.equal(undefined);
|
|
250
270
|
(0, chai_1.expect)(data.results[1]._id).to.not.equal(undefined);
|
|
251
271
|
}
|
|
252
|
-
async function
|
|
253
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
272
|
+
async function expectFromPageTwo() {
|
|
273
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
254
274
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), { offset: "2" });
|
|
255
275
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
256
|
-
const data =
|
|
276
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
257
277
|
(0, chai_1.expect)(data.results).to.have.length(1);
|
|
258
278
|
(0, chai_1.expect)(data.total).to.equal(defaultProductDataset.length);
|
|
259
279
|
(0, chai_1.expect)(data.offset).to.equal(2);
|
|
260
280
|
(0, chai_1.expect)(data.results[0]._id).to.not.equal(undefined);
|
|
261
281
|
}
|
|
262
|
-
async function
|
|
263
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
282
|
+
async function expectTwoFirstPages() {
|
|
283
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
264
284
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), { maxPage: "2" });
|
|
265
285
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
266
|
-
const data =
|
|
286
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
267
287
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
268
288
|
(0, chai_1.expect)(data.total).to.equal(defaultProductDataset.length);
|
|
269
289
|
(0, chai_1.expect)(data.results[0]._id).to.not.equal(undefined);
|
|
270
290
|
}
|
|
271
|
-
async function
|
|
272
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
291
|
+
async function expectPageTwoOnly() {
|
|
292
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
273
293
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
274
294
|
offset: "2",
|
|
275
295
|
limit: "1",
|
|
276
296
|
});
|
|
277
297
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
278
|
-
const data =
|
|
298
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
279
299
|
(0, chai_1.expect)(data.results).to.have.length(1);
|
|
280
300
|
(0, chai_1.expect)(data.total).to.equal(defaultProductDataset.length);
|
|
281
301
|
(0, chai_1.expect)(data.offset).to.equal(2);
|
|
@@ -291,76 +311,76 @@ function _getSortedField(dataset, field, direction) {
|
|
|
291
311
|
? a.getTime() - b.getTime()
|
|
292
312
|
: b.getTime() - a.getTime();
|
|
293
313
|
}
|
|
294
|
-
if (
|
|
314
|
+
if ((0, guards_1.isNumber)(a) && (0, guards_1.isNumber)(b)) {
|
|
295
315
|
return direction === "asc" ? a - b : b - a;
|
|
296
316
|
}
|
|
297
|
-
if (
|
|
317
|
+
if ((0, guards_1.isString)(a) && (0, guards_1.isString)(b)) {
|
|
298
318
|
return direction === "asc" ? a.localeCompare(b) : b.localeCompare(a);
|
|
299
319
|
}
|
|
300
320
|
return 0;
|
|
301
321
|
});
|
|
302
322
|
return filteredField;
|
|
303
323
|
}
|
|
304
|
-
async function
|
|
305
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
324
|
+
async function expectNameAscending() {
|
|
325
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
306
326
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
307
327
|
sortKey: "name",
|
|
308
328
|
sortDirection: "asc",
|
|
309
329
|
});
|
|
310
330
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
311
|
-
const data =
|
|
331
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
312
332
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
313
333
|
const sortedNames = data.results.map((product) => product.name);
|
|
314
334
|
const expectedNames = _getSortedField(defaultProductDataset, "name", "asc");
|
|
315
335
|
(0, chai_1.expect)(sortedNames).to.deep.equal(expectedNames);
|
|
316
336
|
}
|
|
317
|
-
async function
|
|
318
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
337
|
+
async function expectNameDescending() {
|
|
338
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
319
339
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
320
340
|
sortKey: "name",
|
|
321
341
|
sortDirection: "desc",
|
|
322
342
|
});
|
|
323
343
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
324
|
-
const data =
|
|
344
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
325
345
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
326
346
|
const sortedNames = data.results.map((product) => product.name);
|
|
327
347
|
const expectedNames = _getSortedField(defaultProductDataset, "name", "desc");
|
|
328
348
|
(0, chai_1.expect)(sortedNames).to.deep.equal(expectedNames);
|
|
329
349
|
}
|
|
330
|
-
async function
|
|
331
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
350
|
+
async function expectPriceAscending() {
|
|
351
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
332
352
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
333
353
|
sortKey: "price",
|
|
334
354
|
sortDirection: "asc",
|
|
335
355
|
});
|
|
336
356
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
337
|
-
const data =
|
|
357
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
338
358
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
339
359
|
const sortedPrices = data.results.map((product) => product.price);
|
|
340
360
|
const expectedPrices = _getSortedField(defaultProductDataset, "price", "asc");
|
|
341
361
|
(0, chai_1.expect)(sortedPrices).to.deep.equal(expectedPrices);
|
|
342
362
|
}
|
|
343
|
-
async function
|
|
344
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
363
|
+
async function expectPriceDescending() {
|
|
364
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
345
365
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
346
366
|
sortKey: "price",
|
|
347
367
|
sortDirection: "desc",
|
|
348
368
|
});
|
|
349
369
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
350
|
-
const data =
|
|
370
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
351
371
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
352
372
|
const sortedPrices = data.results.map((product) => product.price);
|
|
353
373
|
const expectedPrices = _getSortedField(defaultProductDataset, "price", "desc");
|
|
354
374
|
(0, chai_1.expect)(sortedPrices).to.deep.equal(expectedPrices);
|
|
355
375
|
}
|
|
356
|
-
async function
|
|
357
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
376
|
+
async function expectAddedAtAscending() {
|
|
377
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
358
378
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
359
379
|
sortKey: "addedAt",
|
|
360
380
|
sortDirection: "asc",
|
|
361
381
|
});
|
|
362
382
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
363
|
-
const data =
|
|
383
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
364
384
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
365
385
|
const sortedDates = data.results.map((product) => new Date(product.addedAt).getTime());
|
|
366
386
|
const expectedDates = _getSortedField(defaultProductDataset, "addedAt", "asc")
|
|
@@ -368,14 +388,14 @@ async function sortByAddedAtAscending() {
|
|
|
368
388
|
.map((date) => date.getTime());
|
|
369
389
|
(0, chai_1.expect)(sortedDates).to.deep.equal(expectedDates);
|
|
370
390
|
}
|
|
371
|
-
async function
|
|
372
|
-
await _createDataController((0, utils_1.getFunctionName)(), { list:
|
|
391
|
+
async function expectAddedAtDescending() {
|
|
392
|
+
await _createDataController((0, utils_1.getFunctionName)(), { list: index_1.DefaultRoutes.List }, defaultProductDataset);
|
|
373
393
|
const response = await (0, utils_1.listRequest)((0, utils_1.getFunctionName)(), {
|
|
374
394
|
sortKey: "addedAt",
|
|
375
395
|
sortDirection: "desc",
|
|
376
396
|
});
|
|
377
397
|
(0, chai_1.expect)(response.status).to.equal(200);
|
|
378
|
-
const data =
|
|
398
|
+
const data = await (0, http_1.readJson)(productListedListSchema, response);
|
|
379
399
|
(0, chai_1.expect)(data.results).to.have.length(defaultProductDataset.length);
|
|
380
400
|
const sortedDates = data.results.map((product) => new Date(product.addedAt).getTime());
|
|
381
401
|
const expectedDates = _getSortedField(defaultProductDataset, "addedAt", "desc")
|