@tellescope/sdk 1.244.2 → 1.244.4

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.
@@ -4080,7 +4080,7 @@ var order_created_tests = function () { return __awaiter(void 0, void 0, void 0,
4080
4080
  });
4081
4081
  }); };
4082
4082
  var order_status_equals_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4083
- var t1, t2, t3, t4, t5, t6, t7, e, u;
4083
+ var t1, t2, t3, t4, t5, t6, t7, t8, e, u;
4084
4084
  return __generator(this, function (_a) {
4085
4085
  switch (_a.label) {
4086
4086
  case 0:
@@ -4141,45 +4141,53 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4141
4141
  })];
4142
4142
  case 7:
4143
4143
  t7 = _a.sent();
4144
- return [4 /*yield*/, sdk.api.endusers.createOne({})];
4144
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4145
+ event: { type: 'Order Status Equals', info: { source: 'Source', status: "Update", titlePartialsAnd: ['PARTIAL-A', 'PARTIAL-B'] } },
4146
+ action: { type: 'Add Tags', info: { tags: ['Title Partial And Update'] } },
4147
+ status: 'Active',
4148
+ title: "Title Partial And Condition"
4149
+ })];
4145
4150
  case 8:
4151
+ t8 = _a.sent();
4152
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4153
+ case 9:
4146
4154
  e = _a.sent();
4147
4155
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Nooo', source: 'Source', title: 'nomatch', externalId: '1', enduserId: e.id })];
4148
- case 9:
4156
+ case 10:
4149
4157
  _a.sent();
4150
4158
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4151
- case 10:
4159
+ case 11:
4152
4160
  _a.sent(); // allow triggers to happen
4153
4161
  return [4 /*yield*/, async_test("No tag is added (no fill)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })];
4154
- case 11:
4162
+ case 12:
4155
4163
  _a.sent();
4156
4164
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Filled', source: 'Source', title: 'nomatch', externalId: '2', enduserId: e.id, fill: 'nomatch' })];
4157
- case 12:
4165
+ case 13:
4158
4166
  _a.sent();
4159
4167
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4160
- case 13:
4168
+ case 14:
4161
4169
  _a.sent(); // allow triggers to happen
4162
4170
  return [4 /*yield*/, async_test("No tag is added (fill mistmatch)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })];
4163
- case 14:
4171
+ case 15:
4164
4172
  _a.sent();
4165
4173
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Status', source: 'Source', externalId: '3', enduserId: e.id, title: "Title" })];
4166
- case 15:
4174
+ case 16:
4167
4175
  _a.sent();
4168
4176
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4169
- case 16:
4177
+ case 17:
4170
4178
  _a.sent(); // allow triggers to happen
4171
4179
  return [4 /*yield*/, async_test("First tag is added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4172
4180
  var _a, _b;
4173
4181
  return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 1
4174
4182
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source')));
4175
4183
  } })];
4176
- case 17:
4184
+ case 18:
4177
4185
  _a.sent();
4178
4186
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Status', source: 'Source', externalId: '4', enduserId: e.id, title: "Title", fill: '1' })];
4179
- case 18:
4187
+ case 19:
4180
4188
  _a.sent();
4181
4189
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4182
- case 19:
4190
+ case 20:
4183
4191
  _a.sent(); // allow triggers to happen
4184
4192
  return [4 /*yield*/, async_test("Fill tag not added yet (mismatch)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4185
4193
  var _a, _b, _c;
@@ -4187,13 +4195,13 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4187
4195
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source'))
4188
4196
  && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Fill')));
4189
4197
  } })];
4190
- case 20:
4198
+ case 21:
4191
4199
  _a.sent();
4192
4200
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Filled', source: 'Source', externalId: '5', enduserId: e.id, title: "Title", fill: "Fill" })];
4193
- case 21:
4201
+ case 22:
4194
4202
  _a.sent();
4195
4203
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4196
- case 22:
4204
+ case 23:
4197
4205
  _a.sent(); // allow triggers to happen
4198
4206
  return [4 /*yield*/, async_test("Fill tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4199
4207
  var _a, _b, _c;
@@ -4201,16 +4209,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4201
4209
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source'))
4202
4210
  && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Fill')));
4203
4211
  } })];
4204
- case 23:
4212
+ case 24:
4205
4213
  _a.sent();
4206
4214
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Status', source: 'Source', externalId: '6', enduserId: e.id, title: "Title" })];
4207
- case 24:
4215
+ case 25:
4208
4216
  u = _a.sent();
4209
4217
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Update' })];
4210
- case 25:
4218
+ case 26:
4211
4219
  _a.sent();
4212
4220
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4213
- case 26:
4221
+ case 27:
4214
4222
  _a.sent(); // allow triggers to happen
4215
4223
  return [4 /*yield*/, async_test("Status update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4216
4224
  var _a, _b, _c, _d;
@@ -4221,18 +4229,18 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4221
4229
  } })
4222
4230
  // duplicate updates get rate limited, so we need to make each update unique
4223
4231
  ];
4224
- case 27:
4232
+ case 28:
4225
4233
  _a.sent();
4226
4234
  // duplicate updates get rate limited, so we need to make each update unique
4227
4235
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle' })];
4228
- case 28:
4236
+ case 29:
4229
4237
  // duplicate updates get rate limited, so we need to make each update unique
4230
4238
  _a.sent();
4231
4239
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", fill: 'Update', externalId: 'avoid rate limiting' })];
4232
- case 29:
4240
+ case 30:
4233
4241
  _a.sent();
4234
4242
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4235
- case 30:
4243
+ case 31:
4236
4244
  _a.sent(); // allow triggers to happen
4237
4245
  return [4 /*yield*/, async_test("Fill update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4238
4246
  var _a, _b, _c, _d, _f;
@@ -4242,16 +4250,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4242
4250
  && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Status Update'))
4243
4251
  && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update')));
4244
4252
  } })];
4245
- case 31:
4253
+ case 32:
4246
4254
  _a.sent();
4247
4255
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 1" })];
4248
- case 32:
4256
+ case 33:
4249
4257
  _a.sent();
4250
4258
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", sku: 'SK', externalId: 'avoid rate limiting 2' })];
4251
- case 33:
4259
+ case 34:
4252
4260
  _a.sent();
4253
4261
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4254
- case 34:
4262
+ case 35:
4255
4263
  _a.sent(); // allow triggers to happen
4256
4264
  return [4 /*yield*/, async_test("SKU update no match", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4257
4265
  var _a, _b, _c, _d, _f;
@@ -4261,16 +4269,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4261
4269
  && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Status Update'))
4262
4270
  && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update')));
4263
4271
  } })];
4264
- case 35:
4272
+ case 36:
4265
4273
  _a.sent();
4266
4274
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 2" })];
4267
- case 36:
4275
+ case 37:
4268
4276
  _a.sent();
4269
4277
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", sku: 'SKU', externalId: 'avoid rate limiting 3' })];
4270
- case 37:
4278
+ case 38:
4271
4279
  _a.sent();
4272
4280
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4273
- case 38:
4281
+ case 39:
4274
4282
  _a.sent(); // allow triggers to happen
4275
4283
  return [4 /*yield*/, async_test("SKU update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4276
4284
  var _a, _b, _c, _d, _f, _g;
@@ -4281,16 +4289,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4281
4289
  && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update'))
4282
4290
  && ((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('SKU Update')));
4283
4291
  } })];
4284
- case 39:
4292
+ case 40:
4285
4293
  _a.sent();
4286
4294
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 3" })];
4287
- case 40:
4295
+ case 41:
4288
4296
  _a.sent();
4289
4297
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", sku: '___SKU-PARTIAL--_' })];
4290
- case 41:
4298
+ case 42:
4291
4299
  _a.sent();
4292
4300
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4293
- case 42:
4301
+ case 43:
4294
4302
  _a.sent(); // allow triggers to happen
4295
4303
  return [4 /*yield*/, async_test("SKU partial update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4296
4304
  var _a, _b, _c, _d, _f, _g, _h;
@@ -4302,16 +4310,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4302
4310
  && ((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('SKU Update'))
4303
4311
  && ((_h = e.tags) === null || _h === void 0 ? void 0 : _h.includes('SKU Partial Update')));
4304
4312
  } })];
4305
- case 43:
4313
+ case 44:
4306
4314
  _a.sent();
4307
4315
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 4" })];
4308
- case 44:
4316
+ case 45:
4309
4317
  _a.sent();
4310
4318
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", title: "TITLE-PARTIAL" })];
4311
- case 45:
4319
+ case 46:
4312
4320
  _a.sent();
4313
4321
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4314
- case 46:
4322
+ case 47:
4315
4323
  _a.sent(); // allow triggers to happen
4316
4324
  return [4 /*yield*/, async_test("Title partial update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4317
4325
  var _a, _b, _c, _d, _f, _g, _h, _j;
@@ -4324,7 +4332,46 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4324
4332
  && ((_h = e.tags) === null || _h === void 0 ? void 0 : _h.includes('SKU Partial Update'))
4325
4333
  && ((_j = e.tags) === null || _j === void 0 ? void 0 : _j.includes('Title Partial Update')));
4326
4334
  } })];
4327
- case 47:
4335
+ case 48:
4336
+ _a.sent();
4337
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 5" })];
4338
+ case 49:
4339
+ _a.sent();
4340
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", title: "PARTIAL-A only" })];
4341
+ case 50:
4342
+ _a.sent();
4343
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4344
+ case 51:
4345
+ _a.sent(); // allow triggers to happen
4346
+ return [4 /*yield*/, async_test("Title partial AND no match (only one partial present)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4347
+ var _a, _b;
4348
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 7
4349
+ && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Title Partial And Update')));
4350
+ } })];
4351
+ case 52:
4352
+ _a.sent();
4353
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 6" })];
4354
+ case 53:
4355
+ _a.sent();
4356
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", title: "PARTIAL-A and PARTIAL-B together" })];
4357
+ case 54:
4358
+ _a.sent();
4359
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4360
+ case 55:
4361
+ _a.sent(); // allow triggers to happen
4362
+ return [4 /*yield*/, async_test("Title partial AND update tag added (both partials present)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4363
+ var _a, _b, _c, _d, _f, _g, _h, _j, _k;
4364
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 8
4365
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source'))
4366
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Fill'))
4367
+ && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Status Update'))
4368
+ && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update'))
4369
+ && ((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('SKU Update'))
4370
+ && ((_h = e.tags) === null || _h === void 0 ? void 0 : _h.includes('SKU Partial Update'))
4371
+ && ((_j = e.tags) === null || _j === void 0 ? void 0 : _j.includes('Title Partial Update'))
4372
+ && ((_k = e.tags) === null || _k === void 0 ? void 0 : _k.includes('Title Partial And Update')));
4373
+ } })];
4374
+ case 56:
4328
4375
  _a.sent();
4329
4376
  return [4 /*yield*/, Promise.all([
4330
4377
  sdk.api.automation_triggers.deleteOne(t1.id),
@@ -4334,9 +4381,10 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4334
4381
  sdk.api.automation_triggers.deleteOne(t5.id),
4335
4382
  sdk.api.automation_triggers.deleteOne(t6.id),
4336
4383
  sdk.api.automation_triggers.deleteOne(t7.id),
4384
+ sdk.api.automation_triggers.deleteOne(t8.id),
4337
4385
  sdk.api.endusers.deleteOne(e.id),
4338
4386
  ])];
4339
- case 48:
4387
+ case 57:
4340
4388
  _a.sent();
4341
4389
  return [2 /*return*/];
4342
4390
  }
@@ -6036,28 +6084,28 @@ var automation_trigger_tests = function () { return __awaiter(void 0, void 0, vo
6036
6084
  switch (_a.label) {
6037
6085
  case 0:
6038
6086
  log_header("Automation Trigger Tests");
6039
- return [4 /*yield*/, appointment_cancelled_tests()];
6087
+ return [4 /*yield*/, order_status_equals_tests()];
6040
6088
  case 1:
6041
6089
  _a.sent();
6042
- return [4 /*yield*/, set_fields_tests()];
6090
+ return [4 /*yield*/, appointment_cancelled_tests()];
6043
6091
  case 2:
6044
6092
  _a.sent();
6045
- return [4 /*yield*/, purchase_made_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6093
+ return [4 /*yield*/, set_fields_tests()];
6046
6094
  case 3:
6047
6095
  _a.sent();
6048
- return [4 /*yield*/, appointment_rescheduled_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6096
+ return [4 /*yield*/, purchase_made_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6049
6097
  case 4:
6050
6098
  _a.sent();
6051
- return [4 /*yield*/, form_response_set_fields_trigger_tests()];
6099
+ return [4 /*yield*/, appointment_rescheduled_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6052
6100
  case 5:
6053
6101
  _a.sent();
6054
- return [4 /*yield*/, form_response_set_fields_journey_tests()];
6102
+ return [4 /*yield*/, form_response_set_fields_trigger_tests()];
6055
6103
  case 6:
6056
6104
  _a.sent();
6057
- return [4 /*yield*/, appointment_completed_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6105
+ return [4 /*yield*/, form_response_set_fields_journey_tests()];
6058
6106
  case 7:
6059
6107
  _a.sent();
6060
- return [4 /*yield*/, order_status_equals_tests()];
6108
+ return [4 /*yield*/, appointment_completed_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6061
6109
  case 8:
6062
6110
  _a.sent();
6063
6111
  return [4 /*yield*/, trigger_events_api_tests()];
@@ -11688,7 +11736,7 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
11688
11736
  dueDateInMS = Date.now() + 1000 * 60 * 60 * 24;
11689
11737
  title = 't';
11690
11738
  LEEWAY = 200;
11691
- withLeeway = function (source, target) { return (source !== undefined && ((source - LEEWAY) < target || (source + LEEWAY) > target)); };
11739
+ withLeeway = function (source, target) { return (source != null && ((source - LEEWAY) < target || (source + LEEWAY) > target)); };
11692
11740
  return [4 /*yield*/, async_test("No reminders", function () { return sdk.api.tickets.createOne({ title: title }); }, { onResult: function (t) { toDelete.push(t); return t.nextReminderInMS === -1; } })];
11693
11741
  case 1:
11694
11742
  _a.sent();
@@ -14339,7 +14387,7 @@ var updatedAt_tests = function () { return __awaiter(void 0, void 0, void 0, fun
14339
14387
  });
14340
14388
  }); };
14341
14389
  var replace_enduser_template_values_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
14342
- var enduser, d, enduserWithVitals;
14390
+ var enduser, d, enduserWithVitals, enduserWithObjectField, rawTemplate, substituted, parsed;
14343
14391
  return __generator(this, function (_a) {
14344
14392
  switch (_a.label) {
14345
14393
  case 0:
@@ -14371,11 +14419,44 @@ var replace_enduser_template_values_tests = function () { return __awaiter(void
14371
14419
  assert(replace_enduser_template_values('{{enduser.height.unit}}', enduser) === '', 'fail undefined height.unit', 'undefined height.unit');
14372
14420
  assert(replace_enduser_template_values('{{enduser.weight.value}}', enduser) === '', 'fail undefined weight.value', 'undefined weight.value');
14373
14421
  assert(replace_enduser_template_values('{{enduser.weight.unit}}', enduser) === '', 'fail undefined weight.unit', 'undefined weight.unit');
14374
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserWithVitals.id)];
14422
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserWithVitals.id)
14423
+ // Test objectToString options for object field serialization
14424
+ ];
14375
14425
  case 3:
14376
14426
  _a.sent();
14377
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
14427
+ return [4 /*yield*/, sdk.api.endusers.createOne({
14428
+ fname: "Object",
14429
+ lname: "Test",
14430
+ fields: {
14431
+ objectField: { name: "John", age: 30 },
14432
+ stringField: "plain string",
14433
+ }
14434
+ })
14435
+ // Backwards compatibility: no options — object fields produce [object Object]
14436
+ ];
14378
14437
  case 4:
14438
+ enduserWithObjectField = _a.sent();
14439
+ // Backwards compatibility: no options — object fields produce [object Object]
14440
+ assert(replace_enduser_template_values('{{enduser.objectField}}', enduserWithObjectField) === '[object Object]', 'fail default object toString', 'default object toString');
14441
+ // String fields still work normally without options
14442
+ assert(replace_enduser_template_values('{{enduser.stringField}}', enduserWithObjectField) === 'plain string', 'fail default string field', 'default string field');
14443
+ // objectToString: 'json' — for structured body, headers, URL
14444
+ assert(replace_enduser_template_values('{{enduser.objectField}}', enduserWithObjectField, { objectToString: 'json' }) === '{"name":"John","age":30}', 'fail json object', 'json object');
14445
+ // String fields unaffected by json option
14446
+ assert(replace_enduser_template_values('{{enduser.stringField}}', enduserWithObjectField, { objectToString: 'json' }) === 'plain string', 'fail json string field', 'json string field');
14447
+ // Top-level string field unaffected by json option
14448
+ assert(replace_enduser_template_values('{{enduser.fname}}', enduserWithObjectField, { objectToString: 'json' }) === 'Object', 'fail json fname', 'json fname');
14449
+ rawTemplate = '{"data": "{{enduser.objectField}}"}';
14450
+ substituted = replace_enduser_template_values(rawTemplate, enduserWithObjectField, { objectToString: 'jsonEscaped' });
14451
+ parsed = JSON.parse(substituted);
14452
+ assert(parsed.data === '{"name":"John","age":30}', 'fail jsonEscaped round-trip', 'jsonEscaped round-trip');
14453
+ // String fields unaffected by jsonEscaped option
14454
+ assert(replace_enduser_template_values('{{enduser.stringField}}', enduserWithObjectField, { objectToString: 'jsonEscaped' }) === 'plain string', 'fail jsonEscaped string field', 'jsonEscaped string field');
14455
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserWithObjectField.id)];
14456
+ case 5:
14457
+ _a.sent();
14458
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
14459
+ case 6:
14379
14460
  _a.sent();
14380
14461
  return [2 /*return*/];
14381
14462
  }
@@ -15884,55 +15965,55 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
15884
15965
  return [4 /*yield*/, setup_tests(sdk, sdkNonAdmin)];
15885
15966
  case 16:
15886
15967
  _l.sent();
15887
- return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15968
+ return [4 /*yield*/, automation_trigger_tests()];
15888
15969
  case 17:
15889
15970
  _l.sent();
15890
- return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15971
+ return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15891
15972
  case 18:
15892
15973
  _l.sent();
15893
- return [4 /*yield*/, custom_dashboards_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15974
+ return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15894
15975
  case 19:
15895
15976
  _l.sent();
15896
- return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15977
+ return [4 /*yield*/, custom_dashboards_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15897
15978
  case 20:
15898
15979
  _l.sent();
15899
- return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15980
+ return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15900
15981
  case 21:
15901
15982
  _l.sent();
15902
- return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15983
+ return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15903
15984
  case 22:
15904
15985
  _l.sent();
15905
- return [4 /*yield*/, enduser_tests()];
15986
+ return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15906
15987
  case 23:
15907
15988
  _l.sent();
15908
- return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15989
+ return [4 /*yield*/, enduser_tests()];
15909
15990
  case 24:
15910
15991
  _l.sent();
15911
- return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15992
+ return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15912
15993
  case 25:
15913
15994
  _l.sent();
15914
- return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15995
+ return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15915
15996
  case 26:
15916
15997
  _l.sent();
15917
- return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15998
+ return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15918
15999
  case 27:
15919
16000
  _l.sent();
15920
- return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16001
+ return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15921
16002
  case 28:
15922
16003
  _l.sent();
15923
- return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16004
+ return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15924
16005
  case 29:
15925
16006
  _l.sent();
15926
- return [4 /*yield*/, inbox_threads_new_fields_tests()];
16007
+ return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15927
16008
  case 30:
15928
16009
  _l.sent();
15929
- return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16010
+ return [4 /*yield*/, inbox_threads_new_fields_tests()];
15930
16011
  case 31:
15931
16012
  _l.sent();
15932
- return [4 /*yield*/, threadKeyTests()];
16013
+ return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
15933
16014
  case 32:
15934
16015
  _l.sent();
15935
- return [4 /*yield*/, automation_trigger_tests()];
16016
+ return [4 /*yield*/, threadKeyTests()];
15936
16017
  case 33:
15937
16018
  _l.sent();
15938
16019
  return [4 /*yield*/, managed_content_enduser_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];