@tellescope/sdk 1.1.5 → 1.2.0
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/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +243 -3
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +243 -3
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/tests/tests.ts +184 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAwnDA,eAAO,MAAM,cAAc,qBAqC1B,CAAA"}
|
package/lib/cjs/tests/tests.js
CHANGED
|
@@ -1638,11 +1638,251 @@ 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, triggerStep, acNoStep, acStep;
|
|
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
|
+
fields: [{ title: 'question', type: 'string' }],
|
|
1656
|
+
})];
|
|
1657
|
+
case 3:
|
|
1658
|
+
form = _a.sent();
|
|
1659
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
1660
|
+
journeyId: journey.id,
|
|
1661
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
1662
|
+
// in practice, this would send a form, so that the next step(s) could handle the response
|
|
1663
|
+
// but we don't want to send emails in testing, and can still attach this Id to a form response to test a trigger
|
|
1664
|
+
action: {
|
|
1665
|
+
type: 'setEnduserStatus',
|
|
1666
|
+
info: { status: 'placeholder' },
|
|
1667
|
+
},
|
|
1668
|
+
})];
|
|
1669
|
+
case 4:
|
|
1670
|
+
triggerStep = _a.sent();
|
|
1671
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
1672
|
+
journeyId: journey.id,
|
|
1673
|
+
event: {
|
|
1674
|
+
type: 'formResponse',
|
|
1675
|
+
info: { automationStepId: triggerStep.id }
|
|
1676
|
+
},
|
|
1677
|
+
action: {
|
|
1678
|
+
type: 'setEnduserStatus',
|
|
1679
|
+
info: { status: 'placeholder' },
|
|
1680
|
+
},
|
|
1681
|
+
})];
|
|
1682
|
+
case 5:
|
|
1683
|
+
_a.sent();
|
|
1684
|
+
return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({ formId: form.id, enduserId: enduser.id })];
|
|
1685
|
+
case 6:
|
|
1686
|
+
acNoStep = (_a.sent()).accessCode;
|
|
1687
|
+
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
|
+
case 8:
|
|
1692
|
+
_a.sent();
|
|
1693
|
+
return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: acStep, automationStepId: triggerStep.id, responses: ['answer'] })];
|
|
1694
|
+
case 9:
|
|
1695
|
+
_a.sent();
|
|
1696
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)]; // allow background creation with generous pause
|
|
1697
|
+
case 10:
|
|
1698
|
+
_a.sent(); // allow background creation with generous pause
|
|
1699
|
+
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:
|
|
1701
|
+
_a.sent();
|
|
1702
|
+
return [4 /*yield*/, Promise.all([
|
|
1703
|
+
sdk.api.forms.deleteOne(form.id),
|
|
1704
|
+
sdk.api.journeys.deleteOne(journey.id),
|
|
1705
|
+
sdk.api.endusers.deleteOne(enduser.id)
|
|
1706
|
+
])];
|
|
1707
|
+
case 12:
|
|
1708
|
+
_a.sent();
|
|
1709
|
+
return [2 /*return*/];
|
|
1710
|
+
}
|
|
1711
|
+
});
|
|
1712
|
+
}); };
|
|
1713
|
+
var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1714
|
+
var testCloseReasons, enduser, enduserWithTeam, journey, nullJourney, root, nullRoot, createStep, ticket, ticketNull;
|
|
1715
|
+
var _a, _b;
|
|
1716
|
+
return __generator(this, function (_c) {
|
|
1717
|
+
switch (_c.label) {
|
|
1718
|
+
case 0:
|
|
1719
|
+
(0, testing_1.log_header)("Ticket Events");
|
|
1720
|
+
testCloseReasons = ['Yes', 'No', 'Maybe'];
|
|
1721
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deletemeee@tellescope.com' })];
|
|
1722
|
+
case 1:
|
|
1723
|
+
enduser = _c.sent();
|
|
1724
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deleteme2@tellescope.com', assignedTo: [sdkNonAdmin.userInfo.id] })];
|
|
1725
|
+
case 2:
|
|
1726
|
+
enduserWithTeam = _c.sent();
|
|
1727
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey with completion options' })];
|
|
1728
|
+
case 3:
|
|
1729
|
+
journey = _c.sent();
|
|
1730
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey null' })];
|
|
1731
|
+
case 4:
|
|
1732
|
+
nullJourney = _c.sent();
|
|
1733
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
1734
|
+
journeyId: journey.id,
|
|
1735
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
1736
|
+
action: {
|
|
1737
|
+
type: 'createTicket',
|
|
1738
|
+
info: {
|
|
1739
|
+
title: 'close reasons tests',
|
|
1740
|
+
assignmentStrategy: {
|
|
1741
|
+
type: 'care-team-random',
|
|
1742
|
+
info: {},
|
|
1743
|
+
},
|
|
1744
|
+
closeReasons: testCloseReasons,
|
|
1745
|
+
defaultAssignee: sdk.userInfo.id,
|
|
1746
|
+
},
|
|
1747
|
+
},
|
|
1748
|
+
})];
|
|
1749
|
+
case 5:
|
|
1750
|
+
root = _c.sent();
|
|
1751
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
1752
|
+
journeyId: nullJourney.id,
|
|
1753
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
1754
|
+
action: {
|
|
1755
|
+
type: 'createTicket',
|
|
1756
|
+
info: {
|
|
1757
|
+
title: 'null test',
|
|
1758
|
+
assignmentStrategy: {
|
|
1759
|
+
type: 'care-team-random',
|
|
1760
|
+
info: {},
|
|
1761
|
+
},
|
|
1762
|
+
closeReasons: [],
|
|
1763
|
+
defaultAssignee: sdk.userInfo.id,
|
|
1764
|
+
},
|
|
1765
|
+
},
|
|
1766
|
+
})];
|
|
1767
|
+
case 6:
|
|
1768
|
+
nullRoot = _c.sent();
|
|
1769
|
+
createStep = function (journeyId, automationStepId, closedForReason) { return (sdk.api.automation_steps.createOne({
|
|
1770
|
+
journeyId: journeyId,
|
|
1771
|
+
event: { type: 'ticketCompleted', info: { automationStepId: automationStepId, closedForReason: closedForReason, } },
|
|
1772
|
+
action: { type: 'setEnduserStatus', info: { status: closedForReason !== null && closedForReason !== void 0 ? closedForReason : 'Null' }, },
|
|
1773
|
+
})); };
|
|
1774
|
+
return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id)];
|
|
1775
|
+
case 7:
|
|
1776
|
+
_c.sent();
|
|
1777
|
+
return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id, testCloseReasons[0])];
|
|
1778
|
+
case 8:
|
|
1779
|
+
_c.sent();
|
|
1780
|
+
return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id, testCloseReasons[1])];
|
|
1781
|
+
case 9:
|
|
1782
|
+
_c.sent();
|
|
1783
|
+
return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id, testCloseReasons[2])];
|
|
1784
|
+
case 10:
|
|
1785
|
+
_c.sent();
|
|
1786
|
+
return [4 /*yield*/, createStep(journey.id, root.id)];
|
|
1787
|
+
case 11:
|
|
1788
|
+
_c.sent();
|
|
1789
|
+
return [4 /*yield*/, createStep(journey.id, root.id, testCloseReasons[0])];
|
|
1790
|
+
case 12:
|
|
1791
|
+
_c.sent();
|
|
1792
|
+
return [4 /*yield*/, createStep(journey.id, root.id, testCloseReasons[1])];
|
|
1793
|
+
case 13:
|
|
1794
|
+
_c.sent();
|
|
1795
|
+
return [4 /*yield*/, createStep(journey.id, root.id, testCloseReasons[2])];
|
|
1796
|
+
case 14:
|
|
1797
|
+
_c.sent();
|
|
1798
|
+
return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: (_a = {}, _a[journey.id] = 'Added', _a) })];
|
|
1799
|
+
case 15:
|
|
1800
|
+
_c.sent();
|
|
1801
|
+
return [4 /*yield*/, sdk.api.endusers.updateOne(enduserWithTeam.id, { journeys: (_b = {}, _b[nullJourney.id] = 'Added (Null)', _b) })];
|
|
1802
|
+
case 16:
|
|
1803
|
+
_c.sent();
|
|
1804
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 2000)]; // wait for tickets to be automatically created
|
|
1805
|
+
case 17:
|
|
1806
|
+
_c.sent(); // wait for tickets to be automatically created
|
|
1807
|
+
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; } })];
|
|
1808
|
+
case 18:
|
|
1809
|
+
_c.sent();
|
|
1810
|
+
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) {
|
|
1811
|
+
var _a;
|
|
1812
|
+
return (tickets.length === 1
|
|
1813
|
+
&& ((_a = tickets[0].closeReasons) === null || _a === void 0 ? void 0 : _a.length) === 3
|
|
1814
|
+
&& tickets[0].owner === sdk.userInfo.id);
|
|
1815
|
+
} })];
|
|
1816
|
+
case 19:
|
|
1817
|
+
_c.sent();
|
|
1818
|
+
return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduser.id })];
|
|
1819
|
+
case 20:
|
|
1820
|
+
ticket = _c.sent();
|
|
1821
|
+
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) {
|
|
1822
|
+
var _a;
|
|
1823
|
+
return tickets.length === 1
|
|
1824
|
+
&& ((_a = tickets[0].closeReasons) === null || _a === void 0 ? void 0 : _a.length) === 0
|
|
1825
|
+
&& tickets[0].owner === sdkNonAdmin.userInfo.id;
|
|
1826
|
+
}
|
|
1827
|
+
})];
|
|
1828
|
+
case 21:
|
|
1829
|
+
_c.sent();
|
|
1830
|
+
return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduserWithTeam.id })];
|
|
1831
|
+
case 22:
|
|
1832
|
+
ticketNull = _c.sent();
|
|
1833
|
+
return [4 /*yield*/, sdk.api.tickets.updateOne(ticket.id, { closedForReason: 'Maybe', closedAt: new Date() })];
|
|
1834
|
+
case 23:
|
|
1835
|
+
_c.sent();
|
|
1836
|
+
return [4 /*yield*/, sdk.api.tickets.updateOne(ticketNull.id, { closedAt: new Date() })];
|
|
1837
|
+
case 24:
|
|
1838
|
+
_c.sent();
|
|
1839
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)]; // wait for actions to be automatically created
|
|
1840
|
+
case 25:
|
|
1841
|
+
_c.sent(); // wait for actions to be automatically created
|
|
1842
|
+
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
|
|
1843
|
+
&& (!!actions.find(function (a) {
|
|
1844
|
+
return a.event.type === 'ticketCompleted'
|
|
1845
|
+
&& a.enduserId === enduser.id
|
|
1846
|
+
&& a.action.type === 'setEnduserStatus'
|
|
1847
|
+
&& a.action.info.status === 'Maybe';
|
|
1848
|
+
} // maybe branch
|
|
1849
|
+
))
|
|
1850
|
+
&& (!!actions.find(function (a) {
|
|
1851
|
+
return a.event.type === 'ticketCompleted'
|
|
1852
|
+
&& a.enduserId === enduserWithTeam.id
|
|
1853
|
+
&& a.action.type === 'setEnduserStatus'
|
|
1854
|
+
&& a.action.info.status === 'Null';
|
|
1855
|
+
} // null branch when completed without closedForReason
|
|
1856
|
+
)); }) })];
|
|
1857
|
+
case 26:
|
|
1858
|
+
_c.sent();
|
|
1859
|
+
return [4 /*yield*/, Promise.all([
|
|
1860
|
+
sdk.api.journeys.deleteOne(journey.id),
|
|
1861
|
+
sdk.api.journeys.deleteOne(nullJourney.id),
|
|
1862
|
+
sdk.api.endusers.deleteOne(enduser.id),
|
|
1863
|
+
sdk.api.endusers.deleteOne(enduserWithTeam.id),
|
|
1864
|
+
sdk.api.tickets.deleteOne(ticket.id),
|
|
1865
|
+
sdk.api.tickets.deleteOne(ticketNull.id),
|
|
1866
|
+
])];
|
|
1867
|
+
case 27:
|
|
1868
|
+
_c.sent();
|
|
1869
|
+
return [2 /*return*/];
|
|
1870
|
+
}
|
|
1871
|
+
});
|
|
1872
|
+
}); };
|
|
1641
1873
|
var automation_events_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1642
1874
|
return __generator(this, function (_a) {
|
|
1643
|
-
(
|
|
1644
|
-
|
|
1645
|
-
|
|
1875
|
+
switch (_a.label) {
|
|
1876
|
+
case 0:
|
|
1877
|
+
(0, testing_1.log_header)("Automation Events");
|
|
1878
|
+
return [4 /*yield*/, formEventTests()];
|
|
1879
|
+
case 1:
|
|
1880
|
+
_a.sent();
|
|
1881
|
+
return [4 /*yield*/, ticketEventTests()];
|
|
1882
|
+
case 2:
|
|
1883
|
+
_a.sent();
|
|
1884
|
+
return [2 /*return*/];
|
|
1885
|
+
}
|
|
1646
1886
|
});
|
|
1647
1887
|
}); };
|
|
1648
1888
|
var form_response_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|