@tellescope/sdk 1.1.4 → 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.
@@ -1638,15 +1638,366 @@ var calendar_events_tests = function () { return __awaiter(void 0, void 0, void
1638
1638
  }
1639
1639
  });
1640
1640
  }); };
1641
+ var formEventTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1642
+ var enduser, journey, form, field, triggerStep, acNoStep, acStep, testResponse, formResponse;
1643
+ return __generator(this, function (_a) {
1644
+ switch (_a.label) {
1645
+ case 0:
1646
+ (0, testing_1.log_header)("Form Events");
1647
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deletemeee@tellescope.com' })];
1648
+ case 1:
1649
+ enduser = _a.sent();
1650
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey ' })];
1651
+ case 2:
1652
+ journey = _a.sent();
1653
+ return [4 /*yield*/, sdk.api.forms.createOne({
1654
+ title: 'test form',
1655
+ })];
1656
+ case 3:
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();
1666
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
1667
+ journeyId: journey.id,
1668
+ event: { type: 'onJourneyStart', info: {} },
1669
+ // in practice, this would send a form, so that the next step(s) could handle the response
1670
+ // but we don't want to send emails in testing, and can still attach this Id to a form response to test a trigger
1671
+ action: {
1672
+ type: 'setEnduserStatus',
1673
+ info: { status: 'placeholder' },
1674
+ },
1675
+ })];
1676
+ case 5:
1677
+ triggerStep = _a.sent();
1678
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
1679
+ journeyId: journey.id,
1680
+ event: {
1681
+ type: 'formResponse',
1682
+ info: { automationStepId: triggerStep.id }
1683
+ },
1684
+ action: {
1685
+ type: 'setEnduserStatus',
1686
+ info: { status: 'placeholder' },
1687
+ },
1688
+ })];
1689
+ case 6:
1690
+ _a.sent();
1691
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1692
+ case 7:
1693
+ acNoStep = (_a.sent()).accessCode;
1694
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1695
+ case 8:
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] })];
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:
1711
+ _a.sent();
1712
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)]; // allow background creation with generous pause
1713
+ case 11:
1714
+ _a.sent(); // allow background creation with generous pause
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 */ })];
1716
+ case 12:
1717
+ _a.sent();
1718
+ return [4 /*yield*/, Promise.all([
1719
+ sdk.api.forms.deleteOne(form.id),
1720
+ sdk.api.journeys.deleteOne(journey.id),
1721
+ sdk.api.endusers.deleteOne(enduser.id)
1722
+ ])];
1723
+ case 13:
1724
+ _a.sent();
1725
+ return [2 /*return*/];
1726
+ }
1727
+ });
1728
+ }); };
1729
+ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1730
+ var testCloseReasons, enduser, enduserWithTeam, journey, nullJourney, root, nullRoot, createStep, ticket, ticketNull;
1731
+ var _a, _b;
1732
+ return __generator(this, function (_c) {
1733
+ switch (_c.label) {
1734
+ case 0:
1735
+ (0, testing_1.log_header)("Ticket Events");
1736
+ testCloseReasons = ['Yes', 'No', 'Maybe'];
1737
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deletemeee@tellescope.com' })];
1738
+ case 1:
1739
+ enduser = _c.sent();
1740
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deleteme2@tellescope.com', assignedTo: [sdkNonAdmin.userInfo.id] })];
1741
+ case 2:
1742
+ enduserWithTeam = _c.sent();
1743
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey with completion options' })];
1744
+ case 3:
1745
+ journey = _c.sent();
1746
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey null' })];
1747
+ case 4:
1748
+ nullJourney = _c.sent();
1749
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
1750
+ journeyId: journey.id,
1751
+ event: { type: 'onJourneyStart', info: {} },
1752
+ action: {
1753
+ type: 'createTicket',
1754
+ info: {
1755
+ title: 'close reasons tests',
1756
+ assignmentStrategy: {
1757
+ type: 'care-team-random',
1758
+ info: {},
1759
+ },
1760
+ closeReasons: testCloseReasons,
1761
+ defaultAssignee: sdk.userInfo.id,
1762
+ },
1763
+ },
1764
+ })];
1765
+ case 5:
1766
+ root = _c.sent();
1767
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
1768
+ journeyId: nullJourney.id,
1769
+ event: { type: 'onJourneyStart', info: {} },
1770
+ action: {
1771
+ type: 'createTicket',
1772
+ info: {
1773
+ title: 'null test',
1774
+ assignmentStrategy: {
1775
+ type: 'care-team-random',
1776
+ info: {},
1777
+ },
1778
+ closeReasons: [],
1779
+ defaultAssignee: sdk.userInfo.id,
1780
+ },
1781
+ },
1782
+ })];
1783
+ case 6:
1784
+ nullRoot = _c.sent();
1785
+ createStep = function (journeyId, automationStepId, closedForReason) { return (sdk.api.automation_steps.createOne({
1786
+ journeyId: journeyId,
1787
+ event: { type: 'ticketCompleted', info: { automationStepId: automationStepId, closedForReason: closedForReason, } },
1788
+ action: { type: 'setEnduserStatus', info: { status: closedForReason !== null && closedForReason !== void 0 ? closedForReason : 'Null' }, },
1789
+ })); };
1790
+ return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id)];
1791
+ case 7:
1792
+ _c.sent();
1793
+ return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id, testCloseReasons[0])];
1794
+ case 8:
1795
+ _c.sent();
1796
+ return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id, testCloseReasons[1])];
1797
+ case 9:
1798
+ _c.sent();
1799
+ return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id, testCloseReasons[2])];
1800
+ case 10:
1801
+ _c.sent();
1802
+ return [4 /*yield*/, createStep(journey.id, root.id)];
1803
+ case 11:
1804
+ _c.sent();
1805
+ return [4 /*yield*/, createStep(journey.id, root.id, testCloseReasons[0])];
1806
+ case 12:
1807
+ _c.sent();
1808
+ return [4 /*yield*/, createStep(journey.id, root.id, testCloseReasons[1])];
1809
+ case 13:
1810
+ _c.sent();
1811
+ return [4 /*yield*/, createStep(journey.id, root.id, testCloseReasons[2])];
1812
+ case 14:
1813
+ _c.sent();
1814
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: (_a = {}, _a[journey.id] = 'Added', _a) })];
1815
+ case 15:
1816
+ _c.sent();
1817
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduserWithTeam.id, { journeys: (_b = {}, _b[nullJourney.id] = 'Added (Null)', _b) })];
1818
+ case 16:
1819
+ _c.sent();
1820
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 2000)]; // wait for tickets to be automatically created
1821
+ case 17:
1822
+ _c.sent(); // wait for tickets to be automatically created
1823
+ return [4 /*yield*/, (0, testing_1.async_test)("Tickets automatically created", function () { return sdk.api.tickets.getSome(); }, { onResult: function (tickets) { return (tickets === null || tickets === void 0 ? void 0 : tickets.length) === 2; } })];
1824
+ case 18:
1825
+ _c.sent();
1826
+ return [4 /*yield*/, (0, testing_1.async_test)("Ticket for enduser, default assignment, testCloseReasons", function () { return sdk.api.tickets.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (tickets) {
1827
+ var _a;
1828
+ return (tickets.length === 1
1829
+ && ((_a = tickets[0].closeReasons) === null || _a === void 0 ? void 0 : _a.length) === 3
1830
+ && tickets[0].owner === sdk.userInfo.id);
1831
+ } })];
1832
+ case 19:
1833
+ _c.sent();
1834
+ return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduser.id })];
1835
+ case 20:
1836
+ ticket = _c.sent();
1837
+ return [4 /*yield*/, (0, testing_1.async_test)("Ticket for enduser, care team assignment, no reasons", function () { return sdk.api.tickets.getSome({ filter: { enduserId: enduserWithTeam.id } }); }, { onResult: function (tickets) {
1838
+ var _a;
1839
+ return tickets.length === 1
1840
+ && ((_a = tickets[0].closeReasons) === null || _a === void 0 ? void 0 : _a.length) === 0
1841
+ && tickets[0].owner === sdkNonAdmin.userInfo.id;
1842
+ }
1843
+ })];
1844
+ case 21:
1845
+ _c.sent();
1846
+ return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduserWithTeam.id })];
1847
+ case 22:
1848
+ ticketNull = _c.sent();
1849
+ return [4 /*yield*/, sdk.api.tickets.updateOne(ticket.id, { closedForReason: 'Maybe', closedAt: new Date() })];
1850
+ case 23:
1851
+ _c.sent();
1852
+ return [4 /*yield*/, sdk.api.tickets.updateOne(ticketNull.id, { closedAt: new Date() })];
1853
+ case 24:
1854
+ _c.sent();
1855
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)]; // wait for actions to be automatically created
1856
+ case 25:
1857
+ _c.sent(); // wait for actions to be automatically created
1858
+ 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 (actions === null || actions === void 0 ? void 0 : actions.length) === 4 // ticket creations + ticket completions = 2 + 2
1859
+ && (!!actions.find(function (a) {
1860
+ return a.event.type === 'ticketCompleted'
1861
+ && a.enduserId === enduser.id
1862
+ && a.action.type === 'setEnduserStatus'
1863
+ && a.action.info.status === 'Maybe';
1864
+ } // maybe branch
1865
+ ))
1866
+ && (!!actions.find(function (a) {
1867
+ return a.event.type === 'ticketCompleted'
1868
+ && a.enduserId === enduserWithTeam.id
1869
+ && a.action.type === 'setEnduserStatus'
1870
+ && a.action.info.status === 'Null';
1871
+ } // null branch when completed without closedForReason
1872
+ )); }) })];
1873
+ case 26:
1874
+ _c.sent();
1875
+ return [4 /*yield*/, Promise.all([
1876
+ sdk.api.journeys.deleteOne(journey.id),
1877
+ sdk.api.journeys.deleteOne(nullJourney.id),
1878
+ sdk.api.endusers.deleteOne(enduser.id),
1879
+ sdk.api.endusers.deleteOne(enduserWithTeam.id),
1880
+ sdk.api.tickets.deleteOne(ticket.id),
1881
+ sdk.api.tickets.deleteOne(ticketNull.id),
1882
+ ])];
1883
+ case 27:
1884
+ _c.sent();
1885
+ return [2 /*return*/];
1886
+ }
1887
+ });
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
+ }); };
1641
1981
  var automation_events_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1642
1982
  return __generator(this, function (_a) {
1643
- (0, testing_1.log_header)("Automation Events");
1644
- console.warn("Need new test coverage for automation stemps");
1645
- return [2 /*return*/];
1983
+ switch (_a.label) {
1984
+ case 0:
1985
+ (0, testing_1.log_header)("Automation Events");
1986
+ return [4 /*yield*/, formEventTests()];
1987
+ case 1:
1988
+ _a.sent();
1989
+ return [4 /*yield*/, ticketEventTests()];
1990
+ case 2:
1991
+ _a.sent();
1992
+ return [4 /*yield*/, removeFromJourneyTests()];
1993
+ case 3:
1994
+ _a.sent();
1995
+ return [2 /*return*/];
1996
+ }
1646
1997
  });
1647
1998
  }); };
1648
1999
  var form_response_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1649
- var stringResponse, stringIntakeField, stringTitle, enduser, form, accessCode, enduserWithUpdate, recordedResponse;
2000
+ var stringResponse, stringIntakeField, stringTitle, enduser, form, field, field2, accessCode, enduserWithUpdate, recordedResponse;
1650
2001
  var _a, _b, _c;
1651
2002
  return __generator(this, function (_d) {
1652
2003
  switch (_d.label) {
@@ -1660,45 +2011,85 @@ var form_response_tests = function () { return __awaiter(void 0, void 0, void 0,
1660
2011
  enduser = _d.sent();
1661
2012
  return [4 /*yield*/, sdk.api.forms.createOne({
1662
2013
  title: 'test form',
1663
- fields: [{
1664
- title: stringTitle,
1665
- description: 'Enter a string',
1666
- type: 'string',
1667
- isOptional: false,
1668
- intakeField: stringIntakeField
1669
- }]
1670
- })
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; } })
1671
2053
  // await sdk.api.automation_steps.createOne({
1672
2054
  // event: { type: "formResponse", info: { formId: form.id } },
1673
2055
  // action: { type: 'sendWebhook', info: { message: 'test' } },
1674
2056
  // })
1675
2057
  ];
1676
- case 2:
1677
- form = _d.sent();
2058
+ case 9:
2059
+ _d.sent();
1678
2060
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
1679
- case 3:
2061
+ case 10:
1680
2062
  accessCode = (_d.sent()).accessCode;
1681
- 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
+ ] })
1682
2073
  // const [triggeredAutomation] = await sdk.api.automated_actions.getSome()
1683
2074
  ];
1684
- case 4:
2075
+ case 11:
1685
2076
  _d.sent();
1686
2077
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1687
- case 5:
2078
+ case 12:
1688
2079
  enduserWithUpdate = _d.sent();
1689
2080
  return [4 /*yield*/, sdk.api.form_responses.getOne({ accessCode: accessCode })
1690
2081
  // assert(triggeredAutomation?.event?.type === 'formResponse', 'no form response event', 'form response event triggered')
1691
2082
  ];
1692
- case 6:
2083
+ case 13:
1693
2084
  recordedResponse = _d.sent();
1694
2085
  // assert(triggeredAutomation?.event?.type === 'formResponse', 'no form response event', 'form response event triggered')
1695
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');
1696
- (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');
1697
2088
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1698
- case 7:
2089
+ case 14:
1699
2090
  _d.sent();
1700
2091
  return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
1701
- case 8:
2092
+ case 15:
1702
2093
  _d.sent();
1703
2094
  return [2 /*return*/];
1704
2095
  }
@@ -2241,6 +2632,7 @@ var tests = {
2241
2632
  meetings: exports.meetings_tests,
2242
2633
  notes: NO_TEST,
2243
2634
  forms: NO_TEST,
2635
+ form_fields: NO_TEST,
2244
2636
  form_responses: form_response_tests,
2245
2637
  calendar_events: calendar_events_tests,
2246
2638
  webhooks: NO_TEST,
@@ -2256,6 +2648,7 @@ var tests = {
2256
2648
  managed_content_records: NO_TEST,
2257
2649
  post_comments: NO_TEST,
2258
2650
  post_likes: NO_TEST,
2651
+ organizations: NO_TEST,
2259
2652
  };
2260
2653
  (function () { return __awaiter(void 0, void 0, void 0, function () {
2261
2654
  var err_1, n, _a, _b, _i, returnValidation, t, _c, _d, _e, err_2;
@@ -2313,7 +2706,12 @@ var tests = {
2313
2706
  case 15:
2314
2707
  err_1 = _h.sent();
2315
2708
  console.error("Failed during custom test");
2316
- 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
+ }
2317
2715
  process.exit(1);
2318
2716
  return [3 /*break*/, 16];
2319
2717
  case 16: