@terreno/api 0.14.1 → 0.15.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.
@@ -369,6 +369,42 @@ var versionCheckPlugin_1 = require("../versionCheckPlugin");
369
369
  }
370
370
  });
371
371
  }); });
372
+ (0, bun_test_1.it)("uses default messages when warningMessage/requiredMessage are not set", function () { return __awaiter(void 0, void 0, void 0, function () {
373
+ var warningRes, requiredRes;
374
+ return __generator(this, function (_a) {
375
+ switch (_a.label) {
376
+ case 0: return [4 /*yield*/, versionConfig_1.VersionConfig.create({
377
+ webRequiredVersion: 100,
378
+ webWarningVersion: 200,
379
+ })];
380
+ case 1:
381
+ _a.sent();
382
+ return [4 /*yield*/, app.get("/version-check").query({ platform: "web", version: 150 })];
383
+ case 2:
384
+ warningRes = _a.sent();
385
+ (0, bun_test_1.expect)(warningRes.body.status).toBe("warning");
386
+ (0, bun_test_1.expect)(warningRes.body.message).toBe("A new version is available. Please update for the best experience.");
387
+ return [4 /*yield*/, app.get("/version-check").query({ platform: "web", version: 50 })];
388
+ case 3:
389
+ requiredRes = _a.sent();
390
+ (0, bun_test_1.expect)(requiredRes.body.status).toBe("required");
391
+ (0, bun_test_1.expect)(requiredRes.body.message).toBe("This version is no longer supported. Please update to continue.");
392
+ return [2 /*return*/];
393
+ }
394
+ });
395
+ }); });
396
+ (0, bun_test_1.it)("handles numeric version parameter", function () { return __awaiter(void 0, void 0, void 0, function () {
397
+ var res;
398
+ return __generator(this, function (_a) {
399
+ switch (_a.label) {
400
+ case 0: return [4 /*yield*/, app.get("/version-check?version=50&platform=web")];
401
+ case 1:
402
+ res = _a.sent();
403
+ (0, bun_test_1.expect)(res.status).toBe(200);
404
+ return [2 /*return*/];
405
+ }
406
+ });
407
+ }); });
372
408
  });
373
409
  (0, bun_test_1.describe)("VersionCheckPlugin direct usage", function () {
374
410
  (0, bun_test_1.it)("can be instantiated and register called directly on an express app", function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -155,6 +155,31 @@ var buildResponse = function () {
155
155
  (0, bun_test_1.expect)((0, errors_1.getDisableExternalErrorTracking)({ foo: "bar" })).toBeUndefined();
156
156
  });
157
157
  });
158
+ (0, bun_test_1.describe)("errorMessage", function () {
159
+ (0, bun_test_1.it)("returns the message from an Error instance", function () {
160
+ (0, bun_test_1.expect)((0, errors_1.errorMessage)(new Error("boom"))).toBe("boom");
161
+ });
162
+ (0, bun_test_1.it)("returns the string representation of a non-Error value", function () {
163
+ (0, bun_test_1.expect)((0, errors_1.errorMessage)("raw string")).toBe("raw string");
164
+ (0, bun_test_1.expect)((0, errors_1.errorMessage)(42)).toBe("42");
165
+ (0, bun_test_1.expect)((0, errors_1.errorMessage)(null)).toBe("null");
166
+ });
167
+ });
168
+ (0, bun_test_1.describe)("errorStack", function () {
169
+ (0, bun_test_1.it)("returns the stack trace from an Error with a stack", function () {
170
+ var err = new Error("fail");
171
+ (0, bun_test_1.expect)((0, errors_1.errorStack)(err)).toBe(err.stack);
172
+ });
173
+ (0, bun_test_1.it)("returns the string representation when error has no stack", function () {
174
+ var err = new Error("no-stack");
175
+ Object.defineProperty(err, "stack", { value: undefined });
176
+ (0, bun_test_1.expect)((0, errors_1.errorStack)(err)).toBe("Error: no-stack");
177
+ });
178
+ (0, bun_test_1.it)("returns the string representation of a non-Error value", function () {
179
+ (0, bun_test_1.expect)((0, errors_1.errorStack)("plain")).toBe("plain");
180
+ (0, bun_test_1.expect)((0, errors_1.errorStack)(123)).toBe("123");
181
+ });
182
+ });
158
183
  (0, bun_test_1.describe)("getAPIErrorBody", function () {
159
184
  (0, bun_test_1.it)("returns title and status by default", function () {
160
185
  var error = new errors_1.APIError({ status: 404, title: "Not Found" });
@@ -10,6 +10,39 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
13
46
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
47
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
48
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -965,6 +998,92 @@ var tests_1 = require("./tests");
965
998
  }
966
999
  });
967
1000
  }); });
1001
+ (0, bun_test_1.it)("fires warning timeout callback when script is slow", function () { return __awaiter(void 0, void 0, void 0, function () {
1002
+ var func, _a;
1003
+ return __generator(this, function (_b) {
1004
+ switch (_b.label) {
1005
+ case 0:
1006
+ func = (0, bun_test_1.mock)(function () { return new Promise(function (resolve) { return originalSetTimeout(function () { return resolve("done"); }, 200); }); });
1007
+ _b.label = 1;
1008
+ case 1:
1009
+ _b.trys.push([1, 3, , 4]);
1010
+ return [4 /*yield*/, (0, expressServer_1.wrapScript)(func, { terminateTimeout: 0.3 })];
1011
+ case 2:
1012
+ _b.sent();
1013
+ return [3 /*break*/, 4];
1014
+ case 3:
1015
+ _a = _b.sent();
1016
+ return [3 /*break*/, 4];
1017
+ case 4:
1018
+ (0, bun_test_1.expect)(process.exit).toHaveBeenCalledWith(0);
1019
+ return [2 /*return*/];
1020
+ }
1021
+ });
1022
+ }); });
1023
+ });
1024
+ (0, bun_test_1.describe)("setupServer with listen (skipListen false)", function () {
1025
+ var originalEnv = process.env;
1026
+ (0, bun_test_1.beforeEach)(function () {
1027
+ process.env = __assign(__assign({}, originalEnv), { PORT: "0", REFRESH_TOKEN_SECRET: "test-refresh-secret", SESSION_SECRET: "test-session-secret", TOKEN_EXPIRES_IN: "1h", TOKEN_ISSUER: "test-issuer", TOKEN_SECRET: "test-secret" });
1028
+ });
1029
+ (0, bun_test_1.afterEach)(function () {
1030
+ process.env = originalEnv;
1031
+ });
1032
+ (0, bun_test_1.it)("starts the server when skipListen is false", function () { return __awaiter(void 0, void 0, void 0, function () {
1033
+ var addRoutes, express, originalListen, app;
1034
+ return __generator(this, function (_a) {
1035
+ switch (_a.label) {
1036
+ case 0:
1037
+ addRoutes = function () { };
1038
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("express")); })];
1039
+ case 1:
1040
+ express = _a.sent();
1041
+ originalListen = express.default.application.listen;
1042
+ // biome-ignore lint/suspicious/noExplicitAny: mocking Express internals requires type escape
1043
+ express.default.application.listen = (0, bun_test_1.mock)(function () {
1044
+ var args = [];
1045
+ for (var _i = 0; _i < arguments.length; _i++) {
1046
+ args[_i] = arguments[_i];
1047
+ }
1048
+ var cb = args.find(function (a) { return typeof a === "function"; });
1049
+ if (cb) {
1050
+ cb();
1051
+ }
1052
+ return this;
1053
+ });
1054
+ try {
1055
+ app = (0, expressServer_1.setupServer)({
1056
+ addRoutes: addRoutes,
1057
+ skipListen: false,
1058
+ userModel: tests_1.UserModel,
1059
+ });
1060
+ (0, bun_test_1.expect)(app).toBeDefined();
1061
+ }
1062
+ finally {
1063
+ express.default.application.listen = originalListen;
1064
+ }
1065
+ return [2 /*return*/];
1066
+ }
1067
+ });
1068
+ }); });
1069
+ (0, bun_test_1.it)("handles listen error with invalid port", function () {
1070
+ process.env.PORT = "-1";
1071
+ var addRoutes = function () { };
1072
+ // Using an invalid port should trigger the catch block and process.exit(1)
1073
+ var originalExit = process.exit;
1074
+ process.exit = (function () { });
1075
+ try {
1076
+ (0, expressServer_1.setupServer)({
1077
+ addRoutes: addRoutes,
1078
+ skipListen: false,
1079
+ userModel: tests_1.UserModel,
1080
+ });
1081
+ }
1082
+ catch (_a) {
1083
+ // May throw
1084
+ }
1085
+ process.exit = originalExit;
1086
+ });
968
1087
  });
969
1088
  (0, bun_test_1.describe)("setupServer with listen", function () {
970
1089
  var originalEnv = process.env;