@tellescope/sdk 1.2.0 → 1.2.1

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.
@@ -1639,7 +1639,7 @@ var calendar_events_tests = function () { return __awaiter(void 0, void 0, void
1639
1639
  });
1640
1640
  }); };
1641
1641
  var formEventTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1642
- var enduser, journey, form, triggerStep, acNoStep, acStep;
1642
+ var enduser, journey, form, field, triggerStep, acNoStep, acStep, testResponse, formResponse;
1643
1643
  return __generator(this, function (_a) {
1644
1644
  switch (_a.label) {
1645
1645
  case 0:
@@ -1652,10 +1652,17 @@ var formEventTests = function () { return __awaiter(void 0, void 0, void 0, func
1652
1652
  journey = _a.sent();
1653
1653
  return [4 /*yield*/, sdk.api.forms.createOne({
1654
1654
  title: 'test form',
1655
- fields: [{ title: 'question', type: 'string' }],
1656
1655
  })];
1657
1656
  case 3:
1658
1657
  form = _a.sent();
1658
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
1659
+ formId: form.id,
1660
+ title: 'question',
1661
+ type: 'string',
1662
+ previousFields: [{ type: 'root', info: {} }]
1663
+ })];
1664
+ case 4:
1665
+ field = _a.sent();
1659
1666
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
1660
1667
  journeyId: journey.id,
1661
1668
  event: { type: 'onJourneyStart', info: {} },
@@ -1666,7 +1673,7 @@ var formEventTests = function () { return __awaiter(void 0, void 0, void 0, func
1666
1673
  info: { status: 'placeholder' },
1667
1674
  },
1668
1675
  })];
1669
- case 4:
1676
+ case 5:
1670
1677
  triggerStep = _a.sent();
1671
1678
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
1672
1679
  journeyId: journey.id,
@@ -1679,32 +1686,41 @@ var formEventTests = function () { return __awaiter(void 0, void 0, void 0, func
1679
1686
  info: { status: 'placeholder' },
1680
1687
  },
1681
1688
  })];
1682
- case 5:
1689
+ case 6:
1683
1690
  _a.sent();
1684
1691
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1685
- case 6:
1692
+ case 7:
1686
1693
  acNoStep = (_a.sent()).accessCode;
1687
1694
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1688
- case 7:
1689
- acStep = (_a.sent()).accessCode;
1690
- return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: acNoStep, responses: ['answer'] })];
1691
1695
  case 8:
1692
- _a.sent();
1693
- return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: acStep, automationStepId: triggerStep.id, responses: ['answer'] })];
1696
+ acStep = (_a.sent()).accessCode;
1697
+ testResponse = {
1698
+ answer: {
1699
+ type: 'string',
1700
+ value: 'answer'
1701
+ },
1702
+ fieldId: field.id,
1703
+ fieldTitle: field.title,
1704
+ };
1705
+ return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: acNoStep, responses: [testResponse] })];
1694
1706
  case 9:
1707
+ formResponse = (_a.sent()).formResponse;
1708
+ (0, testing_1.assert)((0, utilities_1.objects_equivalent)(formResponse.responses, [testResponse]), 'bad form resonse returned', 'form response returned correctly');
1709
+ return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: acStep, automationStepId: triggerStep.id, responses: [testResponse] })];
1710
+ case 10:
1695
1711
  _a.sent();
1696
1712
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)]; // allow background creation with generous pause
1697
- case 10:
1713
+ case 11:
1698
1714
  _a.sent(); // allow background creation with generous pause
1699
1715
  return [4 /*yield*/, (0, testing_1.async_test)("Without automation stepId, form response handler is not triggered", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (steps) { return steps.length === 1; } /* NOT 2 or more */ })];
1700
- case 11:
1716
+ case 12:
1701
1717
  _a.sent();
1702
1718
  return [4 /*yield*/, Promise.all([
1703
1719
  sdk.api.forms.deleteOne(form.id),
1704
1720
  sdk.api.journeys.deleteOne(journey.id),
1705
1721
  sdk.api.endusers.deleteOne(enduser.id)
1706
1722
  ])];
1707
- case 12:
1723
+ case 13:
1708
1724
  _a.sent();
1709
1725
  return [2 /*return*/];
1710
1726
  }
@@ -1870,6 +1886,98 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
1870
1886
  }
1871
1887
  });
1872
1888
  }); };
1889
+ var removeFromJourneyTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1890
+ var journey, journey2, enduser, enduser2, step, step2, createAction, numberOfActions, i;
1891
+ var _a;
1892
+ return __generator(this, function (_b) {
1893
+ switch (_b.label) {
1894
+ case 0:
1895
+ (0, testing_1.log_header)("Remove from Journey");
1896
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey' })];
1897
+ case 1:
1898
+ journey = _b.sent();
1899
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'other journey' })];
1900
+ case 2:
1901
+ journey2 = _b.sent();
1902
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'test@tellescope.com' })];
1903
+ case 3:
1904
+ enduser = _b.sent();
1905
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'test2@tellescope.com' })];
1906
+ case 4:
1907
+ enduser2 = _b.sent();
1908
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: (_a = {}, _a[journey.id] = 'Added', _a[journey2.id] = 'Added2', _a) })];
1909
+ case 5:
1910
+ _b.sent();
1911
+ return [4 /*yield*/, (sdk.api.automation_steps.createOne({
1912
+ journeyId: journey.id,
1913
+ event: { type: 'onJourneyStart', info: {} },
1914
+ action: { type: 'setEnduserStatus', info: { status: 'Root' }, },
1915
+ }))];
1916
+ case 6:
1917
+ step = _b.sent();
1918
+ return [4 /*yield*/, (sdk.api.automation_steps.createOne({
1919
+ journeyId: journey2.id,
1920
+ event: { type: 'onJourneyStart', info: {} },
1921
+ action: { type: 'setEnduserStatus', info: { status: 'Root' }, },
1922
+ }))];
1923
+ case 7:
1924
+ step2 = _b.sent();
1925
+ createAction = function (journeyId, step, enduserId) { return (sdk.api.automated_actions.createOne({
1926
+ journeyId: journeyId,
1927
+ automationStepId: step.id,
1928
+ cancelConditions: [],
1929
+ enduserId: enduserId !== null && enduserId !== void 0 ? enduserId : enduser.id,
1930
+ processAfter: Date.now() + 1000000,
1931
+ status: 'active',
1932
+ event: { type: 'onJourneyStart', info: {} },
1933
+ action: { type: 'setEnduserStatus', info: { status: 'Test Status' }, },
1934
+ })); };
1935
+ numberOfActions = 4;
1936
+ i = 0;
1937
+ _b.label = 8;
1938
+ case 8:
1939
+ if (!(i < numberOfActions)) return [3 /*break*/, 13];
1940
+ return [4 /*yield*/, createAction(journey.id, step)];
1941
+ case 9:
1942
+ _b.sent();
1943
+ return [4 /*yield*/, createAction(journey2.id, step2)];
1944
+ case 10:
1945
+ _b.sent();
1946
+ return [4 /*yield*/, createAction(journey.id, step, enduser2.id)];
1947
+ case 11:
1948
+ _b.sent();
1949
+ _b.label = 12;
1950
+ case 12:
1951
+ i++;
1952
+ return [3 /*break*/, 8];
1953
+ case 13:
1954
+ // remove from journey, should set all statuses to cancelled
1955
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: {} }, { replaceObjectFields: true })];
1956
+ case 14:
1957
+ // remove from journey, should set all statuses to cancelled
1958
+ _b.sent();
1959
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
1960
+ case 15:
1961
+ _b.sent();
1962
+ return [4 /*yield*/, (0, testing_1.async_test)("Automated actions for handle ticket created", function () { return sdk.api.automated_actions.getSome(); }, { onResult: (function (actions) { return (
1963
+ // enduser removed from multiple journeys
1964
+ actions.filter(function (a) { return a.status === 'cancelled'; }).length === numberOfActions * 2
1965
+ // other enduser is unaffected
1966
+ && actions.filter(function (a) { return a.status === 'active'; }).length === numberOfActions); }) })];
1967
+ case 16:
1968
+ _b.sent();
1969
+ return [4 /*yield*/, Promise.all([
1970
+ sdk.api.journeys.deleteOne(journey.id),
1971
+ sdk.api.journeys.deleteOne(journey2.id),
1972
+ sdk.api.endusers.deleteOne(enduser.id),
1973
+ sdk.api.endusers.deleteOne(enduser2.id),
1974
+ ])];
1975
+ case 17:
1976
+ _b.sent();
1977
+ return [2 /*return*/];
1978
+ }
1979
+ });
1980
+ }); };
1873
1981
  var automation_events_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1874
1982
  return __generator(this, function (_a) {
1875
1983
  switch (_a.label) {
@@ -1880,13 +1988,16 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
1880
1988
  _a.sent();
1881
1989
  return [4 /*yield*/, ticketEventTests()];
1882
1990
  case 2:
1991
+ _a.sent();
1992
+ return [4 /*yield*/, removeFromJourneyTests()];
1993
+ case 3:
1883
1994
  _a.sent();
1884
1995
  return [2 /*return*/];
1885
1996
  }
1886
1997
  });
1887
1998
  }); };
1888
1999
  var form_response_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1889
- var stringResponse, stringIntakeField, stringTitle, enduser, form, accessCode, enduserWithUpdate, recordedResponse;
2000
+ var stringResponse, stringIntakeField, stringTitle, enduser, form, field, field2, accessCode, enduserWithUpdate, recordedResponse;
1890
2001
  var _a, _b, _c;
1891
2002
  return __generator(this, function (_d) {
1892
2003
  switch (_d.label) {
@@ -1900,45 +2011,85 @@ var form_response_tests = function () { return __awaiter(void 0, void 0, void 0,
1900
2011
  enduser = _d.sent();
1901
2012
  return [4 /*yield*/, sdk.api.forms.createOne({
1902
2013
  title: 'test form',
1903
- fields: [{
1904
- title: stringTitle,
1905
- description: 'Enter a string',
1906
- type: 'string',
1907
- isOptional: false,
1908
- intakeField: stringIntakeField
1909
- }]
1910
- })
2014
+ })];
2015
+ case 2:
2016
+ form = _d.sent();
2017
+ (0, testing_1.assert)(form.numFields === 0, 'numFields bad init', 'num fields on init');
2018
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
2019
+ formId: form.id,
2020
+ title: stringTitle,
2021
+ description: 'Enter a string',
2022
+ type: 'string',
2023
+ isOptional: false,
2024
+ intakeField: stringIntakeField,
2025
+ previousFields: [{ type: 'root', info: {} }]
2026
+ })];
2027
+ case 3:
2028
+ field = _d.sent();
2029
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
2030
+ formId: form.id,
2031
+ title: stringTitle,
2032
+ description: 'Enter a string',
2033
+ type: 'string',
2034
+ isOptional: false,
2035
+ intakeField: stringIntakeField,
2036
+ previousFields: [{ type: 'root', info: {} }]
2037
+ })];
2038
+ case 4:
2039
+ field2 = _d.sent();
2040
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
2041
+ case 5:
2042
+ _d.sent();
2043
+ return [4 /*yield*/, (0, testing_1.async_test)("numFields incremented on new field", function () { return sdk.api.forms.getOne(form.id); }, { onResult: function (f) { return f.numFields === 2; } })];
2044
+ case 6:
2045
+ _d.sent();
2046
+ return [4 /*yield*/, sdk.api.form_fields.deleteOne(field2.id)];
2047
+ case 7:
2048
+ _d.sent();
2049
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
2050
+ case 8:
2051
+ _d.sent();
2052
+ return [4 /*yield*/, (0, testing_1.async_test)("numFields decremented after delete", function () { return sdk.api.forms.getOne(form.id); }, { onResult: function (f) { return f.numFields === 1; } })
1911
2053
  // await sdk.api.automation_steps.createOne({
1912
2054
  // event: { type: "formResponse", info: { formId: form.id } },
1913
2055
  // action: { type: 'sendWebhook', info: { message: 'test' } },
1914
2056
  // })
1915
2057
  ];
1916
- case 2:
1917
- form = _d.sent();
2058
+ case 9:
2059
+ _d.sent();
1918
2060
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1919
- case 3:
2061
+ case 10:
1920
2062
  accessCode = (_d.sent()).accessCode;
1921
- return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: accessCode, responses: [stringResponse] })
2063
+ return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: accessCode, responses: [
2064
+ {
2065
+ fieldTitle: 'doesnot matter',
2066
+ fieldId: field.id,
2067
+ answer: {
2068
+ type: 'string',
2069
+ value: stringResponse,
2070
+ },
2071
+ }
2072
+ ] })
1922
2073
  // const [triggeredAutomation] = await sdk.api.automated_actions.getSome()
1923
2074
  ];
1924
- case 4:
2075
+ case 11:
1925
2076
  _d.sent();
1926
2077
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1927
- case 5:
2078
+ case 12:
1928
2079
  enduserWithUpdate = _d.sent();
1929
2080
  return [4 /*yield*/, sdk.api.form_responses.getOne({ accessCode: accessCode })
1930
2081
  // assert(triggeredAutomation?.event?.type === 'formResponse', 'no form response event', 'form response event triggered')
1931
2082
  ];
1932
- case 6:
2083
+ case 13:
1933
2084
  recordedResponse = _d.sent();
1934
2085
  // assert(triggeredAutomation?.event?.type === 'formResponse', 'no form response event', 'form response event triggered')
1935
2086
  (0, testing_1.assert)(((_a = enduserWithUpdate === null || enduserWithUpdate === void 0 ? void 0 : enduserWithUpdate.fields) === null || _a === void 0 ? void 0 : _a[stringIntakeField]) === stringResponse, 'no enduser update', 'enduser updated');
1936
- (0, testing_1.assert)(((_b = recordedResponse === null || recordedResponse === void 0 ? void 0 : recordedResponse.responses) === null || _b === void 0 ? void 0 : _b.length) === 1 && ((_c = recordedResponse.responses[0]) === null || _c === void 0 ? void 0 : _c[stringTitle]) === stringResponse, 'response not recorded', 'response recorded');
2087
+ (0, testing_1.assert)(((_b = recordedResponse === null || recordedResponse === void 0 ? void 0 : recordedResponse.responses) === null || _b === void 0 ? void 0 : _b.length) === 1 && ((_c = recordedResponse.responses[0]) === null || _c === void 0 ? void 0 : _c.answer.value) === stringResponse, 'response not recorded', 'response recorded');
1937
2088
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1938
- case 7:
2089
+ case 14:
1939
2090
  _d.sent();
1940
2091
  return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
1941
- case 8:
2092
+ case 15:
1942
2093
  _d.sent();
1943
2094
  return [2 /*return*/];
1944
2095
  }
@@ -2481,6 +2632,7 @@ var tests = {
2481
2632
  meetings: exports.meetings_tests,
2482
2633
  notes: NO_TEST,
2483
2634
  forms: NO_TEST,
2635
+ form_fields: NO_TEST,
2484
2636
  form_responses: form_response_tests,
2485
2637
  calendar_events: calendar_events_tests,
2486
2638
  webhooks: NO_TEST,
@@ -2496,6 +2648,7 @@ var tests = {
2496
2648
  managed_content_records: NO_TEST,
2497
2649
  post_comments: NO_TEST,
2498
2650
  post_likes: NO_TEST,
2651
+ organizations: NO_TEST,
2499
2652
  };
2500
2653
  (function () { return __awaiter(void 0, void 0, void 0, function () {
2501
2654
  var err_1, n, _a, _b, _i, returnValidation, t, _c, _d, _e, err_2;
@@ -2553,7 +2706,12 @@ var tests = {
2553
2706
  case 15:
2554
2707
  err_1 = _h.sent();
2555
2708
  console.error("Failed during custom test");
2556
- console.error(err_1);
2709
+ if (err_1.message && err_1.info) {
2710
+ console.error(err_1.message, JSON.stringify(err_1.info, null, 2));
2711
+ }
2712
+ else {
2713
+ console.error(err_1);
2714
+ }
2557
2715
  process.exit(1);
2558
2716
  return [3 /*break*/, 16];
2559
2717
  case 16: