@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.
- package/lib/cjs/enduser.d.ts +52 -2
- package/lib/cjs/enduser.d.ts.map +1 -1
- package/lib/cjs/enduser.js +4 -0
- package/lib/cjs/enduser.js.map +1 -1
- package/lib/cjs/sdk.d.ts +51 -1
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +3 -0
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/session.d.ts +0 -1
- package/lib/cjs/session.d.ts.map +1 -1
- package/lib/cjs/session.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +421 -23
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +52 -2
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/enduser.js +4 -0
- package/lib/esm/enduser.js.map +1 -1
- package/lib/esm/sdk.d.ts +51 -1
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +3 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/session.d.ts +0 -1
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/session.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +421 -23
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/enduser.ts +11 -0
- package/src/sdk.ts +9 -0
- package/src/session.ts +1 -0
- package/src/tests/tests.ts +328 -12
package/lib/cjs/tests/tests.js
CHANGED
|
@@ -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
|
-
(
|
|
1644
|
-
|
|
1645
|
-
|
|
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
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
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
|
|
1677
|
-
|
|
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
|
|
2061
|
+
case 10:
|
|
1680
2062
|
accessCode = (_d.sent()).accessCode;
|
|
1681
|
-
return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: accessCode, responses: [
|
|
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
|
|
2075
|
+
case 11:
|
|
1685
2076
|
_d.sent();
|
|
1686
2077
|
return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
|
|
1687
|
-
case
|
|
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
|
|
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
|
|
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
|
|
2089
|
+
case 14:
|
|
1699
2090
|
_d.sent();
|
|
1700
2091
|
return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
|
|
1701
|
-
case
|
|
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
|
-
|
|
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:
|