@tellescope/sdk 1.71.0 → 1.71.2

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.
@@ -60,7 +60,7 @@ import crypto from "crypto";
60
60
  import * as buffer from "buffer"; // only node >=15.7.0
61
61
  import { fieldsToValidationOld, mongoIdStringRequired, } from "@tellescope/validation";
62
62
  import { Session, EnduserSession } from "../sdk";
63
- import { weighted_round_robin } from "@tellescope/utilities";
63
+ import { FORM_LOGIC_CALCULATED_FIELDS, responses_satisfy_conditions, weighted_round_robin } from "@tellescope/utilities";
64
64
  import { DEFAULT_OPERATIONS, PLACEHOLDER_ID } from "@tellescope/constants";
65
65
  import { schema, } from "@tellescope/schema";
66
66
  import { assert, async_test, log_header, wait, } from "@tellescope/testing";
@@ -5851,23 +5851,33 @@ var pdf_generation = function () { return __awaiter(void 0, void 0, void 0, func
5851
5851
  });
5852
5852
  }); };
5853
5853
  var mfa_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5854
- var enduser;
5855
- return __generator(this, function (_a) {
5856
- switch (_a.label) {
5854
+ var enduser, _a, _b, e;
5855
+ return __generator(this, function (_c) {
5856
+ switch (_c.label) {
5857
5857
  case 0:
5858
5858
  log_header("MFA Tests");
5859
5859
  return [4 /*yield*/, sdkMfa.authenticate(mfaEmail, mfaPassword)];
5860
5860
  case 1:
5861
- _a.sent();
5861
+ _c.sent();
5862
5862
  return [4 /*yield*/, async_test("MFA must be handled before sdk works", function () { return sdkMfa.api.endusers.createOne({ fname: 'wont work' }); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
5863
5863
  case 2:
5864
- _a.sent();
5864
+ _c.sent();
5865
5865
  return [4 /*yield*/, sdkMfaApiKey.api.endusers.createOne({ fname: 'will work' })];
5866
5866
  case 3:
5867
- enduser = _a.sent();
5867
+ enduser = _c.sent();
5868
5868
  return [4 /*yield*/, async_test("API Key Auth does not require MFA", function () { return sdkMfaApiKey.api.endusers.deleteOne(enduser.id); }, passOnAnyResult)];
5869
5869
  case 4:
5870
- _a.sent();
5870
+ _c.sent();
5871
+ _b = (_a = sdkMfa).setAuthToken;
5872
+ return [4 /*yield*/, sdkMfaApiKey.api.users.generate_auth_token({ email: mfaEmail })];
5873
+ case 5:
5874
+ _b.apply(_a, [(_c.sent()).authToken]);
5875
+ return [4 /*yield*/, sdkMfa.api.endusers.createOne({ fname: 'will work' })];
5876
+ case 6:
5877
+ e = _c.sent();
5878
+ return [4 /*yield*/, async_test("API-key generated token does not require MFA", function () { return sdkMfa.api.endusers.deleteOne(e.id); }, passOnAnyResult)];
5879
+ case 7:
5880
+ _c.sent();
5871
5881
  return [2 /*return*/];
5872
5882
  }
5873
5883
  });
@@ -7014,13 +7024,14 @@ var test_weighted_round_robin = function () { return __awaiter(void 0, void 0, v
7014
7024
  });
7015
7025
  }); };
7016
7026
  var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7017
- var matchTag, dontMatchTag, matchEnduser, matchMultiTagEnduser, dontMatchEnduser, matchTicket, dontMatchTicket;
7027
+ var matchTag, dontMatchTag, ticketTitle, matchEnduser, matchMultiTagEnduser, dontMatchEnduser, matchTicket, dontMatchTicket;
7018
7028
  return __generator(this, function (_a) {
7019
7029
  switch (_a.label) {
7020
7030
  case 0:
7021
7031
  log_header("enduser_access_tags_tests");
7022
7032
  matchTag = 'Access';
7023
7033
  dontMatchTag = 'No Access';
7034
+ ticketTitle = 'ticket';
7024
7035
  return [4 /*yield*/, sdk.api.endusers.createOne({ accessTags: [matchTag] })];
7025
7036
  case 1:
7026
7037
  matchEnduser = _a.sent();
@@ -7030,10 +7041,10 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7030
7041
  return [4 /*yield*/, sdk.api.endusers.createOne({ accessTags: [dontMatchTag] })];
7031
7042
  case 3:
7032
7043
  dontMatchEnduser = _a.sent();
7033
- return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: matchEnduser.id, title: 'ticket' })];
7044
+ return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: matchEnduser.id, title: ticketTitle })];
7034
7045
  case 4:
7035
7046
  matchTicket = _a.sent();
7036
- return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: dontMatchEnduser.id, title: 'ticket' })
7047
+ return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: dontMatchEnduser.id, title: ticketTitle })
7037
7048
  // start with disabled setting an no tags on non-admin
7038
7049
  ];
7039
7050
  case 5:
@@ -7063,179 +7074,191 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7063
7074
  return [4 /*yield*/, async_test("Setting disabled, no tags, tickets", sdkNonAdmin.api.tickets.getSome, { onResult: function (r) { return r.length === 0; } })];
7064
7075
  case 12:
7065
7076
  _a.sent();
7066
- return [4 /*yield*/, async_test("Setting disabled, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7077
+ return [4 /*yield*/, async_test("Setting disabled, no tags, tickets search", function () { return sdkNonAdmin.api.tickets.getSome({ search: { query: ticketTitle } }); }, { onResult: function (r) { return r.length === 0; } })];
7067
7078
  case 13:
7068
7079
  _a.sent();
7069
- return [4 /*yield*/, async_test("Setting disabled, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7080
+ return [4 /*yield*/, async_test("Setting disabled, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7070
7081
  case 14:
7082
+ _a.sent();
7083
+ return [4 /*yield*/, async_test("Setting disabled, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7084
+ case 15:
7071
7085
  _a.sent();
7072
7086
  return [4 /*yield*/, async_test("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7073
7087
  onResult: function (r) { return r.length === 0; }
7074
7088
  })];
7075
- case 15:
7089
+ case 16:
7076
7090
  _a.sent();
7077
7091
  return [4 /*yield*/, async_test("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7078
7092
  onResult: function (r) { return r.length === 0; }
7079
7093
  })
7080
7094
  // enable setting, disable tags
7081
7095
  ];
7082
- case 16:
7096
+ case 17:
7083
7097
  _a.sent();
7084
7098
  // enable setting, disable tags
7085
7099
  return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7086
7100
  settings: { endusers: { enableAccessTags: true } }
7087
7101
  })];
7088
- case 17:
7102
+ case 18:
7089
7103
  // enable setting, disable tags
7090
7104
  _a.sent();
7091
7105
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7092
- case 18:
7106
+ case 19:
7093
7107
  _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7094
7108
  return [4 /*yield*/, async_test("enable setting, disable tags", sdkNonAdmin.api.endusers.getSome, { onResult: function (r) { return r.length === 0; } })];
7095
- case 19:
7109
+ case 20:
7096
7110
  _a.sent();
7097
7111
  return [4 /*yield*/, async_test("enable setting, matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, handleAnyError)];
7098
- case 20:
7112
+ case 21:
7099
7113
  _a.sent();
7100
7114
  return [4 /*yield*/, async_test("enable setting, dontMatchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7101
- case 21:
7115
+ case 22:
7102
7116
  _a.sent();
7103
7117
  return [4 /*yield*/, async_test("enable setting, no tags, tickets", sdkNonAdmin.api.tickets.getSome, { onResult: function (r) { return r.length === 0; } })];
7104
- case 22:
7118
+ case 23:
7119
+ _a.sent();
7120
+ return [4 /*yield*/, async_test("enable setting, no tags, tickets search", function () { return sdkNonAdmin.api.tickets.getSome({ search: { query: ticketTitle } }); }, { onResult: function (r) { return r.length === 0; } })];
7121
+ case 24:
7105
7122
  _a.sent();
7106
7123
  return [4 /*yield*/, async_test("enable setting, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7107
- case 23:
7124
+ case 25:
7108
7125
  _a.sent();
7109
7126
  return [4 /*yield*/, async_test("enable setting, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7110
- case 24:
7127
+ case 26:
7111
7128
  _a.sent();
7112
7129
  return [4 /*yield*/, async_test("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7113
7130
  onResult: function (r) { return r.length === 0; }
7114
7131
  })];
7115
- case 25:
7132
+ case 27:
7116
7133
  _a.sent();
7117
7134
  return [4 /*yield*/, async_test("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7118
7135
  onResult: function (r) { return r.length === 0; }
7119
7136
  })
7120
7137
  // disable setting, enable tags
7121
7138
  ];
7122
- case 26:
7139
+ case 28:
7123
7140
  _a.sent();
7124
7141
  // disable setting, enable tags
7125
7142
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: [matchTag] }, { replaceObjectFields: true })];
7126
- case 27:
7143
+ case 29:
7127
7144
  // disable setting, enable tags
7128
7145
  _a.sent();
7129
7146
  return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7130
7147
  settings: { endusers: { enableAccessTags: false } }
7131
7148
  })];
7132
- case 28:
7149
+ case 30:
7133
7150
  _a.sent();
7134
7151
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7135
- case 29:
7152
+ case 31:
7136
7153
  _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7137
7154
  return [4 /*yield*/, async_test("disable setting, enable tags", sdkNonAdmin.api.endusers.getSome, { onResult: function (r) { return r.length === 0; } })];
7138
- case 30:
7155
+ case 32:
7139
7156
  _a.sent();
7140
7157
  return [4 /*yield*/, async_test("disable setting, matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, handleAnyError)];
7141
- case 31:
7158
+ case 33:
7142
7159
  _a.sent();
7143
7160
  return [4 /*yield*/, async_test("disable setting, dontMatchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7144
- case 32:
7161
+ case 34:
7145
7162
  _a.sent();
7146
7163
  return [4 /*yield*/, async_test("disable setting, enable tags, tickets", sdkNonAdmin.api.tickets.getSome, { onResult: function (r) { return r.length === 0; } })];
7147
- case 33:
7164
+ case 35:
7165
+ _a.sent();
7166
+ return [4 /*yield*/, async_test("disable setting, no tags, tickets search", function () { return sdkNonAdmin.api.tickets.getSome({ search: { query: ticketTitle } }); }, { onResult: function (r) { return r.length === 0; } })];
7167
+ case 36:
7148
7168
  _a.sent();
7149
7169
  return [4 /*yield*/, async_test("disable setting, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7150
- case 34:
7170
+ case 37:
7151
7171
  _a.sent();
7152
7172
  return [4 /*yield*/, async_test("disable setting, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7153
- case 35:
7173
+ case 38:
7154
7174
  _a.sent();
7155
7175
  return [4 /*yield*/, async_test("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7156
7176
  onResult: function (r) { return r.length === 0; }
7157
7177
  })];
7158
- case 36:
7178
+ case 39:
7159
7179
  _a.sent();
7160
7180
  return [4 /*yield*/, async_test("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7161
7181
  onResult: function (r) { return r.length === 0; }
7162
7182
  })
7163
7183
  // enabled setting AND tags (keeps tags enabled)
7164
7184
  ];
7165
- case 37:
7185
+ case 40:
7166
7186
  _a.sent();
7167
7187
  // enabled setting AND tags (keeps tags enabled)
7168
7188
  return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7169
7189
  settings: { endusers: { enableAccessTags: true } }
7170
7190
  })];
7171
- case 38:
7191
+ case 41:
7172
7192
  // enabled setting AND tags (keeps tags enabled)
7173
7193
  _a.sent();
7174
7194
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7175
- case 39:
7195
+ case 42:
7176
7196
  _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7177
7197
  return [4 /*yield*/, async_test("Access by tag with setting works", sdkNonAdmin.api.endusers.getSome, {
7178
7198
  onResult: function (r) { return r.length === 2 && !r.find(function (e) { return e.id === dontMatchEnduser.id; }); }
7179
7199
  })];
7180
- case 40:
7200
+ case 43:
7181
7201
  _a.sent();
7182
7202
  return [4 /*yield*/, async_test("access matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, passOnAnyResult)];
7183
- case 41:
7203
+ case 44:
7184
7204
  _a.sent();
7185
7205
  return [4 /*yield*/, async_test("access dontMatchEnduser bad", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7186
- case 42:
7206
+ case 45:
7187
7207
  _a.sent();
7188
- return [4 /*yield*/, async_test("access setting, no tags, tickets", sdkNonAdmin.api.tickets.getSome, {
7208
+ return [4 /*yield*/, async_test("access setting, tickets", sdkNonAdmin.api.tickets.getSome, {
7189
7209
  onResult: function (r) { return r.length === 1 && !r.find(function (t) { return t.id === dontMatchTicket.id; }); }
7190
7210
  })];
7191
- case 43:
7211
+ case 46:
7212
+ _a.sent();
7213
+ return [4 /*yield*/, async_test("access setting tickets search", function () { return sdkNonAdmin.api.tickets.getSome({ search: { query: ticketTitle } }); }, { onResult: function (r) { return r.length === 1; } })];
7214
+ case 47:
7192
7215
  _a.sent();
7193
7216
  return [4 /*yield*/, async_test("access, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, passOnAnyResult)];
7194
- case 44:
7217
+ case 48:
7195
7218
  _a.sent();
7196
7219
  return [4 /*yield*/, async_test("access, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7197
- case 45:
7220
+ case 49:
7198
7221
  _a.sent();
7199
7222
  return [4 /*yield*/, async_test("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7200
7223
  onResult: function (r) { return r.length === 1; }
7201
7224
  })];
7202
- case 46:
7225
+ case 50:
7203
7226
  _a.sent();
7204
7227
  return [4 /*yield*/, async_test("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7205
7228
  onResult: function (r) { return r.length === 0; }
7206
7229
  })];
7207
- case 47:
7230
+ case 51:
7208
7231
  _a.sent();
7209
7232
  return [4 /*yield*/, async_test("Non-admin can't update tags", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['new tag'] }); }, handleAnyError)];
7210
- case 48:
7233
+ case 52:
7211
7234
  _a.sent();
7212
7235
  return [4 /*yield*/, async_test("Non-admin can't update tags (with other updates)", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['new tag'], bio: '' }); }, handleAnyError)];
7213
- case 49:
7236
+ case 53:
7214
7237
  _a.sent();
7215
7238
  return [4 /*yield*/, async_test("Non-admin can update other fields", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { bio: '' }); }, passOnAnyResult)
7216
7239
  // cleanup
7217
7240
  ];
7218
- case 50:
7241
+ case 54:
7219
7242
  _a.sent();
7220
7243
  // cleanup
7221
7244
  return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7222
7245
  settings: { endusers: { enableAccessTags: false } }
7223
7246
  })];
7224
- case 51:
7247
+ case 55:
7225
7248
  // cleanup
7226
7249
  _a.sent();
7227
7250
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: [] }, { replaceObjectFields: true })];
7228
- case 52:
7251
+ case 56:
7229
7252
  _a.sent();
7230
7253
  return [4 /*yield*/, sdkNonAdmin.refresh_session()];
7231
- case 53:
7254
+ case 57:
7232
7255
  _a.sent();
7233
7256
  return [4 /*yield*/, Promise.all([
7234
7257
  sdk.api.endusers.deleteOne(matchEnduser.id),
7235
7258
  sdk.api.endusers.deleteOne(matchMultiTagEnduser.id),
7236
7259
  sdk.api.endusers.deleteOne(dontMatchEnduser.id),
7237
7260
  ])];
7238
- case 54:
7261
+ case 58:
7239
7262
  _a.sent();
7240
7263
  return [2 /*return*/];
7241
7264
  }
@@ -7318,6 +7341,74 @@ var marketing_email_unsubscribe_tests = function () { return __awaiter(void 0, v
7318
7341
  }
7319
7342
  });
7320
7343
  }); };
7344
+ export var form_conditional_logic_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7345
+ var responses, i, run_conditional_form_test;
7346
+ var _a, _b, _c;
7347
+ return __generator(this, function (_d) {
7348
+ log_header("Form Conditional Logic Tests");
7349
+ responses = [
7350
+ {
7351
+ fieldId: "0",
7352
+ answer: { type: 'string', value: 'hello' },
7353
+ fieldTitle: '',
7354
+ },
7355
+ {
7356
+ fieldId: "0list",
7357
+ answer: { type: 'multiple_choice', value: ['hello'] },
7358
+ fieldTitle: '',
7359
+ },
7360
+ {
7361
+ fieldId: "1",
7362
+ answer: { type: 'string', value: '' },
7363
+ fieldTitle: '',
7364
+ },
7365
+ {
7366
+ fieldId: "2",
7367
+ answer: { type: 'multiple_choice', value: [''] },
7368
+ fieldTitle: '',
7369
+ },
7370
+ {
7371
+ fieldId: "3",
7372
+ answer: { type: 'number', value: 73 },
7373
+ fieldTitle: '',
7374
+ computedValueKey: 'Height',
7375
+ },
7376
+ {
7377
+ fieldId: "4",
7378
+ answer: { type: 'number', value: 190 },
7379
+ fieldTitle: '',
7380
+ computedValueKey: 'Weight',
7381
+ },
7382
+ ];
7383
+ i = 0;
7384
+ run_conditional_form_test = function (conditions, expected, title) {
7385
+ if (title === void 0) { title = "Test ".concat(++i); }
7386
+ assert(responses_satisfy_conditions(responses, conditions) === expected, "Failed condition:\n".concat(JSON.stringify(conditions, null, 2)), title);
7387
+ };
7388
+ run_conditional_form_test({ $and: [{ condition: { '0': { $contains: 'hel' } } }] }, true);
7389
+ run_conditional_form_test({ $and: [{ condition: { '0': { $contains: 'hello' } } }] }, true);
7390
+ run_conditional_form_test({ $and: [{ condition: { '0': { $contains: 'hllo' } } }] }, false);
7391
+ run_conditional_form_test({ $and: [{ condition: { '0list': { $contains: 'hel' } } }] }, true);
7392
+ run_conditional_form_test({ $and: [{ condition: { '0list': { $contains: 'hello' } } }] }, true);
7393
+ run_conditional_form_test({ $and: [{ condition: { '0list': { $contains: 'hllo' } } }] }, false);
7394
+ run_conditional_form_test({ $and: [{ condition: { '1': '' } }] }, true);
7395
+ run_conditional_form_test({ $and: [{ condition: { '1': { $exists: true } } }] }, false);
7396
+ run_conditional_form_test({ $and: [{ condition: { '1': { $exists: false } } }] }, true);
7397
+ run_conditional_form_test({ $and: [{ condition: { '2': '' } }] }, true);
7398
+ run_conditional_form_test({ $and: [{ condition: { '2': { $exists: true } } }] }, true);
7399
+ run_conditional_form_test({ $and: [{ condition: { '2': { $exists: false } } }] }, false);
7400
+ run_conditional_form_test({ $and: [{ condition: { '3': { $gt: 72 } } }] }, true);
7401
+ run_conditional_form_test({ $and: [{ condition: { '3': { $gt: 73 } } }] }, false);
7402
+ run_conditional_form_test({ $and: [{ condition: { '3': { $gt: 74 } } }] }, false);
7403
+ run_conditional_form_test({ $and: [{ condition: { '3': { $lt: 72 } } }] }, false);
7404
+ run_conditional_form_test({ $and: [{ condition: { '3': { $lt: 73 } } }] }, false);
7405
+ run_conditional_form_test({ $and: [{ condition: { '3': { $lt: 74 } } }] }, true);
7406
+ run_conditional_form_test({ $and: [{ condition: (_a = {}, _a[FORM_LOGIC_CALCULATED_FIELDS[0]] = { $exists: true }, _a) }] }, true);
7407
+ run_conditional_form_test({ $and: [{ condition: (_b = {}, _b[FORM_LOGIC_CALCULATED_FIELDS[0]] = { $gt: 25 }, _b) }] }, true);
7408
+ run_conditional_form_test({ $and: [{ condition: (_c = {}, _c[FORM_LOGIC_CALCULATED_FIELDS[0]] = { $lt: 25 }, _c) }] }, false);
7409
+ return [2 /*return*/];
7410
+ });
7411
+ }); };
7321
7412
  (function () { return __awaiter(void 0, void 0, void 0, function () {
7322
7413
  var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
7323
7414
  var _h, _j;
@@ -7331,6 +7422,7 @@ var marketing_email_unsubscribe_tests = function () { return __awaiter(void 0, v
7331
7422
  _k.label = 2;
7332
7423
  case 2:
7333
7424
  _k.trys.push([2, 43, , 44]);
7425
+ form_conditional_logic_tests();
7334
7426
  return [4 /*yield*/, test_weighted_round_robin()];
7335
7427
  case 3:
7336
7428
  _k.sent();
@@ -7367,13 +7459,13 @@ var marketing_email_unsubscribe_tests = function () { return __awaiter(void 0, v
7367
7459
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
7368
7460
  case 10:
7369
7461
  _k.sent(); // should come right after setup tests
7370
- return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7462
+ return [4 /*yield*/, enduser_access_tags_tests()];
7371
7463
  case 11:
7372
7464
  _k.sent();
7373
- return [4 /*yield*/, unique_strings_tests()];
7465
+ return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7374
7466
  case 12:
7375
7467
  _k.sent();
7376
- return [4 /*yield*/, enduser_access_tags_tests()];
7468
+ return [4 /*yield*/, unique_strings_tests()];
7377
7469
  case 13:
7378
7470
  _k.sent();
7379
7471
  return [4 /*yield*/, self_serve_appointment_booking_tests()];