@antelopejs/interface-data-api 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +1 -1
  2. package/dist/components.d.ts +32 -9
  3. package/dist/components.js +113 -628
  4. package/dist/components.js.map +1 -1
  5. package/dist/index.d.ts +41 -36
  6. package/dist/index.js +94 -92
  7. package/dist/index.js.map +1 -1
  8. package/dist/internal/computed.d.ts +6 -0
  9. package/dist/internal/computed.js +43 -0
  10. package/dist/internal/computed.js.map +1 -0
  11. package/dist/internal/controller-types.d.ts +19 -0
  12. package/dist/internal/controller-types.js +4 -0
  13. package/dist/internal/controller-types.js.map +1 -0
  14. package/dist/internal/default-filter.d.ts +4 -0
  15. package/dist/internal/default-filter.js +19 -0
  16. package/dist/internal/default-filter.js.map +1 -0
  17. package/dist/internal/deferred-joined-stream.d.ts +11 -0
  18. package/dist/internal/deferred-joined-stream.js +112 -0
  19. package/dist/internal/deferred-joined-stream.js.map +1 -0
  20. package/dist/internal/field-types.d.ts +183 -0
  21. package/dist/internal/field-types.js +4 -0
  22. package/dist/internal/field-types.js.map +1 -0
  23. package/dist/internal/filters.d.ts +4 -0
  24. package/dist/internal/filters.js +15 -0
  25. package/dist/internal/filters.js.map +1 -0
  26. package/dist/internal/foreign.d.ts +6 -0
  27. package/dist/internal/foreign.js +116 -0
  28. package/dist/internal/foreign.js.map +1 -0
  29. package/dist/internal/guards.d.ts +20 -0
  30. package/dist/internal/guards.js +74 -0
  31. package/dist/internal/guards.js.map +1 -0
  32. package/dist/internal/joined.d.ts +28 -0
  33. package/dist/internal/joined.js +127 -0
  34. package/dist/internal/joined.js.map +1 -0
  35. package/dist/internal/list.d.ts +16 -0
  36. package/dist/internal/list.js +178 -0
  37. package/dist/internal/list.js.map +1 -0
  38. package/dist/internal/meta-records.d.ts +17 -0
  39. package/dist/internal/meta-records.js +73 -0
  40. package/dist/internal/meta-records.js.map +1 -0
  41. package/dist/internal/properties.d.ts +4 -0
  42. package/dist/internal/properties.js +43 -0
  43. package/dist/internal/properties.js.map +1 -0
  44. package/dist/internal/table-reference.d.ts +11 -0
  45. package/dist/internal/table-reference.js +46 -0
  46. package/dist/internal/table-reference.js.map +1 -0
  47. package/dist/internal/tables.d.ts +18 -0
  48. package/dist/internal/tables.js +37 -0
  49. package/dist/internal/tables.js.map +1 -0
  50. package/dist/internal/validation.d.ts +11 -0
  51. package/dist/internal/validation.js +88 -0
  52. package/dist/internal/validation.js.map +1 -0
  53. package/dist/metadata.d.ts +27 -228
  54. package/dist/metadata.js +61 -188
  55. package/dist/metadata.js.map +1 -1
  56. package/dist/tests/components/access_control.test.js +20 -20
  57. package/dist/tests/components/access_control.test.js.map +1 -1
  58. package/dist/tests/components/computed.test.js +28 -30
  59. package/dist/tests/components/computed.test.js.map +1 -1
  60. package/dist/tests/components/cross_instance.test.js +8 -6
  61. package/dist/tests/components/cross_instance.test.js.map +1 -1
  62. package/dist/tests/components/deferred_joined.test.js +56 -53
  63. package/dist/tests/components/deferred_joined.test.js.map +1 -1
  64. package/dist/tests/components/filter_options.test.js +8 -7
  65. package/dist/tests/components/filter_options.test.js.map +1 -1
  66. package/dist/tests/components/foreign_computed.test.js +14 -16
  67. package/dist/tests/components/foreign_computed.test.js.map +1 -1
  68. package/dist/tests/components/foreign_joined.test.js +19 -27
  69. package/dist/tests/components/foreign_joined.test.js.map +1 -1
  70. package/dist/tests/components/joined.test.js +41 -45
  71. package/dist/tests/components/joined.test.js.map +1 -1
  72. package/dist/tests/components/listable.test.js +59 -58
  73. package/dist/tests/components/listable.test.js.map +1 -1
  74. package/dist/tests/components/localized_sort.test.d.ts +1 -0
  75. package/dist/tests/components/localized_sort.test.js +131 -0
  76. package/dist/tests/components/localized_sort.test.js.map +1 -0
  77. package/dist/tests/components/mandatory.test.js +33 -28
  78. package/dist/tests/components/mandatory.test.js.map +1 -1
  79. package/dist/tests/components/modifier_key.test.js +19 -18
  80. package/dist/tests/components/modifier_key.test.js.map +1 -1
  81. package/dist/tests/components/parse_body.test.d.ts +1 -0
  82. package/dist/tests/components/parse_body.test.js +75 -0
  83. package/dist/tests/components/parse_body.test.js.map +1 -0
  84. package/dist/tests/components/parsed_value.test.js +27 -21
  85. package/dist/tests/components/parsed_value.test.js.map +1 -1
  86. package/dist/tests/components/partial_edit.test.js +33 -32
  87. package/dist/tests/components/partial_edit.test.js.map +1 -1
  88. package/dist/tests/components/per_action_access.test.js +12 -12
  89. package/dist/tests/components/per_action_access.test.js.map +1 -1
  90. package/dist/tests/components/validator.test.js +45 -37
  91. package/dist/tests/components/validator.test.js.map +1 -1
  92. package/dist/tests/helpers/other-instance.d.ts +11 -1
  93. package/dist/tests/helpers/other-instance.js +27 -5
  94. package/dist/tests/helpers/other-instance.js.map +1 -1
  95. package/dist/tests/index/get_guard.test.js +6 -6
  96. package/dist/tests/index/get_guard.test.js.map +1 -1
  97. package/dist/tests/index/inheritance.test.js +10 -9
  98. package/dist/tests/index/inheritance.test.js.map +1 -1
  99. package/dist/tests/index/routes.test.js +40 -44
  100. package/dist/tests/index/routes.test.js.map +1 -1
  101. package/dist/tests/integration.test.d.ts +1 -1
  102. package/dist/tests/integration.test.js +53 -729
  103. package/dist/tests/integration.test.js.map +1 -1
  104. package/dist/tests/internal/http.d.ts +23 -0
  105. package/dist/tests/internal/http.js +35 -0
  106. package/dist/tests/internal/http.js.map +1 -0
  107. package/dist/tests/internal/shop-api.d.ts +1 -0
  108. package/dist/tests/internal/shop-api.js +331 -0
  109. package/dist/tests/internal/shop-api.js.map +1 -0
  110. package/dist/tests/internal/shop-schema.d.ts +154 -0
  111. package/dist/tests/internal/shop-schema.js +387 -0
  112. package/dist/tests/internal/shop-schema.js.map +1 -0
  113. package/dist/tests/utils.d.ts +5 -5
  114. package/dist/tests/utils.js +1 -3
  115. package/dist/tests/utils.js.map +1 -1
  116. package/dist/tests/utils.test.js +10 -11
  117. package/dist/tests/utils.test.js.map +1 -1
  118. package/docs/3.routes.md +8 -3
  119. package/docs/5.validators.md +16 -7
  120. package/docs/6.listable.md +4 -0
  121. package/docs/8.filters.md +7 -3
  122. package/package.json +17 -6
  123. package/skills/data-api-interface/SKILL.md +4 -0
  124. package/skills/data-api-interface/cases.json +99 -0
@@ -16,9 +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 interface_data_api_1 = require("@antelopejs/interface-data-api");
20
- const metadata_1 = require("@antelopejs/interface-data-api/metadata");
19
+ const index_1 = require("../../index");
20
+ const components_1 = require("../../components");
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");
23
25
  const currentTestName = node_path_1.default
24
26
  .basename(__filename)
@@ -76,13 +78,12 @@ const validOrderDataset = {
76
78
  },
77
79
  };
78
80
  describe("Field Mandatory", () => {
79
- it("new row with all mandatory fields", async () => await newWithAllMandatoryFields());
80
- it("new row with missing mandatory fields", async () => await newWithMissingMandatoryFields());
81
- it("edit row with all mandatory fields", async () => await editWithAllMandatoryFields());
82
- it("edit row without a mandatory field keeps its value", async () => await editWithoutMandatoryFieldKeepsValue());
83
- it("edit row clearing a mandatory field", async () => await editClearingMandatoryField());
84
- it("skip mandatory validation when noMandatory is true", async () => await skipMandatoryValidationWhenNoMandatory());
85
- after(async () => { });
81
+ it("new row with all mandatory fields", async () => await expectNewWithAllMandatoryFields());
82
+ it("new row with missing mandatory fields", async () => await expectNewWithMissingMandatoryFields());
83
+ it("edit row with all mandatory fields", async () => await expectEditWithAllMandatoryFields());
84
+ it("edit row without a mandatory field keeps its value", async () => await expectEditWithoutMandatoryFieldKeepsValue());
85
+ it("edit row clearing a mandatory field", async () => await expectEditClearingMandatoryField());
86
+ it("skip mandatory validation when noMandatory is true", async () => await expectSkipMandatoryValidationWhenNoMandatory());
86
87
  });
87
88
  async function _dropOrderTable() {
88
89
  const schema = interface_database_1.Schema.get(schemaName);
@@ -91,7 +92,7 @@ async function _dropOrderTable() {
91
92
  }
92
93
  }
93
94
  async function _createDataController(testName, route, order) {
94
- let _MandatoryTestAPI = class _MandatoryTestAPI extends (0, interface_data_api_1.DataController)(Order, route, (0, interface_api_1.Controller)(`/${testName}`)) {
95
+ let _MandatoryTestAPI = class _MandatoryTestAPI extends (0, index_1.DataController)(Order, route, (0, interface_api_1.Controller)(`/${testName}`)) {
95
96
  };
96
97
  __decorate([
97
98
  (0, metadata_1.ModelReference)(),
@@ -127,7 +128,7 @@ async function _createDataController(testName, route, order) {
127
128
  __metadata("design:type", String)
128
129
  ], _MandatoryTestAPI.prototype, "internalReference", void 0);
129
130
  _MandatoryTestAPI = __decorate([
130
- (0, interface_data_api_1.RegisterDataController)()
131
+ (0, index_1.RegisterDataController)()
131
132
  ], _MandatoryTestAPI);
132
133
  await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
133
134
  await _dropOrderTable();
@@ -138,15 +139,15 @@ async function _createDataController(testName, route, order) {
138
139
  }
139
140
  return { orderModel };
140
141
  }
141
- async function newWithAllMandatoryFields() {
142
- const { orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { new: interface_data_api_1.DefaultRoutes.New }, validOrderDataset.alternative);
142
+ async function expectNewWithAllMandatoryFields() {
143
+ const { orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { new: index_1.DefaultRoutes.New }, validOrderDataset.alternative);
143
144
  const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
144
145
  customerName: validOrderDataset.default.customerName,
145
146
  customerEmail: validOrderDataset.default.customerEmail,
146
147
  totalAmount: validOrderDataset.default.totalAmount,
147
148
  });
148
149
  (0, chai_1.expect)(response.status).to.equal(200);
149
- const created = (await response.json());
150
+ const created = await (0, http_1.readJson)(response);
150
151
  (0, chai_1.expect)(created._id).to.be.a("string");
151
152
  const order = await orderModel.get(created._id);
152
153
  (0, chai_1.expect)(order).to.not.equal(undefined);
@@ -158,18 +159,20 @@ async function newWithAllMandatoryFields() {
158
159
  ]);
159
160
  }
160
161
  }
161
- async function newWithMissingMandatoryFields() {
162
- await _createDataController((0, utils_1.getFunctionName)(), { new: interface_data_api_1.DefaultRoutes.New });
162
+ async function expectNewWithMissingMandatoryFields() {
163
+ await _createDataController((0, utils_1.getFunctionName)(), { new: index_1.DefaultRoutes.New });
163
164
  const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
164
165
  customerName: validOrderDataset.default.customerName,
165
166
  totalAmount: validOrderDataset.default.totalAmount,
166
167
  });
167
168
  (0, chai_1.expect)(response.status).to.equal(400);
168
- const result = await response.text();
169
- (0, chai_1.expect)(result).to.include("Missing mandatory fields: customerEmail");
169
+ (0, chai_1.expect)(await response.json()).to.deep.equal({
170
+ code: components_1.Validation.MISSING_MANDATORY_FIELDS,
171
+ fields: ["customerEmail"],
172
+ });
170
173
  }
171
- async function editWithAllMandatoryFields() {
172
- const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { edit: interface_data_api_1.DefaultRoutes.Edit }, validOrderDataset.default);
174
+ async function expectEditWithAllMandatoryFields() {
175
+ const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { edit: index_1.DefaultRoutes.Edit }, validOrderDataset.default);
173
176
  if (!id)
174
177
  throw new Error("Expected id from _createDataController");
175
178
  const response = await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), {
@@ -191,8 +194,8 @@ async function editWithAllMandatoryFields() {
191
194
  ]);
192
195
  }
193
196
  }
194
- async function editWithoutMandatoryFieldKeepsValue() {
195
- const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { edit: interface_data_api_1.DefaultRoutes.Edit }, validOrderDataset.default);
197
+ async function expectEditWithoutMandatoryFieldKeepsValue() {
198
+ const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { edit: index_1.DefaultRoutes.Edit }, validOrderDataset.default);
196
199
  if (!id)
197
200
  throw new Error("Expected id from _createDataController");
198
201
  const response = await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), {
@@ -203,22 +206,24 @@ async function editWithoutMandatoryFieldKeepsValue() {
203
206
  const order = await orderModel.get(id);
204
207
  (0, chai_1.expect)(order).to.have.property("status", validOrderDataset.default.status);
205
208
  }
206
- async function editClearingMandatoryField() {
207
- const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { edit: interface_data_api_1.DefaultRoutes.Edit }, validOrderDataset.default);
209
+ async function expectEditClearingMandatoryField() {
210
+ const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), { edit: index_1.DefaultRoutes.Edit }, validOrderDataset.default);
208
211
  if (!id)
209
212
  throw new Error("Expected id from _createDataController");
210
213
  for (const clearedValue of [null, "", []]) {
211
214
  const response = await (0, utils_1.editRequest)((0, utils_1.getFunctionName)(), { status: clearedValue }, { id });
212
215
  (0, chai_1.expect)(response.status).to.equal(400);
213
- const text = await response.text();
214
- (0, chai_1.expect)(text).to.include("Missing mandatory fields: status");
216
+ (0, chai_1.expect)(await response.json()).to.deep.equal({
217
+ code: components_1.Validation.MISSING_MANDATORY_FIELDS,
218
+ fields: ["status"],
219
+ });
215
220
  }
216
221
  const order = await orderModel.get(id);
217
222
  (0, chai_1.expect)(order).to.have.property("status", validOrderDataset.default.status);
218
223
  }
219
- async function skipMandatoryValidationWhenNoMandatory() {
224
+ async function expectSkipMandatoryValidationWhenNoMandatory() {
220
225
  const { id, orderModel } = await _createDataController((0, utils_1.getFunctionName)(), {
221
- editNoMandatory: interface_data_api_1.DefaultRoutes.WithOptions(interface_data_api_1.DefaultRoutes.Edit, {
226
+ editNoMandatory: index_1.DefaultRoutes.WithOptions(index_1.DefaultRoutes.Edit, {
222
227
  noMandatory: "true",
223
228
  }),
224
229
  }, validOrderDataset.default);
@@ -1 +1 @@
1
- {"version":3,"file":"mandatory.test.js","sourceRoot":"","sources":["../../../src/tests/components/mandatory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mandatory.test.js","sourceRoot":"","sources":["../../../src/tests/components/mandatory.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_database_1 = require("@antelopejs/interface-database");
18
18
  const interface_api_1 = require("@antelopejs/interface-api");
19
- const interface_data_api_1 = require("@antelopejs/interface-data-api");
20
- const metadata_1 = require("@antelopejs/interface-data-api/metadata");
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 getsRowWithResolvedForeignReference());
67
- it("gets row with null foreign reference", async () => await getsRowWithNullForeignReference());
68
- it("gets row with dangling foreign reference", async () => await getsRowWithDanglingForeignReference());
69
- it("lists rows containing null foreign references", async () => await listsRowsContainingNullForeignReferences());
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, interface_data_api_1.DataController)(Post, {
73
- list: interface_data_api_1.DefaultRoutes.List,
74
- get: interface_data_api_1.DefaultRoutes.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, interface_data_api_1.RegisterDataController)()
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 getsRowWithResolvedForeignReference() {
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 = (await response.json());
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 getsRowWithNullForeignReference() {
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 = (await response.json());
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 getsRowWithDanglingForeignReference() {
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 = (await response.json());
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 listsRowsContainingNullForeignReferences() {
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 = (await response.json());
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":"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"}
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,10 +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 interface_data_api_1 = require("@antelopejs/interface-data-api");
20
- const metadata_1 = require("@antelopejs/interface-data-api/metadata");
19
+ const index_1 = require("../../index");
20
+ const components_1 = require("../../components");
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)$/, "");
@@ -46,23 +49,23 @@ Event = __decorate([
46
49
  ], Event);
47
50
  class EventModel extends (0, interface_database_decorators_1.BasicDataModel)(Event, eventTableName) {
48
51
  }
49
- function parseDate(value) {
50
- if (typeof value !== "string" || Number.isNaN(Date.parse(value))) {
52
+ const parseDate = (value) => {
53
+ if (!(0, guards_1.isString)(value) || Number.isNaN(Date.parse(value))) {
51
54
  return { success: false };
52
55
  }
53
56
  return { success: true, data: new Date(value) };
54
- }
55
- async function normalizeCode(value) {
56
- if (typeof value !== "string") {
57
+ };
58
+ const normalizeCode = async (value) => {
59
+ if (!(0, guards_1.isString)(value)) {
57
60
  return { success: false };
58
61
  }
59
62
  return { success: true, data: value.trim().toUpperCase() };
60
- }
63
+ };
61
64
  describe("Field Validator parsed value", () => {
62
- it("writes the parsed value on new", async () => await writesParsedValueOnNew());
63
- it("writes the parsed value on edit", async () => await writesParsedValueOnEdit());
64
- it("writes the value of an asynchronous parse", async () => await writesAsyncParsedValue());
65
- it("rejects a failed parse with the invalid field message", async () => await rejectsFailedParse());
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());
66
69
  });
67
70
  async function _dropEventTable() {
68
71
  const schema = interface_database_1.Schema.get(schemaName);
@@ -71,7 +74,7 @@ async function _dropEventTable() {
71
74
  }
72
75
  }
73
76
  async function _createDataController(testName, event) {
74
- let _ParsedValueTestAPI = class _ParsedValueTestAPI extends (0, interface_data_api_1.DataController)(Event, { new: interface_data_api_1.DefaultRoutes.New, edit: interface_data_api_1.DefaultRoutes.Edit }, (0, interface_api_1.Controller)(`/${testName}`)) {
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}`)) {
75
78
  };
76
79
  __decorate([
77
80
  (0, metadata_1.ModelReference)(),
@@ -93,7 +96,7 @@ async function _createDataController(testName, event) {
93
96
  __metadata("design:type", String)
94
97
  ], _ParsedValueTestAPI.prototype, "code", void 0);
95
98
  _ParsedValueTestAPI = __decorate([
96
- (0, interface_data_api_1.RegisterDataController)()
99
+ (0, index_1.RegisterDataController)()
97
100
  ], _ParsedValueTestAPI);
98
101
  await (0, interface_database_decorators_1.RegisterSchema)(schemaName);
99
102
  await _dropEventTable();
@@ -104,19 +107,19 @@ async function _createDataController(testName, event) {
104
107
  }
105
108
  return { eventModel };
106
109
  }
107
- async function writesParsedValueOnNew() {
110
+ async function expectWritesParsedValueOnNew() {
108
111
  const { eventModel } = await _createDataController((0, utils_1.getFunctionName)());
109
112
  const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
110
113
  name: "Launch",
111
114
  startsAt,
112
115
  });
113
116
  (0, chai_1.expect)(response.status).to.equal(200);
114
- const { _id: id } = (await response.json());
117
+ const { _id: id } = await (0, http_1.readJson)(response);
115
118
  const event = await eventModel.get(id);
116
119
  (0, chai_1.expect)(event?.startsAt).to.be.instanceOf(Date);
117
120
  (0, chai_1.expect)(event?.startsAt.toISOString()).to.equal(startsAt);
118
121
  }
119
- async function writesParsedValueOnEdit() {
122
+ async function expectWritesParsedValueOnEdit() {
120
123
  const { id, eventModel } = await _createDataController((0, utils_1.getFunctionName)(), {
121
124
  name: "Launch",
122
125
  startsAt: new Date(startsAt),
@@ -129,24 +132,27 @@ async function writesParsedValueOnEdit() {
129
132
  (0, chai_1.expect)(event?.startsAt).to.be.instanceOf(Date);
130
133
  (0, chai_1.expect)(event?.startsAt.toISOString()).to.equal(editedStartsAt);
131
134
  }
132
- async function writesAsyncParsedValue() {
135
+ async function expectWritesAsyncParsedValue() {
133
136
  const { eventModel } = await _createDataController((0, utils_1.getFunctionName)());
134
137
  const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
135
138
  name: "Launch",
136
139
  code: " launch-26 ",
137
140
  });
138
141
  (0, chai_1.expect)(response.status).to.equal(200);
139
- const { _id: id } = (await response.json());
142
+ const { _id: id } = await (0, http_1.readJson)(response);
140
143
  const event = await eventModel.get(id);
141
144
  (0, chai_1.expect)(event?.code).to.equal("LAUNCH-26");
142
145
  }
143
- async function rejectsFailedParse() {
146
+ async function expectRejectsFailedParse() {
144
147
  await _createDataController((0, utils_1.getFunctionName)());
145
148
  const response = await (0, utils_1.newRequest)((0, utils_1.getFunctionName)(), {
146
149
  name: "Launch",
147
150
  startsAt: "not-a-date",
148
151
  });
149
152
  (0, chai_1.expect)(response.status).to.equal(400);
150
- (0, chai_1.expect)(await response.text()).to.include("Invalid field type(s): startsAt");
153
+ (0, chai_1.expect)(await response.json()).to.deep.equal({
154
+ code: components_1.Validation.INVALID_FIELD_TYPES,
155
+ fields: ["startsAt"],
156
+ });
151
157
  }
152
158
  //# sourceMappingURL=parsed_value.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsed_value.test.js","sourceRoot":"","sources":["../../../src/tests/components/parsed_value.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsed_value.test.js","sourceRoot":"","sources":["../../../src/tests/components/parsed_value.test.ts"],"names":[],"mappings":"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"}