@tellescope/sdk 1.255.1 → 1.255.3
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/lib/cjs/tests/api_tests/generate_enduser_summary.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/generate_enduser_summary.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/generate_enduser_summary.test.js +186 -0
- package/lib/cjs/tests/api_tests/generate_enduser_summary.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/translations.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/translations.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/translations.test.js +148 -0
- package/lib/cjs/tests/api_tests/translations.test.js.map +1 -0
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +89 -85
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/tests/api_tests/generate_enduser_summary.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/generate_enduser_summary.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/generate_enduser_summary.test.js +182 -0
- package/lib/esm/tests/api_tests/generate_enduser_summary.test.js.map +1 -0
- package/lib/esm/tests/api_tests/translations.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/translations.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/translations.test.js +144 -0
- package/lib/esm/tests/api_tests/translations.test.js.map +1 -0
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +89 -85
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/api_tests/translations.test.ts +83 -0
- package/src/tests/tests.ts +2 -0
- package/test_generated.pdf +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate_enduser_summary.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/generate_enduser_summary.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,eAAO,MAAM,8BAA8B;SAAwC,OAAO;iBAAe,OAAO;mBAqF/G,CAAA"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
require('source-map-support').install();
|
|
38
|
+
import { Session } from "../../sdk";
|
|
39
|
+
import { async_test, log_header, } from "@tellescope/testing";
|
|
40
|
+
import { setup_tests } from "../setup";
|
|
41
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
42
|
+
// Main test function that can be called independently or as part of the main test suite
|
|
43
|
+
export var generate_enduser_summary_tests = function (_a) {
|
|
44
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
45
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
+
var enduserId, journeyId, automationStepId, automatedActionId, summaryAction, enduser, journey, step, automatedAction, result_1;
|
|
47
|
+
return __generator(this, function (_b) {
|
|
48
|
+
switch (_b.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
log_header("Generate Patient Summary (journey action) Tests");
|
|
51
|
+
enduserId = '';
|
|
52
|
+
journeyId = '';
|
|
53
|
+
automationStepId = '';
|
|
54
|
+
automatedActionId = '';
|
|
55
|
+
summaryAction = {
|
|
56
|
+
type: 'generateEnduserSummary',
|
|
57
|
+
info: {
|
|
58
|
+
aiSummaryConfiguration: {
|
|
59
|
+
includeProfileFields: true,
|
|
60
|
+
prompt: 'Summarize this patient in one sentence.',
|
|
61
|
+
dataSources: [],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
_b.label = 1;
|
|
66
|
+
case 1:
|
|
67
|
+
_b.trys.push([1, , 12, 21]);
|
|
68
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({
|
|
69
|
+
fname: 'SummaryTest',
|
|
70
|
+
lname: 'Patient',
|
|
71
|
+
dateOfBirth: '01-02-1990',
|
|
72
|
+
fields: { chief_complaint: 'recurring headaches for two weeks' },
|
|
73
|
+
})];
|
|
74
|
+
case 2:
|
|
75
|
+
enduser = _b.sent();
|
|
76
|
+
enduserId = enduser.id;
|
|
77
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({ title: "Generate Summary Test Journey" })];
|
|
78
|
+
case 3:
|
|
79
|
+
journey = _b.sent();
|
|
80
|
+
journeyId = journey.id;
|
|
81
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
82
|
+
journeyId: journeyId,
|
|
83
|
+
action: summaryAction,
|
|
84
|
+
events: [{ type: 'onJourneyStart', info: {} }],
|
|
85
|
+
})];
|
|
86
|
+
case 4:
|
|
87
|
+
step = _b.sent();
|
|
88
|
+
automationStepId = step.id;
|
|
89
|
+
return [4 /*yield*/, sdk.api.automated_actions.createOne({
|
|
90
|
+
enduserId: enduserId,
|
|
91
|
+
journeyId: journeyId,
|
|
92
|
+
automationStepId: automationStepId,
|
|
93
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
94
|
+
status: 'active',
|
|
95
|
+
processAfter: Date.now(),
|
|
96
|
+
action: summaryAction,
|
|
97
|
+
})];
|
|
98
|
+
case 5:
|
|
99
|
+
automatedAction = _b.sent();
|
|
100
|
+
automatedActionId = automatedAction.id;
|
|
101
|
+
return [4 /*yield*/, sdk.api.automated_actions.process({ automatedActionId: automatedActionId })];
|
|
102
|
+
case 6:
|
|
103
|
+
result_1 = _b.sent();
|
|
104
|
+
return [4 /*yield*/, async_test("generateEnduserSummary action is recognized (not unimplemented)", function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
105
|
+
return [2 /*return*/, result_1];
|
|
106
|
+
}); }); }, { onResult: function (r) { return (r === null || r === void 0 ? void 0 : r.unimplemented) !== true; } })];
|
|
107
|
+
case 7:
|
|
108
|
+
_b.sent();
|
|
109
|
+
if (!result_1.success) return [3 /*break*/, 10];
|
|
110
|
+
return [4 /*yield*/, async_test("aiSummary + aiSummaryUpdatedAt persisted on enduser after successful generation", function () { return sdk.api.endusers.getOne(enduserId); }, { onResult: function (e) { return (typeof e.aiSummary === 'string'
|
|
111
|
+
&& e.aiSummary.length > 0
|
|
112
|
+
&& !!e.aiSummaryUpdatedAt); } })];
|
|
113
|
+
case 8:
|
|
114
|
+
_b.sent();
|
|
115
|
+
return [4 /*yield*/, async_test("ai_conversation tagged with enduserId (first-class, queryable)", function () { return sdk.api.ai_conversations.getSome({ filter: { enduserId: enduserId } }); }, { onResult: function (convos) { return convos.length > 0 && convos.every(function (c) { return c.enduserId === enduserId; }); } })];
|
|
116
|
+
case 9:
|
|
117
|
+
_b.sent();
|
|
118
|
+
return [3 /*break*/, 11];
|
|
119
|
+
case 10:
|
|
120
|
+
// No credits / Bedrock disabled in this environment — surface the reason but don't fail wiring test.
|
|
121
|
+
console.log("\u2139\uFE0F Summary generation did not complete (likely no Bedrock credits): ".concat(result_1.error));
|
|
122
|
+
_b.label = 11;
|
|
123
|
+
case 11: return [3 /*break*/, 21];
|
|
124
|
+
case 12:
|
|
125
|
+
if (!automatedActionId) return [3 /*break*/, 14];
|
|
126
|
+
return [4 /*yield*/, sdk.api.automated_actions.deleteOne(automatedActionId).catch(function () { })];
|
|
127
|
+
case 13:
|
|
128
|
+
_b.sent();
|
|
129
|
+
_b.label = 14;
|
|
130
|
+
case 14:
|
|
131
|
+
if (!automationStepId) return [3 /*break*/, 16];
|
|
132
|
+
return [4 /*yield*/, sdk.api.automation_steps.deleteOne(automationStepId).catch(function () { })];
|
|
133
|
+
case 15:
|
|
134
|
+
_b.sent();
|
|
135
|
+
_b.label = 16;
|
|
136
|
+
case 16:
|
|
137
|
+
if (!journeyId) return [3 /*break*/, 18];
|
|
138
|
+
return [4 /*yield*/, sdk.api.journeys.deleteOne(journeyId).catch(function () { })];
|
|
139
|
+
case 17:
|
|
140
|
+
_b.sent();
|
|
141
|
+
_b.label = 18;
|
|
142
|
+
case 18:
|
|
143
|
+
if (!enduserId) return [3 /*break*/, 20];
|
|
144
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserId).catch(function () { })];
|
|
145
|
+
case 19:
|
|
146
|
+
_b.sent();
|
|
147
|
+
_b.label = 20;
|
|
148
|
+
case 20: return [7 /*endfinally*/];
|
|
149
|
+
case 21: return [2 /*return*/];
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
// Allow running this test file independently
|
|
155
|
+
if (require.main === module) {
|
|
156
|
+
console.log("\uD83C\uDF10 Using API URL: ".concat(host));
|
|
157
|
+
var sdk_1 = new Session({ host: host });
|
|
158
|
+
var sdkNonAdmin_1 = new Session({ host: host });
|
|
159
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
160
|
+
return __generator(this, function (_a) {
|
|
161
|
+
switch (_a.label) {
|
|
162
|
+
case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
|
|
163
|
+
case 1:
|
|
164
|
+
_a.sent();
|
|
165
|
+
return [4 /*yield*/, generate_enduser_summary_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
166
|
+
case 2:
|
|
167
|
+
_a.sent();
|
|
168
|
+
return [2 /*return*/];
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}); };
|
|
172
|
+
runTests()
|
|
173
|
+
.then(function () {
|
|
174
|
+
console.log("✅ Generate Patient Summary test suite completed successfully");
|
|
175
|
+
process.exit(0);
|
|
176
|
+
})
|
|
177
|
+
.catch(function (error) {
|
|
178
|
+
console.error("❌ Generate Patient Summary test suite failed:", error);
|
|
179
|
+
process.exit(1);
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=generate_enduser_summary.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate_enduser_summary.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/generate_enduser_summary.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/translations.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBnC,eAAO,MAAM,kBAAkB;SAA2B,OAAO;iBAAe,OAAO;mBA0CtF,CAAA"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
require('source-map-support').install();
|
|
49
|
+
import { Session } from "../../sdk";
|
|
50
|
+
import { assert, log_header, } from "@tellescope/testing";
|
|
51
|
+
import { setup_tests } from "../setup";
|
|
52
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
53
|
+
// Modular test for the translations framework.
|
|
54
|
+
// Validates that a model's `translations` field (nested { field: { language: text } }) is accepted by
|
|
55
|
+
// schema validation, persists, and accumulates multiple languages (uses phone_calls as the MVP model).
|
|
56
|
+
//
|
|
57
|
+
// NOTE: this test deliberately does NOT invoke the AI translation endpoint (ai_conversations.send_message).
|
|
58
|
+
// That path consumes AI credits and belongs in an eval, not a regularly-run test. The endpoint itself is
|
|
59
|
+
// already covered by the AI Summary feature, and the translation-specific logic (the system-prompt
|
|
60
|
+
// builder in @tellescope/utilities) is a pure function verified at compile time.
|
|
61
|
+
export var translations_tests = function (_a) {
|
|
62
|
+
var sdk = _a.sdk;
|
|
63
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
64
|
+
var enduser, callId, call, translations, updated, merged, updated2;
|
|
65
|
+
var _b, _c, _d, _e, _f, _g, _h;
|
|
66
|
+
return __generator(this, function (_j) {
|
|
67
|
+
switch (_j.label) {
|
|
68
|
+
case 0:
|
|
69
|
+
log_header("Translations Framework Tests");
|
|
70
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Translation', lname: 'Tester' })];
|
|
71
|
+
case 1:
|
|
72
|
+
enduser = _j.sent();
|
|
73
|
+
_j.label = 2;
|
|
74
|
+
case 2:
|
|
75
|
+
_j.trys.push([2, , 8, 12]);
|
|
76
|
+
return [4 /*yield*/, sdk.api.phone_calls.createOne({
|
|
77
|
+
enduserId: enduser.id,
|
|
78
|
+
inbound: true,
|
|
79
|
+
userId: sdk.userInfo.id,
|
|
80
|
+
transcription: 'Hola, por favor devuélvame la llamada cuando pueda.',
|
|
81
|
+
})];
|
|
82
|
+
case 3:
|
|
83
|
+
call = _j.sent();
|
|
84
|
+
callId = call.id;
|
|
85
|
+
translations = { transcription: { en: 'Hi, please call me back when you can.' } };
|
|
86
|
+
return [4 /*yield*/, sdk.api.phone_calls.updateOne(call.id, { translations: translations }, { replaceObjectFields: true })];
|
|
87
|
+
case 4:
|
|
88
|
+
_j.sent();
|
|
89
|
+
return [4 /*yield*/, sdk.api.phone_calls.getOne(call.id)];
|
|
90
|
+
case 5:
|
|
91
|
+
updated = _j.sent();
|
|
92
|
+
assert(((_c = (_b = updated.translations) === null || _b === void 0 ? void 0 : _b.transcription) === null || _c === void 0 ? void 0 : _c.en) === translations.transcription.en, "translations not persisted: ".concat(JSON.stringify(updated.translations)), 'translations field persisted correctly');
|
|
93
|
+
merged = __assign(__assign({}, updated.translations), { transcription: __assign(__assign({}, (_d = updated.translations) === null || _d === void 0 ? void 0 : _d.transcription), { es: 'Hola de nuevo.' }) });
|
|
94
|
+
return [4 /*yield*/, sdk.api.phone_calls.updateOne(call.id, { translations: merged }, { replaceObjectFields: true })];
|
|
95
|
+
case 6:
|
|
96
|
+
_j.sent();
|
|
97
|
+
return [4 /*yield*/, sdk.api.phone_calls.getOne(call.id)];
|
|
98
|
+
case 7:
|
|
99
|
+
updated2 = _j.sent();
|
|
100
|
+
assert(!!((_f = (_e = updated2.translations) === null || _e === void 0 ? void 0 : _e.transcription) === null || _f === void 0 ? void 0 : _f.en) && !!((_h = (_g = updated2.translations) === null || _g === void 0 ? void 0 : _g.transcription) === null || _h === void 0 ? void 0 : _h.es), "translations did not accumulate: ".concat(JSON.stringify(updated2.translations)), 'multiple language translations accumulate under one field');
|
|
101
|
+
return [3 /*break*/, 12];
|
|
102
|
+
case 8:
|
|
103
|
+
if (!callId) return [3 /*break*/, 10];
|
|
104
|
+
return [4 /*yield*/, sdk.api.phone_calls.deleteOne(callId).catch(function () { })];
|
|
105
|
+
case 9:
|
|
106
|
+
_j.sent();
|
|
107
|
+
_j.label = 10;
|
|
108
|
+
case 10: return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id).catch(function () { })];
|
|
109
|
+
case 11:
|
|
110
|
+
_j.sent();
|
|
111
|
+
return [7 /*endfinally*/];
|
|
112
|
+
case 12: return [2 /*return*/];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
// Allow running this test file independently
|
|
118
|
+
if (require.main === module) {
|
|
119
|
+
var sdk_1 = new Session({ host: host });
|
|
120
|
+
var sdkNonAdmin_1 = new Session({ host: host });
|
|
121
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
122
|
+
return __generator(this, function (_a) {
|
|
123
|
+
switch (_a.label) {
|
|
124
|
+
case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
|
|
125
|
+
case 1:
|
|
126
|
+
_a.sent();
|
|
127
|
+
return [4 /*yield*/, translations_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
128
|
+
case 2:
|
|
129
|
+
_a.sent();
|
|
130
|
+
return [2 /*return*/];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}); };
|
|
134
|
+
runTests()
|
|
135
|
+
.then(function () {
|
|
136
|
+
console.log("✅ Translations test suite completed successfully");
|
|
137
|
+
process.exit(0);
|
|
138
|
+
})
|
|
139
|
+
.catch(function (error) {
|
|
140
|
+
console.error("❌ Translations test suite failed:", error);
|
|
141
|
+
process.exit(1);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=translations.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/translations.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA6zEA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAw7CD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBAwb1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
|