@terreno/api 0.15.0 → 0.15.1

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.
@@ -35,6 +35,33 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
+ var __values = (this && this.__values) || function(o) {
39
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
+ if (m) return m.call(o);
41
+ if (o && typeof o.length === "number") return {
42
+ next: function () {
43
+ if (o && i >= o.length) o = void 0;
44
+ return { value: o && o[i++], done: !o };
45
+ }
46
+ };
47
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
+ };
49
+ var __read = (this && this.__read) || function (o, n) {
50
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
51
+ if (!m) return o;
52
+ var i = m.call(o), r, ar = [], e;
53
+ try {
54
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
+ }
56
+ catch (error) { e = { error: error }; }
57
+ finally {
58
+ try {
59
+ if (r && !r.done && (m = i["return"])) m.call(i);
60
+ }
61
+ finally { if (e) throw e.error; }
62
+ }
63
+ return ar;
64
+ };
38
65
  var __importDefault = (this && this.__importDefault) || function (mod) {
39
66
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
67
  };
@@ -429,4 +456,60 @@ var versionCheckPlugin_1 = require("../versionCheckPlugin");
429
456
  }
430
457
  });
431
458
  }); });
459
+ (0, bun_test_1.it)("handles a numeric version query parameter", function () { return __awaiter(void 0, void 0, void 0, function () {
460
+ var express, expressApp, plugin, testApp, res;
461
+ return __generator(this, function (_a) {
462
+ switch (_a.label) {
463
+ case 0: return [4 /*yield*/, (0, tests_1.setupDb)()];
464
+ case 1:
465
+ _a.sent();
466
+ return [4 /*yield*/, versionConfig_1.VersionConfig.deleteMany({})];
467
+ case 2:
468
+ _a.sent();
469
+ express = require("express");
470
+ expressApp = express();
471
+ // Use a custom query parser that coerces numeric strings to numbers so we
472
+ // exercise the `typeof versionParam === "number"` branch.
473
+ expressApp.set("query parser", function (qs) {
474
+ var e_1, _a;
475
+ var params = {};
476
+ try {
477
+ for (var _b = __values(qs.split("&")), _c = _b.next(); !_c.done; _c = _b.next()) {
478
+ var pair = _c.value;
479
+ var _d = __read(pair.split("="), 2), key = _d[0], val = _d[1];
480
+ if (val !== undefined && /^\d+$/.test(val)) {
481
+ params[decodeURIComponent(key)] = Number(val);
482
+ }
483
+ else {
484
+ params[decodeURIComponent(key)] = decodeURIComponent(val !== null && val !== void 0 ? val : "");
485
+ }
486
+ }
487
+ }
488
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
489
+ finally {
490
+ try {
491
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
492
+ }
493
+ finally { if (e_1) throw e_1.error; }
494
+ }
495
+ return params;
496
+ });
497
+ plugin = new versionCheckPlugin_1.VersionCheckPlugin();
498
+ plugin.register(expressApp);
499
+ return [4 /*yield*/, versionConfig_1.VersionConfig.create({
500
+ webRequiredVersion: 100,
501
+ webWarningVersion: 150,
502
+ })];
503
+ case 3:
504
+ _a.sent();
505
+ testApp = (0, supertest_1.default)(expressApp);
506
+ return [4 /*yield*/, testApp.get("/version-check?version=50&platform=web")];
507
+ case 4:
508
+ res = _a.sent();
509
+ (0, bun_test_1.expect)(res.status).toBe(200);
510
+ (0, bun_test_1.expect)(res.body.status).toBe("required");
511
+ return [2 /*return*/];
512
+ }
513
+ });
514
+ }); });
432
515
  });
package/package.json CHANGED
@@ -106,5 +106,5 @@
106
106
  "updateSnapshot": "bun test --update-snapshots"
107
107
  },
108
108
  "types": "dist/index.d.ts",
109
- "version": "0.15.0"
109
+ "version": "0.15.1"
110
110
  }
@@ -244,4 +244,40 @@ describe("VersionCheckPlugin direct usage", () => {
244
244
  expect(res.status).toBe(200);
245
245
  expect(res.body.status).toBe("ok");
246
246
  });
247
+
248
+ it("handles a numeric version query parameter", async () => {
249
+ await setupDb();
250
+ await VersionConfig.deleteMany({});
251
+
252
+ const express = require("express");
253
+ const expressApp = express();
254
+
255
+ // Use a custom query parser that coerces numeric strings to numbers so we
256
+ // exercise the `typeof versionParam === "number"` branch.
257
+ expressApp.set("query parser", (qs: string) => {
258
+ const params: Record<string, string | number> = {};
259
+ for (const pair of qs.split("&")) {
260
+ const [key, val] = pair.split("=");
261
+ if (val !== undefined && /^\d+$/.test(val)) {
262
+ params[decodeURIComponent(key)] = Number(val);
263
+ } else {
264
+ params[decodeURIComponent(key)] = decodeURIComponent(val ?? "");
265
+ }
266
+ }
267
+ return params;
268
+ });
269
+
270
+ const plugin = new VersionCheckPlugin();
271
+ plugin.register(expressApp);
272
+
273
+ await VersionConfig.create({
274
+ webRequiredVersion: 100,
275
+ webWarningVersion: 150,
276
+ });
277
+
278
+ const testApp = supertest(expressApp);
279
+ const res = await testApp.get("/version-check?version=50&platform=web");
280
+ expect(res.status).toBe(200);
281
+ expect(res.body.status).toBe("required");
282
+ });
247
283
  });