@terreno/api 0.21.0 → 0.22.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/bunfig.toml +1 -1
- package/dist/auth.test.js +408 -33
- package/dist/models/consentForm.js +2 -1
- package/dist/models/consentResponse.js +2 -1
- package/dist/models/versionConfig.js +2 -1
- package/dist/openApiBuilder.d.ts +18 -0
- package/dist/openApiBuilder.js +21 -0
- package/dist/openApiBuilder.test.js +16 -0
- package/dist/permissions.test.js +10 -43
- package/dist/populate.test.js +10 -42
- package/dist/syncConsents.test.js +2 -2
- package/dist/tests/bunSetup.js +33 -283
- package/dist/tests/createTestData.d.ts +9 -0
- package/dist/tests/createTestData.js +272 -0
- package/dist/tests/models.d.ts +71 -0
- package/dist/tests/models.js +134 -0
- package/dist/tests/mongoTestSetup.d.ts +7 -0
- package/dist/tests/mongoTestSetup.js +150 -0
- package/dist/tests/testEnv.d.ts +0 -0
- package/dist/tests/testEnv.js +6 -0
- package/dist/tests/testHelper.d.ts +22 -0
- package/dist/tests/testHelper.js +115 -0
- package/dist/tests/types.d.ts +29 -0
- package/dist/tests/types.js +2 -0
- package/dist/tests.d.ts +10 -78
- package/dist/tests.js +24 -264
- package/dist/transformers.test.js +14 -50
- package/package.json +18 -4
- package/src/__snapshots__/openApiBuilder.test.ts.snap +1 -0
- package/src/auth.test.ts +277 -29
- package/src/models/consentForm.ts +3 -4
- package/src/models/consentResponse.ts +6 -4
- package/src/models/versionConfig.ts +3 -4
- package/src/openApiBuilder.test.ts +9 -0
- package/src/openApiBuilder.ts +24 -0
- package/src/permissions.test.ts +8 -23
- package/src/populate.test.ts +7 -22
- package/src/syncConsents.test.ts +1 -1
- package/src/tests/bunSetup.ts +22 -249
- package/src/tests/createTestData.ts +176 -0
- package/src/tests/models.ts +164 -0
- package/src/tests/mongoTestSetup.ts +69 -0
- package/src/tests/testEnv.ts +4 -0
- package/src/tests/testHelper.ts +57 -0
- package/src/tests/types.ts +35 -0
- package/src/tests.ts +40 -244
- package/src/transformers.test.ts +11 -30
- package/tsconfig.typedoc.json +4 -0
- package/dist/tests/index.d.ts +0 -1
- package/dist/tests/index.js +0 -17
- package/src/tests/index.ts +0 -1
package/dist/permissions.test.js
CHANGED
|
@@ -35,22 +35,6 @@ 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 __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
55
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
56
40
|
};
|
|
@@ -66,30 +50,13 @@ var tests_1 = require("./tests");
|
|
|
66
50
|
var server;
|
|
67
51
|
var app;
|
|
68
52
|
(0, bun_test_1.beforeEach)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
switch (_b.label) {
|
|
53
|
+
return __generator(this, function (_a) {
|
|
54
|
+
switch (_a.label) {
|
|
72
55
|
case 0:
|
|
73
56
|
process.env.REFRESH_TOKEN_SECRET = "testsecret1234";
|
|
74
|
-
return [4 /*yield*/, (0, tests_1.
|
|
57
|
+
return [4 /*yield*/, (0, tests_1.setupTestData)()];
|
|
75
58
|
case 1:
|
|
76
|
-
_a
|
|
77
|
-
return [4 /*yield*/, Promise.all([
|
|
78
|
-
tests_1.FoodModel.create({
|
|
79
|
-
calories: 1,
|
|
80
|
-
created: new Date(),
|
|
81
|
-
name: "Spinach",
|
|
82
|
-
ownerId: notAdmin._id,
|
|
83
|
-
}),
|
|
84
|
-
tests_1.FoodModel.create({
|
|
85
|
-
calories: 100,
|
|
86
|
-
created: Date.now() - 10,
|
|
87
|
-
name: "Apple",
|
|
88
|
-
ownerId: admin._id,
|
|
89
|
-
}),
|
|
90
|
-
])];
|
|
91
|
-
case 2:
|
|
92
|
-
_b.sent();
|
|
59
|
+
_a.sent();
|
|
93
60
|
app = (0, tests_1.getBaseServer)();
|
|
94
61
|
(0, auth_1.setupAuth)(app, tests_1.UserModel);
|
|
95
62
|
(0, auth_1.addAuthRoutes)(app, tests_1.UserModel);
|
|
@@ -125,7 +92,7 @@ var tests_1 = require("./tests");
|
|
|
125
92
|
case 0: return [4 /*yield*/, server.get("/food").expect(200)];
|
|
126
93
|
case 1:
|
|
127
94
|
res = _a.sent();
|
|
128
|
-
(0, bun_test_1.expect)(res.body.data).toHaveLength(
|
|
95
|
+
(0, bun_test_1.expect)(res.body.data).toHaveLength(4);
|
|
129
96
|
return [2 /*return*/];
|
|
130
97
|
}
|
|
131
98
|
});
|
|
@@ -137,7 +104,7 @@ var tests_1 = require("./tests");
|
|
|
137
104
|
case 0: return [4 /*yield*/, server.get("/food").expect(200)];
|
|
138
105
|
case 1:
|
|
139
106
|
res = _a.sent();
|
|
140
|
-
(0, bun_test_1.expect)(res.body.data).toHaveLength(
|
|
107
|
+
(0, bun_test_1.expect)(res.body.data).toHaveLength(4);
|
|
141
108
|
return [4 /*yield*/, server.get("/food/".concat(res.body.data[0]._id)).expect(200)];
|
|
142
109
|
case 2:
|
|
143
110
|
res2 = _a.sent();
|
|
@@ -213,7 +180,7 @@ var tests_1 = require("./tests");
|
|
|
213
180
|
case 0: return [4 /*yield*/, agent.get("/food").expect(200)];
|
|
214
181
|
case 1:
|
|
215
182
|
res = _a.sent();
|
|
216
|
-
(0, bun_test_1.expect)(res.body.data).toHaveLength(
|
|
183
|
+
(0, bun_test_1.expect)(res.body.data).toHaveLength(4);
|
|
217
184
|
return [2 /*return*/];
|
|
218
185
|
}
|
|
219
186
|
});
|
|
@@ -225,7 +192,7 @@ var tests_1 = require("./tests");
|
|
|
225
192
|
case 0: return [4 /*yield*/, agent.get("/food").expect(200)];
|
|
226
193
|
case 1:
|
|
227
194
|
res = _a.sent();
|
|
228
|
-
(0, bun_test_1.expect)(res.body.data).toHaveLength(
|
|
195
|
+
(0, bun_test_1.expect)(res.body.data).toHaveLength(4);
|
|
229
196
|
return [4 /*yield*/, server.get("/food/".concat(res.body.data[0]._id)).expect(200)];
|
|
230
197
|
case 2:
|
|
231
198
|
res2 = _a.sent();
|
|
@@ -326,7 +293,7 @@ var tests_1 = require("./tests");
|
|
|
326
293
|
case 0: return [4 /*yield*/, agent.get("/food")];
|
|
327
294
|
case 1:
|
|
328
295
|
res = _a.sent();
|
|
329
|
-
(0, bun_test_1.expect)(res.body.data).toHaveLength(
|
|
296
|
+
(0, bun_test_1.expect)(res.body.data).toHaveLength(4);
|
|
330
297
|
return [2 /*return*/];
|
|
331
298
|
}
|
|
332
299
|
});
|
|
@@ -338,7 +305,7 @@ var tests_1 = require("./tests");
|
|
|
338
305
|
case 0: return [4 /*yield*/, agent.get("/food")];
|
|
339
306
|
case 1:
|
|
340
307
|
res = _a.sent();
|
|
341
|
-
(0, bun_test_1.expect)(res.body.data).toHaveLength(
|
|
308
|
+
(0, bun_test_1.expect)(res.body.data).toHaveLength(4);
|
|
342
309
|
return [4 /*yield*/, agent.get("/food/".concat(res.body.data[0]._id))];
|
|
343
310
|
case 2:
|
|
344
311
|
res2 = _a.sent();
|
package/dist/populate.test.js
CHANGED
|
@@ -68,22 +68,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
68
68
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
72
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
73
|
-
if (!m) return o;
|
|
74
|
-
var i = m.call(o), r, ar = [], e;
|
|
75
|
-
try {
|
|
76
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
77
|
-
}
|
|
78
|
-
catch (error) { e = { error: error }; }
|
|
79
|
-
finally {
|
|
80
|
-
try {
|
|
81
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
82
|
-
}
|
|
83
|
-
finally { if (e) throw e.error; }
|
|
84
|
-
}
|
|
85
|
-
return ar;
|
|
86
|
-
};
|
|
87
71
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
88
72
|
// biome-ignore-all lint/suspicious/noExplicitAny: test mock typing
|
|
89
73
|
var bun_test_1 = require("bun:test");
|
|
@@ -96,31 +80,15 @@ var tests_1 = require("./tests");
|
|
|
96
80
|
// noExplicitAny: typing as HydratedDocument<Food> causes cascading errors on populated field access patterns (e.g. populated.ownerId.name)
|
|
97
81
|
var spinach;
|
|
98
82
|
(0, bun_test_1.beforeEach)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
99
|
-
var
|
|
100
|
-
return __generator(this, function (
|
|
101
|
-
switch (
|
|
102
|
-
case 0: return [4 /*yield*/, (0, tests_1.
|
|
83
|
+
var testData;
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
switch (_a.label) {
|
|
86
|
+
case 0: return [4 /*yield*/, (0, tests_1.setupTestData)()];
|
|
103
87
|
case 1:
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
created: new Date("2021-12-03T00:00:20.000Z"),
|
|
109
|
-
eatenBy: [admin._id],
|
|
110
|
-
hidden: false,
|
|
111
|
-
likesIds: [
|
|
112
|
-
{ likes: true, userId: admin._id },
|
|
113
|
-
{ likes: false, userId: notAdmin._id },
|
|
114
|
-
],
|
|
115
|
-
name: "Spinach",
|
|
116
|
-
ownerId: admin._id,
|
|
117
|
-
source: {
|
|
118
|
-
name: "Brand",
|
|
119
|
-
},
|
|
120
|
-
}),
|
|
121
|
-
])];
|
|
122
|
-
case 2:
|
|
123
|
-
_b = __read.apply(void 0, [_c.sent(), 1]), spinach = _b[0];
|
|
88
|
+
testData = _a.sent();
|
|
89
|
+
admin = testData.users.admin;
|
|
90
|
+
notAdmin = testData.users.notAdmin;
|
|
91
|
+
spinach = testData.foods.spinach;
|
|
124
92
|
return [2 /*return*/];
|
|
125
93
|
}
|
|
126
94
|
});
|
|
@@ -139,7 +107,7 @@ var tests_1 = require("./tests");
|
|
|
139
107
|
return [4 /*yield*/, populated.populate("likesIds.userId")];
|
|
140
108
|
case 3:
|
|
141
109
|
populated = _c.sent();
|
|
142
|
-
(0, bun_test_1.expect)(populated.ownerId.name).toBe("Admin");
|
|
110
|
+
(0, bun_test_1.expect)(populated.ownerId.name).toBe("Not Admin");
|
|
143
111
|
(0, bun_test_1.expect)(populated.eatenBy[0].id).toBe(admin.id);
|
|
144
112
|
(0, bun_test_1.expect)(populated.eatenBy[0].name).toBe("Admin");
|
|
145
113
|
(0, bun_test_1.expect)(populated.likesIds[0].userId.id).toBe(admin.id);
|
|
@@ -148,7 +116,7 @@ var tests_1 = require("./tests");
|
|
|
148
116
|
(0, bun_test_1.expect)(populated.likesIds[1].userId.name).toBe("Not Admin");
|
|
149
117
|
unpopulated = (0, populate_1.unpopulate)(populated, "ownerId");
|
|
150
118
|
(0, bun_test_1.expect)(spinach.ownerId.name).toBeUndefined();
|
|
151
|
-
(0, bun_test_1.expect)(unpopulated.ownerId.toString()).toBe(
|
|
119
|
+
(0, bun_test_1.expect)(unpopulated.ownerId.toString()).toBe(notAdmin.id);
|
|
152
120
|
// Ensure nothing else was touched.
|
|
153
121
|
(0, bun_test_1.expect)(populated.likesIds[0].userId.id).toBe(admin.id);
|
|
154
122
|
(0, bun_test_1.expect)(populated.likesIds[0].userId.name).toBe("Admin");
|
|
@@ -50,7 +50,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
50
50
|
var bun_test_1 = require("bun:test");
|
|
51
51
|
var consentForm_1 = require("./models/consentForm");
|
|
52
52
|
var syncConsents_1 = require("./syncConsents");
|
|
53
|
-
var
|
|
53
|
+
var testHelper_1 = require("./tests/testHelper");
|
|
54
54
|
var baseDef = {
|
|
55
55
|
content: { en: "# Terms\nPlease agree." },
|
|
56
56
|
order: 1,
|
|
@@ -62,7 +62,7 @@ var baseDef = {
|
|
|
62
62
|
(0, bun_test_1.beforeEach)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
63
63
|
return __generator(this, function (_a) {
|
|
64
64
|
switch (_a.label) {
|
|
65
|
-
case 0: return [4 /*yield*/, (0,
|
|
65
|
+
case 0: return [4 /*yield*/, (0, testHelper_1.setupDb)()];
|
|
66
66
|
case 1:
|
|
67
67
|
_a.sent();
|
|
68
68
|
return [4 /*yield*/, consentForm_1.ConsentForm.deleteMany({})];
|
package/dist/tests/bunSetup.js
CHANGED
|
@@ -68,290 +68,40 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
68
68
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
72
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
73
|
-
if (!m) return o;
|
|
74
|
-
var i = m.call(o), r, ar = [], e;
|
|
75
|
-
try {
|
|
76
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
77
|
-
}
|
|
78
|
-
catch (error) { e = { error: error }; }
|
|
79
|
-
finally {
|
|
80
|
-
try {
|
|
81
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
82
|
-
}
|
|
83
|
-
finally { if (e) throw e.error; }
|
|
84
|
-
}
|
|
85
|
-
return ar;
|
|
86
|
-
};
|
|
87
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
88
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
89
|
-
if (ar || !(i in from)) {
|
|
90
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
91
|
-
ar[i] = from[i];
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
95
|
-
};
|
|
96
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
97
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
98
|
-
};
|
|
99
71
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
100
|
-
|
|
101
|
-
var
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
var
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
case 1:
|
|
123
|
-
MongoMemoryServer = (_b.sent()).MongoMemoryServer;
|
|
124
|
-
return [4 /*yield*/, MongoMemoryServer.create()];
|
|
125
|
-
case 2:
|
|
126
|
-
memoryMongo = _b.sent();
|
|
127
|
-
uri = memoryMongo.getUri();
|
|
128
|
-
_b.label = 3;
|
|
129
|
-
case 3:
|
|
130
|
-
connectUri = uri !== null && uri !== void 0 ? uri : defaultLocalMongoUri;
|
|
131
|
-
return [4 /*yield*/, mongoose_1.default.connect(connectUri).catch(logger_1.logger.catch)];
|
|
132
|
-
case 4:
|
|
133
|
-
_b.sent();
|
|
134
|
-
return [2 /*return*/];
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
}); });
|
|
138
|
-
}
|
|
139
|
-
// Close MongoDB connection after all tests
|
|
140
|
-
if (shouldConnectToTestDb) {
|
|
141
|
-
(0, bun_test_1.afterAll)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
142
|
-
return __generator(this, function (_a) {
|
|
143
|
-
switch (_a.label) {
|
|
144
|
-
case 0: return [4 /*yield*/, mongoose_1.default.connection.close()];
|
|
145
|
-
case 1:
|
|
146
|
-
_a.sent();
|
|
147
|
-
if (!memoryMongo) return [3 /*break*/, 3];
|
|
148
|
-
return [4 /*yield*/, memoryMongo.stop()];
|
|
149
|
-
case 2:
|
|
150
|
-
_a.sent();
|
|
151
|
-
_a.label = 3;
|
|
152
|
-
case 3: return [2 /*return*/];
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}); });
|
|
156
|
-
}
|
|
157
|
-
var logs = [];
|
|
158
|
-
var SHOW_ALL_LOGS = process.env.SHOW_ALL_TEST_LOGS === "true";
|
|
159
|
-
// Create a custom stream that captures logs
|
|
160
|
-
var logStream = new node_stream_1.Writable({
|
|
161
|
-
write: function (chunk, _encoding, callback) {
|
|
162
|
-
logs.push(chunk.toString());
|
|
163
|
-
if (SHOW_ALL_LOGS) {
|
|
164
|
-
process.stdout.write(chunk);
|
|
165
|
-
}
|
|
166
|
-
callback();
|
|
167
|
-
},
|
|
168
|
-
});
|
|
169
|
-
// Silence both winston loggers by replacing all transports with our capturing stream
|
|
170
|
-
var silentTransport = new winston_1.default.transports.Stream({
|
|
171
|
-
format: winston_1.default.format.simple(),
|
|
172
|
-
stream: logStream,
|
|
173
|
-
});
|
|
174
|
-
// Clear and silence the default winston logger
|
|
175
|
-
winston_1.default.clear();
|
|
176
|
-
winston_1.default.add(silentTransport);
|
|
177
|
-
// Clear and silence the custom winstonLogger
|
|
178
|
-
logger_1.winstonLogger.clear();
|
|
179
|
-
logger_1.winstonLogger.add(silentTransport);
|
|
180
|
-
// Capture and silence console methods
|
|
181
|
-
var originalConsole = {
|
|
182
|
-
debug: console.debug,
|
|
183
|
-
error: console.error,
|
|
184
|
-
info: console.info,
|
|
185
|
-
// biome-ignore lint/suspicious/noConsole: We keep the original reference.
|
|
186
|
-
log: console.log,
|
|
187
|
-
warn: console.warn,
|
|
188
|
-
};
|
|
189
|
-
var captureConsoleMethod = function (method) {
|
|
190
|
-
console[method] = function () {
|
|
191
|
-
var args = [];
|
|
192
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
193
|
-
args[_i] = arguments[_i];
|
|
194
|
-
}
|
|
195
|
-
var logMessage = "[console.".concat(method, "] ").concat(args.map(function (arg) { return (typeof arg === "object" ? JSON.stringify(arg) : String(arg)); }).join(" "));
|
|
196
|
-
logs.push(logMessage);
|
|
197
|
-
if (SHOW_ALL_LOGS) {
|
|
198
|
-
originalConsole[method].apply(originalConsole, __spreadArray([], __read(args), false));
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
captureConsoleMethod("log");
|
|
203
|
-
captureConsoleMethod("info");
|
|
204
|
-
captureConsoleMethod("warn");
|
|
205
|
-
captureConsoleMethod("error");
|
|
206
|
-
captureConsoleMethod("debug");
|
|
207
|
-
// Setup before each test
|
|
208
|
-
(0, bun_test_1.beforeEach)(function () {
|
|
209
|
-
process.env.TOKEN_SECRET = "secret";
|
|
210
|
-
process.env.TOKEN_ISSUER = "terreno-api.test";
|
|
211
|
-
process.env.SESSION_SECRET = "sessionSecret";
|
|
212
|
-
process.env.REFRESH_TOKEN_SECRET = "refreshTokenSecret";
|
|
213
|
-
(0, expressServer_1.setupEnvironment)();
|
|
214
|
-
// Re-silence loggers after setupEnvironment which may reconfigure them
|
|
215
|
-
winston_1.default.clear();
|
|
216
|
-
winston_1.default.add(silentTransport);
|
|
217
|
-
logger_1.winstonLogger.clear();
|
|
218
|
-
logger_1.winstonLogger.add(silentTransport);
|
|
219
|
-
logs = [];
|
|
220
|
-
});
|
|
221
|
-
// Clear logs after each test
|
|
222
|
-
(0, bun_test_1.afterEach)(function () {
|
|
223
|
-
logs = [];
|
|
224
|
-
});
|
|
225
|
-
// Mock @sentry/bun module
|
|
226
|
-
bun_test_1.mock.module("@sentry/bun", function () {
|
|
227
|
-
var mockFn = function () { return (0, bun_test_1.mock)(function () { }); };
|
|
228
|
-
// Mock Scope
|
|
229
|
-
var mockScope = {
|
|
230
|
-
addBreadcrumb: mockFn(),
|
|
231
|
-
clear: mockFn(),
|
|
232
|
-
getSpan: mockFn(),
|
|
233
|
-
setContext: mockFn(),
|
|
234
|
-
setFingerprint: mockFn(),
|
|
235
|
-
setLevel: mockFn(),
|
|
236
|
-
setSpan: mockFn(),
|
|
237
|
-
setTag: mockFn(),
|
|
238
|
-
setTags: mockFn(),
|
|
239
|
-
setTransactionName: mockFn(),
|
|
240
|
-
setUser: mockFn(),
|
|
241
|
-
};
|
|
242
|
-
// Mock Hub
|
|
243
|
-
var mockClient = {
|
|
244
|
-
captureException: mockFn(),
|
|
245
|
-
captureMessage: mockFn(),
|
|
246
|
-
close: (0, bun_test_1.mock)(function () { return Promise.resolve(true); }),
|
|
247
|
-
flush: (0, bun_test_1.mock)(function () { return Promise.resolve(true); }),
|
|
248
|
-
getOptions: (0, bun_test_1.mock)(function () { return ({}); }),
|
|
249
|
-
};
|
|
250
|
-
var mockHub = {
|
|
251
|
-
addBreadcrumb: mockFn(),
|
|
252
|
-
captureException: mockFn(),
|
|
253
|
-
captureMessage: mockFn(),
|
|
254
|
-
configureScope: mockFn(),
|
|
255
|
-
getClient: (0, bun_test_1.mock)(function () { return mockClient; }),
|
|
256
|
-
getScope: (0, bun_test_1.mock)(function () { return mockScope; }),
|
|
257
|
-
popScope: mockFn(),
|
|
258
|
-
pushScope: mockFn(),
|
|
259
|
-
setContext: mockFn(),
|
|
260
|
-
setTag: mockFn(),
|
|
261
|
-
setTags: mockFn(),
|
|
262
|
-
setUser: mockFn(),
|
|
263
|
-
withScope: mockFn(),
|
|
264
|
-
};
|
|
265
|
-
var mockSpan = {
|
|
266
|
-
finish: mockFn(),
|
|
267
|
-
setData: mockFn(),
|
|
268
|
-
setStatus: mockFn(),
|
|
269
|
-
setTag: mockFn(),
|
|
270
|
-
startChild: mockFn(),
|
|
271
|
-
toTraceparent: (0, bun_test_1.mock)(function () { return "mock-trace-parent"; }),
|
|
272
|
-
};
|
|
273
|
-
mockSpan.startChild = (0, bun_test_1.mock)(function () { return mockSpan; });
|
|
274
|
-
var mockTransaction = {
|
|
275
|
-
finish: mockFn(),
|
|
276
|
-
setData: mockFn(),
|
|
277
|
-
setName: mockFn(),
|
|
278
|
-
setStatus: mockFn(),
|
|
279
|
-
setTag: mockFn(),
|
|
280
|
-
startChild: (0, bun_test_1.mock)(function () { return mockSpan; }),
|
|
281
|
-
toTraceparent: (0, bun_test_1.mock)(function () { return "mock-trace-parent"; }),
|
|
282
|
-
};
|
|
283
|
-
return {
|
|
284
|
-
addBreadcrumb: mockFn(),
|
|
285
|
-
captureException: mockFn(),
|
|
286
|
-
captureMessage: mockFn(),
|
|
287
|
-
clearScope: mockFn(),
|
|
288
|
-
close: (0, bun_test_1.mock)(function () { return Promise.resolve(true); }),
|
|
289
|
-
configureScope: mockFn(),
|
|
290
|
-
default: {
|
|
291
|
-
addBreadcrumb: mockFn(),
|
|
292
|
-
captureException: mockFn(),
|
|
293
|
-
captureMessage: mockFn(),
|
|
294
|
-
clearScope: mockFn(),
|
|
295
|
-
close: (0, bun_test_1.mock)(function () { return Promise.resolve(true); }),
|
|
296
|
-
configureScope: mockFn(),
|
|
297
|
-
flush: (0, bun_test_1.mock)(function () { return Promise.resolve(true); }),
|
|
298
|
-
getClient: (0, bun_test_1.mock)(function () { return mockClient; }),
|
|
299
|
-
getCurrentHub: (0, bun_test_1.mock)(function () { return mockHub; }),
|
|
300
|
-
getCurrentScope: (0, bun_test_1.mock)(function () { return mockScope; }),
|
|
301
|
-
Handlers: {
|
|
302
|
-
errorHandler: (0, bun_test_1.mock)(function () { return function (err, _req, _res, next) { return next(err); }; }),
|
|
303
|
-
requestHandler: (0, bun_test_1.mock)(function () { return function (_req, _res, next) { return next(); }; }),
|
|
304
|
-
tracingHandler: (0, bun_test_1.mock)(function () { return function (_req, _res, next) { return next(); }; }),
|
|
305
|
-
},
|
|
306
|
-
init: mockFn(),
|
|
307
|
-
isInitialized: (0, bun_test_1.mock)(function () { return true; }),
|
|
308
|
-
popScope: mockFn(),
|
|
309
|
-
pushScope: mockFn(),
|
|
310
|
-
Severity: {
|
|
311
|
-
Debug: "debug",
|
|
312
|
-
Error: "error",
|
|
313
|
-
Fatal: "fatal",
|
|
314
|
-
Info: "info",
|
|
315
|
-
Warning: "warning",
|
|
316
|
-
},
|
|
317
|
-
setContext: mockFn(),
|
|
318
|
-
setFingerprint: mockFn(),
|
|
319
|
-
setLevel: mockFn(),
|
|
320
|
-
setTag: mockFn(),
|
|
321
|
-
setTags: mockFn(),
|
|
322
|
-
setUser: mockFn(),
|
|
323
|
-
setupExpressErrorHandler: mockFn(),
|
|
324
|
-
startTransaction: (0, bun_test_1.mock)(function () { return mockTransaction; }),
|
|
325
|
-
withScope: (0, bun_test_1.mock)(function (callback) { return callback(mockScope); }),
|
|
72
|
+
var test_1 = require("@terreno/test");
|
|
73
|
+
var useFixtureCache = process.env.TERRENO_TEST_USE_FIXTURE_CACHE === "true";
|
|
74
|
+
if (useFixtureCache) {
|
|
75
|
+
(0, test_1.registerBackendPreload)({
|
|
76
|
+
connectMongoInBeforeAll: true,
|
|
77
|
+
loadTestDataFromCache: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
78
|
+
var loadTestDataFromCache;
|
|
79
|
+
return __generator(this, function (_a) {
|
|
80
|
+
switch (_a.label) {
|
|
81
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./mongoTestSetup")); })];
|
|
82
|
+
case 1:
|
|
83
|
+
loadTestDataFromCache = (_a.sent()).loadTestDataFromCache;
|
|
84
|
+
return [4 /*yield*/, loadTestDataFromCache()];
|
|
85
|
+
case 2:
|
|
86
|
+
_a.sent();
|
|
87
|
+
return [2 /*return*/];
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}); },
|
|
91
|
+
mongo: {
|
|
92
|
+
baseDatabaseName: "terrenoTest_base",
|
|
93
|
+
useReplSet: true,
|
|
326
94
|
},
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
getCurrentHub: (0, bun_test_1.mock)(function () { return mockHub; }),
|
|
330
|
-
getCurrentScope: (0, bun_test_1.mock)(function () { return mockScope; }),
|
|
331
|
-
Handlers: {
|
|
332
|
-
errorHandler: (0, bun_test_1.mock)(function () { return function (err, _req, _res, next) { return next(err); }; }),
|
|
333
|
-
requestHandler: (0, bun_test_1.mock)(function () { return function (_req, _res, next) { return next(); }; }),
|
|
334
|
-
tracingHandler: (0, bun_test_1.mock)(function () { return function (_req, _res, next) { return next(); }; }),
|
|
95
|
+
testEnv: {
|
|
96
|
+
tokenIssuer: "terreno-api.test",
|
|
335
97
|
},
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
Fatal: "fatal",
|
|
344
|
-
Info: "info",
|
|
345
|
-
Warning: "warning",
|
|
98
|
+
useTransactions: true,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
(0, test_1.registerSimpleMongoPreload)({
|
|
103
|
+
testEnv: {
|
|
104
|
+
tokenIssuer: "terreno-api.test",
|
|
346
105
|
},
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
setLevel: mockFn(),
|
|
350
|
-
setTag: mockFn(),
|
|
351
|
-
setTags: mockFn(),
|
|
352
|
-
setUser: mockFn(),
|
|
353
|
-
setupExpressErrorHandler: mockFn(),
|
|
354
|
-
startTransaction: (0, bun_test_1.mock)(function () { return mockTransaction; }),
|
|
355
|
-
withScope: (0, bun_test_1.mock)(function (callback) { return callback(mockScope); }),
|
|
356
|
-
};
|
|
357
|
-
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CachedTestData, TestData, TestFoods, TestRequired, TestUsers } from "./types";
|
|
2
|
+
export declare const clearTestCollections: () => Promise<void>;
|
|
3
|
+
export declare const createTestUsers: () => Promise<TestUsers>;
|
|
4
|
+
export declare const createStandardFoods: (users: TestUsers) => Promise<TestFoods>;
|
|
5
|
+
export declare const createRequiredFixtures: () => Promise<TestRequired>;
|
|
6
|
+
/** Builds the standard Terreno API test database (users, foods, required docs). */
|
|
7
|
+
export declare const createTestData: () => Promise<TestData>;
|
|
8
|
+
export declare const toCachedTestData: (testData: TestData) => CachedTestData;
|
|
9
|
+
export declare const loadTestDataFromDocuments: (cached: CachedTestData) => Promise<TestData>;
|