mailgun.js 5.0.3 → 5.0.4

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.
Files changed (313) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +15 -3
  3. package/client.d.ts +29 -0
  4. package/domains.d.ts +53 -0
  5. package/domainsCredentials.d.ts +14 -0
  6. package/domainsTags.d.ts +34 -0
  7. package/domainsTemplates.d.ts +35 -0
  8. package/error.d.ts +7 -0
  9. package/events.d.ts +13 -0
  10. package/index.d.ts +9 -0
  11. package/interfaces/APIErrorOptions.d.ts +11 -0
  12. package/{lib/interfaces/ApiResponse.ts → interfaces/ApiResponse.d.ts} +1 -2
  13. package/{lib/interfaces/DomainCredentials.ts → interfaces/DomainCredentials.d.ts} +14 -30
  14. package/{lib/interfaces/DomainTags.ts → interfaces/DomainTags.d.ts} +49 -82
  15. package/{lib/interfaces/DomainTemplates.ts → interfaces/DomainTemplates.d.ts} +35 -79
  16. package/{lib/interfaces/DomainTracking.ts → interfaces/DomainTracking.d.ts} +18 -17
  17. package/{lib/interfaces/Domains.ts → interfaces/Domains.d.ts} +29 -50
  18. package/{lib/interfaces/Events.ts → interfaces/Events.d.ts} +11 -12
  19. package/{lib/interfaces/IFormData.ts → interfaces/IFormData.d.ts} +2 -4
  20. package/interfaces/IMailgunClient.d.ts +24 -0
  21. package/interfaces/IpPools.d.ts +19 -0
  22. package/interfaces/Ips.d.ts +10 -0
  23. package/{lib/interfaces/MultipleValidation.ts → interfaces/MultipleValidation.d.ts} +9 -16
  24. package/interfaces/Options.d.ts +8 -0
  25. package/{lib/interfaces/RequestOptions.ts → interfaces/RequestOptions.d.ts} +2 -4
  26. package/interfaces/StatsOptions.d.ts +22 -0
  27. package/interfaces/Supressions.d.ts +103 -0
  28. package/{lib/interfaces/Validate.ts → interfaces/Validate.d.ts} +0 -3
  29. package/{lib/interfaces/Webhooks.ts → interfaces/Webhooks.d.ts} +11 -17
  30. package/{lib/interfaces/lists.ts → interfaces/lists.d.ts} +1 -5
  31. package/{lib/interfaces/mailListMembers.ts → interfaces/mailListMembers.d.ts} +8 -23
  32. package/{lib/interfaces/routes.ts → interfaces/routes.d.ts} +1 -6
  33. package/ip-pools.d.ts +21 -0
  34. package/ips.d.ts +9 -0
  35. package/lists.d.ts +14 -0
  36. package/mailListMembers.d.ts +14 -0
  37. package/mailgun.node.js +3 -0
  38. package/{dist/mailgun.node.js.LICENSE.txt → mailgun.node.js.LICENSE.txt} +1 -1
  39. package/mailgun.web.js +3 -0
  40. package/{dist/mailgun.web.js.LICENSE.txt → mailgun.web.js.LICENSE.txt} +1 -1
  41. package/messages.d.ts +9 -0
  42. package/multipleValidation.d.ts +10 -0
  43. package/package.json +8 -81
  44. package/request.d.ts +31 -0
  45. package/routes.d.ts +11 -0
  46. package/stats.d.ts +20 -0
  47. package/suppressions.d.ts +50 -0
  48. package/validate.d.ts +9 -0
  49. package/version.md +1 -0
  50. package/webhooks.d.ts +32 -0
  51. package/.editorconfig +0 -10
  52. package/.eslintrc +0 -56
  53. package/.husky/commit-msg +0 -4
  54. package/.travis.yml +0 -5
  55. package/LICENSE +0 -191
  56. package/commitlint.config.js +0 -7
  57. package/dist/mailgun.js.d.ts +0 -1586
  58. package/dist/mailgun.node.js +0 -3
  59. package/dist/mailgun.web.js +0 -3
  60. package/docs/.nojekyll +0 -1
  61. package/docs/assets/highlight.css +0 -127
  62. package/docs/assets/icons.css +0 -1043
  63. package/docs/assets/icons.png +0 -0
  64. package/docs/assets/icons@2x.png +0 -0
  65. package/docs/assets/main.js +0 -52
  66. package/docs/assets/search.js +0 -1
  67. package/docs/assets/style.css +0 -1413
  68. package/docs/assets/widgets.png +0 -0
  69. package/docs/assets/widgets@2x.png +0 -0
  70. package/docs/classes/client.default.html +0 -1
  71. package/docs/classes/domains.Domain.html +0 -1
  72. package/docs/classes/domains.default.html +0 -1
  73. package/docs/classes/domainsCredentials.default.html +0 -1
  74. package/docs/classes/domainsTemplates.DomainTemplateItem.html +0 -1
  75. package/docs/classes/domainsTemplates.default.html +0 -1
  76. package/docs/classes/error.default.html +0 -6
  77. package/docs/classes/events.default.html +0 -1
  78. package/docs/classes/ip_pools.default.html +0 -1
  79. package/docs/classes/ips.default.html +0 -1
  80. package/docs/classes/lists.default.html +0 -1
  81. package/docs/classes/mailListMembers.default.html +0 -1
  82. package/docs/classes/messages.default.html +0 -1
  83. package/docs/classes/multipleValidation.default.html +0 -1
  84. package/docs/classes/request.default.html +0 -1
  85. package/docs/classes/routes.default.html +0 -1
  86. package/docs/classes/stats.default.html +0 -1
  87. package/docs/classes/suppressions.default.html +0 -1
  88. package/docs/classes/validate.default.html +0 -1
  89. package/docs/classes/webhooks.default.html +0 -1
  90. package/docs/enums/interfaces_DomainTemplates.Pages.html +0 -1
  91. package/docs/enums/interfaces_DomainTemplates.YesNo.html +0 -1
  92. package/docs/index.html +0 -1140
  93. package/docs/interfaces/interfaces_APIErrorOptions.default.html +0 -1
  94. package/docs/interfaces/interfaces_ApiResponse.default.html +0 -1
  95. package/docs/interfaces/interfaces_DomainCredentials.CreatedUpdatedDomainCredentialsResponse.html +0 -1
  96. package/docs/interfaces/interfaces_DomainCredentials.DeletedDomainCredentialsResponse.html +0 -1
  97. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentials.html +0 -1
  98. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsItem.html +0 -1
  99. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsList.html +0 -1
  100. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsQuery.html +0 -1
  101. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsResponseData.html +0 -1
  102. package/docs/interfaces/interfaces_DomainCredentials.DomainCredentialsResult.html +0 -1
  103. package/docs/interfaces/interfaces_DomainCredentials.IDomainCredentials.html +0 -1
  104. package/docs/interfaces/interfaces_DomainCredentials.UpdateDomainCredentialsData.html +0 -1
  105. package/docs/interfaces/interfaces_DomainTemplates.CreateDomainTemplateAPIResponse.html +0 -1
  106. package/docs/interfaces/interfaces_DomainTemplates.CreateDomainTemplateVersionAPIResponse.html +0 -1
  107. package/docs/interfaces/interfaces_DomainTemplates.CreateDomainTemplateVersionResult.html +0 -1
  108. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplate.html +0 -1
  109. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateData.html +0 -1
  110. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateUpdateData.html +0 -1
  111. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateUpdateVersionData.html +0 -1
  112. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplateVersionData.html +0 -1
  113. package/docs/interfaces/interfaces_DomainTemplates.DomainTemplatesQuery.html +0 -1
  114. package/docs/interfaces/interfaces_DomainTemplates.GetDomainTemplateAPIResponse.html +0 -1
  115. package/docs/interfaces/interfaces_DomainTemplates.IDomainTemplatesClient.html +0 -1
  116. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplateVersionsAPIResponse.html +0 -1
  117. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplateVersionsResult.html +0 -1
  118. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplatesAPIResponse.html +0 -1
  119. package/docs/interfaces/interfaces_DomainTemplates.ListDomainTemplatesResult.html +0 -1
  120. package/docs/interfaces/interfaces_DomainTemplates.MutateDomainTemplateVersionAPIResponse.html +0 -1
  121. package/docs/interfaces/interfaces_DomainTemplates.MutateDomainTemplateVersionResult.html +0 -1
  122. package/docs/interfaces/interfaces_DomainTemplates.NotificationAPIResponse.html +0 -1
  123. package/docs/interfaces/interfaces_DomainTemplates.NotificationResult.html +0 -1
  124. package/docs/interfaces/interfaces_DomainTemplates.ShortTemplateVersion.html +0 -1
  125. package/docs/interfaces/interfaces_DomainTemplates.TemplateQuery.html +0 -1
  126. package/docs/interfaces/interfaces_DomainTemplates.TemplateVersion.html +0 -1
  127. package/docs/interfaces/interfaces_DomainTemplates.UpdateOrDeleteDomainTemplateAPIResponse.html +0 -1
  128. package/docs/interfaces/interfaces_DomainTemplates.UpdateOrDeleteDomainTemplateResult.html +0 -1
  129. package/docs/interfaces/interfaces_DomainTracking.ClickTrackingInfo.html +0 -1
  130. package/docs/interfaces/interfaces_DomainTracking.DomainTrackingData.html +0 -1
  131. package/docs/interfaces/interfaces_DomainTracking.DomainTrackingResponse.html +0 -1
  132. package/docs/interfaces/interfaces_DomainTracking.OpenTrackingInfo.html +0 -1
  133. package/docs/interfaces/interfaces_DomainTracking.UnsubscribeTrackingInfo.html +0 -1
  134. package/docs/interfaces/interfaces_DomainTracking.UpdateDomainTrackingResponse.html +0 -1
  135. package/docs/interfaces/interfaces_DomainTracking.UpdatedOpenTracking.html +0 -1
  136. package/docs/interfaces/interfaces_Domains.ConnectionSettings.html +0 -1
  137. package/docs/interfaces/interfaces_Domains.ConnectionSettingsResponse.html +0 -1
  138. package/docs/interfaces/interfaces_Domains.DKIMAuthorityInfo.html +0 -1
  139. package/docs/interfaces/interfaces_Domains.DKIMSelectorInfo.html +0 -1
  140. package/docs/interfaces/interfaces_Domains.DNSRecord.html +0 -1
  141. package/docs/interfaces/interfaces_Domains.DestroyedDomainResponse.html +0 -1
  142. package/docs/interfaces/interfaces_Domains.DomainData.html +0 -1
  143. package/docs/interfaces/interfaces_Domains.DomainInfo.html +0 -1
  144. package/docs/interfaces/interfaces_Domains.DomainListResponseData.html +0 -1
  145. package/docs/interfaces/interfaces_Domains.DomainResponseData.html +0 -1
  146. package/docs/interfaces/interfaces_Domains.DomainShortData.html +0 -1
  147. package/docs/interfaces/interfaces_Domains.DomainsListItem.html +0 -1
  148. package/docs/interfaces/interfaces_Domains.DomainsQuery.html +0 -1
  149. package/docs/interfaces/interfaces_Domains.MessageResponse.html +0 -1
  150. package/docs/interfaces/interfaces_Domains.ReplacementForPool.html +0 -1
  151. package/docs/interfaces/interfaces_Domains.UpdatedConnectionSettings.html +0 -1
  152. package/docs/interfaces/interfaces_Domains.UpdatedConnectionSettingsRes.html +0 -1
  153. package/docs/interfaces/interfaces_Domains.UpdatedDKIMAuthority.html +0 -1
  154. package/docs/interfaces/interfaces_Domains.UpdatedDKIMAuthorityResponse.html +0 -1
  155. package/docs/interfaces/interfaces_Domains.UpdatedDKIMSelectorResponse.html +0 -1
  156. package/docs/interfaces/interfaces_Domains.UpdatedWebPrefix.html +0 -1
  157. package/docs/interfaces/interfaces_Domains.UpdatedWebPrefixResponse.html +0 -1
  158. package/docs/interfaces/interfaces_Domains.WebPrefixInfo.html +0 -1
  159. package/docs/interfaces/interfaces_Events.DomainEvent.html +0 -1
  160. package/docs/interfaces/interfaces_Events.EventsList.html +0 -1
  161. package/docs/interfaces/interfaces_Events.EventsPage.html +0 -1
  162. package/docs/interfaces/interfaces_Events.EventsResponse.html +0 -1
  163. package/docs/interfaces/interfaces_Events.PagesList.html +0 -1
  164. package/docs/interfaces/interfaces_Events.PagesListAccumulator.html +0 -1
  165. package/docs/interfaces/interfaces_Events.ParsedPage.html +0 -1
  166. package/docs/interfaces/interfaces_Events.ParsedPagesList.html +0 -1
  167. package/docs/interfaces/interfaces_IFormData.IFormDataOptions.html +0 -1
  168. package/docs/interfaces/interfaces_IFormData.InputFormData.html +0 -1
  169. package/docs/interfaces/interfaces_IpPools.IpPool.html +0 -1
  170. package/docs/interfaces/interfaces_IpPools.IpPoolListResponse.html +0 -1
  171. package/docs/interfaces/interfaces_IpPools.IpPoolUpdateData.html +0 -1
  172. package/docs/interfaces/interfaces_Ips.IpData.html +0 -1
  173. package/docs/interfaces/interfaces_Ips.IpsListResponseBody.html +0 -1
  174. package/docs/interfaces/interfaces_MultipleValidation.CanceledMultipleValidationJob.html +0 -1
  175. package/docs/interfaces/interfaces_MultipleValidation.CreatedMultipleValidationJob.html +0 -1
  176. package/docs/interfaces/interfaces_MultipleValidation.IMultipleValidationClient.html +0 -1
  177. package/docs/interfaces/interfaces_MultipleValidation.MultipleValidationJob.html +0 -1
  178. package/docs/interfaces/interfaces_MultipleValidation.MultipleValidationJobsListResponse.html +0 -1
  179. package/docs/interfaces/interfaces_MultipleValidation.MultipleValidationJobsListResult.html +0 -1
  180. package/docs/interfaces/interfaces_MultipleValidation.PagesList.html +0 -1
  181. package/docs/interfaces/interfaces_Options.default.html +0 -1
  182. package/docs/interfaces/interfaces_RequestOptions.default.html +0 -1
  183. package/docs/interfaces/interfaces_StatsOptions.Stat.html +0 -1
  184. package/docs/interfaces/interfaces_StatsOptions.StatsOptions.html +0 -1
  185. package/docs/interfaces/interfaces_StatsOptions.StatsQuery.html +0 -1
  186. package/docs/interfaces/interfaces_Supressions.BounceData.html +0 -1
  187. package/docs/interfaces/interfaces_Supressions.ComplaintData.html +0 -1
  188. package/docs/interfaces/interfaces_Supressions.UnsubscribeData.html +0 -1
  189. package/docs/interfaces/interfaces_Supressions.WhiteListData.html +0 -1
  190. package/docs/interfaces/interfaces_Validate.ValidationResponse.html +0 -1
  191. package/docs/interfaces/interfaces_Validate.ValidationResult.html +0 -1
  192. package/docs/interfaces/interfaces_Webhooks.APIWebhook.html +0 -1
  193. package/docs/interfaces/interfaces_Webhooks.ValidationResponse.html +0 -1
  194. package/docs/interfaces/interfaces_Webhooks.WebhookList.html +0 -1
  195. package/docs/interfaces/interfaces_Webhooks.WebhookResponse.html +0 -1
  196. package/docs/interfaces/interfaces_Webhooks.WebhookResponseBody.html +0 -1
  197. package/docs/interfaces/interfaces_Webhooks.WebhooksQuery.html +0 -1
  198. package/docs/interfaces/interfaces_lists.CreateUpdateList.html +0 -1
  199. package/docs/interfaces/interfaces_lists.DestroyedList.html +0 -1
  200. package/docs/interfaces/interfaces_lists.ListsQuery.html +0 -1
  201. package/docs/interfaces/interfaces_lists.MailingList.html +0 -1
  202. package/docs/interfaces/interfaces_mailListMembers.CreateUpdateMailListMembers.html +0 -1
  203. package/docs/interfaces/interfaces_mailListMembers.CreateUpdateMailListMembersReq.html +0 -1
  204. package/docs/interfaces/interfaces_mailListMembers.DeletedMember.html +0 -1
  205. package/docs/interfaces/interfaces_mailListMembers.IMailListsMembers.html +0 -1
  206. package/docs/interfaces/interfaces_mailListMembers.MailListMember.html +0 -1
  207. package/docs/interfaces/interfaces_mailListMembers.MailListMembersQuery.html +0 -1
  208. package/docs/interfaces/interfaces_mailListMembers.MultipleMembersData.html +0 -1
  209. package/docs/interfaces/interfaces_mailListMembers.MultipleMembersReqData.html +0 -1
  210. package/docs/interfaces/interfaces_mailListMembers.NewMultipleMembersResponse.html +0 -1
  211. package/docs/interfaces/interfaces_routes.CreateUpdateRouteData.html +0 -1
  212. package/docs/interfaces/interfaces_routes.DestroyRouteResponse.html +0 -1
  213. package/docs/interfaces/interfaces_routes.Route.html +0 -1
  214. package/docs/interfaces/interfaces_routes.RoutesListQuery.html +0 -1
  215. package/docs/interfaces/interfaces_routes.UpdateRouteResponse.html +0 -1
  216. package/docs/modules/client.html +0 -1
  217. package/docs/modules/domains.html +0 -1
  218. package/docs/modules/domainsCredentials.html +0 -1
  219. package/docs/modules/domainsTemplates.html +0 -1
  220. package/docs/modules/error.html +0 -1
  221. package/docs/modules/events.html +0 -1
  222. package/docs/modules/interfaces_APIErrorOptions.html +0 -1
  223. package/docs/modules/interfaces_ApiResponse.html +0 -1
  224. package/docs/modules/interfaces_DomainCredentials.html +0 -1
  225. package/docs/modules/interfaces_DomainTemplates.html +0 -1
  226. package/docs/modules/interfaces_DomainTracking.html +0 -1
  227. package/docs/modules/interfaces_Domains.html +0 -1
  228. package/docs/modules/interfaces_Events.html +0 -1
  229. package/docs/modules/interfaces_IFormData.html +0 -1
  230. package/docs/modules/interfaces_IpPools.html +0 -1
  231. package/docs/modules/interfaces_Ips.html +0 -1
  232. package/docs/modules/interfaces_MultipleValidation.html +0 -1
  233. package/docs/modules/interfaces_Options.html +0 -1
  234. package/docs/modules/interfaces_RequestOptions.html +0 -1
  235. package/docs/modules/interfaces_StatsOptions.html +0 -1
  236. package/docs/modules/interfaces_Supressions.html +0 -1
  237. package/docs/modules/interfaces_Validate.html +0 -1
  238. package/docs/modules/interfaces_Webhooks.html +0 -1
  239. package/docs/modules/interfaces_lists.html +0 -1
  240. package/docs/modules/interfaces_mailListMembers.html +0 -1
  241. package/docs/modules/interfaces_routes.html +0 -1
  242. package/docs/modules/ip_pools.html +0 -1
  243. package/docs/modules/ips.html +0 -1
  244. package/docs/modules/lists.html +0 -1
  245. package/docs/modules/mailListMembers.html +0 -1
  246. package/docs/modules/messages.html +0 -1
  247. package/docs/modules/multipleValidation.html +0 -1
  248. package/docs/modules/request.html +0 -1
  249. package/docs/modules/routes.html +0 -1
  250. package/docs/modules/stats.html +0 -1
  251. package/docs/modules/suppressions.html +0 -1
  252. package/docs/modules/validate.html +0 -1
  253. package/docs/modules/webhooks.html +0 -1
  254. package/docs/modules.html +0 -1
  255. package/dts-bundle.js +0 -8
  256. package/examples/addresses.js +0 -20
  257. package/examples/index.html +0 -285
  258. package/examples/list-domains.js +0 -8
  259. package/examples/mailgun.png +0 -0
  260. package/examples/rackspace.png +0 -0
  261. package/examples/send-email.js +0 -24
  262. package/lib/client.ts +0 -79
  263. package/lib/domains.ts +0 -224
  264. package/lib/domainsCredentials.ts +0 -88
  265. package/lib/domainsTags.ts +0 -165
  266. package/lib/domainsTemplates.ts +0 -235
  267. package/lib/error.ts +0 -22
  268. package/lib/events.ts +0 -54
  269. package/lib/index.ts +0 -16
  270. package/lib/interfaces/APIErrorOptions.ts +0 -10
  271. package/lib/interfaces/IpPools.ts +0 -22
  272. package/lib/interfaces/Ips.ts +0 -12
  273. package/lib/interfaces/Options.ts +0 -10
  274. package/lib/interfaces/StatsOptions.ts +0 -25
  275. package/lib/interfaces/Supressions.ts +0 -123
  276. package/lib/ip-pools.ts +0 -36
  277. package/lib/ips.ts +0 -24
  278. package/lib/lists.ts +0 -45
  279. package/lib/mailListMembers.ts +0 -83
  280. package/lib/messages.ts +0 -27
  281. package/lib/multipleValidation.ts +0 -37
  282. package/lib/request.ts +0 -271
  283. package/lib/routes.ts +0 -37
  284. package/lib/stats.ts +0 -62
  285. package/lib/suppressions.ts +0 -253
  286. package/lib/validate.ts +0 -20
  287. package/lib/webhooks.ts +0 -83
  288. package/test/client.test.ts +0 -96
  289. package/test/data/emailsValidation1.csv +0 -3
  290. package/test/domains.test.ts +0 -313
  291. package/test/domainsCredentials.test.ts +0 -97
  292. package/test/domainsTags.test.ts +0 -345
  293. package/test/domainsTemplates.test.ts +0 -392
  294. package/test/error.test.ts +0 -32
  295. package/test/events.test.ts +0 -104
  296. package/test/img/mailgun.png +0 -0
  297. package/test/ips.test.ts +0 -57
  298. package/test/lists.test.ts +0 -100
  299. package/test/mailListMembers.test.ts +0 -198
  300. package/test/messageAttachment.test.ts +0 -50
  301. package/test/messages.test.ts +0 -89
  302. package/test/multipleValidation.test.ts +0 -159
  303. package/test/request.test.ts +0 -103
  304. package/test/routes.test.ts +0 -136
  305. package/test/stats.test.ts +0 -90
  306. package/test/suppressions.test.ts +0 -303
  307. package/test/validate.test.ts +0 -43
  308. package/test/webhooks.test.ts +0 -112
  309. package/tsconfig.json +0 -22
  310. package/tsconfig.webpack.json +0 -10
  311. package/webpack/webpack.common.config.js +0 -46
  312. package/webpack/webpack.dev.config.js +0 -36
  313. package/webpack/webpack.release.config.js +0 -45
@@ -1,392 +0,0 @@
1
- import formData from 'form-data';
2
-
3
- import nock from 'nock';
4
- import Request from '../lib/request';
5
- import RequestOptions from '../lib/interfaces/RequestOptions';
6
- import { InputFormData } from '../lib/interfaces/IFormData';
7
- import { DomainCredentialsList, DomainCredentialsResult } from '../lib/interfaces/DomainCredentials';
8
- import DomainTemplatesClient from '../lib/domainsTemplates';
9
- import { DomainTemplateUpdateVersionData, DomainTemplateVersionData } from '../lib/interfaces/DomainTemplates';
10
-
11
- // TODO: fix types
12
- describe('DomainsTemplatesClient', function () {
13
- let client: DomainTemplatesClient;
14
- let api: nock.Scope;
15
-
16
- beforeEach(function () {
17
- const reqObject = new Request({ url: 'https://api.mailgun.net' } as RequestOptions, formData as InputFormData);
18
- client = new DomainTemplatesClient(reqObject);
19
- api = nock('https://api.mailgun.net');
20
- });
21
-
22
- afterEach(function () {
23
- api.done();
24
- });
25
-
26
- describe('list', function () {
27
- it('fetches all templates for domain', async () => {
28
- api.get('/v3/testDomain/templates').reply(200, {
29
- items: [
30
- {
31
- name: 'test_template',
32
- description: 'test_template description',
33
- createdAt: 'Mon, 20 Dec 2021 14:47:51 UTC',
34
- createdBy: '',
35
- id: 'someId'
36
- }
37
- ],
38
- paging: {
39
- first: 'first page url',
40
- last: 'last page url',
41
- next: 'next page url',
42
- previous: 'previous page url',
43
- }
44
- });
45
-
46
- const templatesList = await client.list('testDomain');
47
- templatesList.should.be.an('object').to.have.property('items');
48
- templatesList.items.should.be.an('array').to.have.property('length').to.be.equal(1);
49
- templatesList.items[0].should.eql({
50
- name: 'test_template',
51
- description: 'test_template description',
52
- createdAt: new Date('Mon, 20 Dec 2021 14:47:51 UTC'),
53
- createdBy: '',
54
- id: 'someId'
55
- });
56
- });
57
- });
58
-
59
- describe('get', function () {
60
- it('fetches all templates for domain', async () => {
61
- api.get('/v3/testDomain/templates/testTemplateName').reply(200, {
62
- template: {
63
- name: 'test_template',
64
- description: 'test_template description',
65
- createdAt: 'Mon, 20 Dec 2021 14:47:51 UTC',
66
- createdBy: '',
67
- id: 'someId'
68
- }
69
- });
70
-
71
- const template = await client.get('testDomain', 'testTemplateName');
72
- template.should.be.an('object');
73
- template.should.eql({
74
- name: 'test_template',
75
- description: 'test_template description',
76
- createdAt: new Date('Mon, 20 Dec 2021 14:47:51 UTC'),
77
- createdBy: '',
78
- id: 'someId'
79
- });
80
- });
81
- });
82
-
83
- describe('create', function () {
84
- it('creates domain template', async () => {
85
- const templateData = {
86
- name: 'test_template1',
87
- description: 'test_template1 description',
88
- template: '%recipient.title%',
89
- tag: 'v1',
90
- comment: 'dummy comment'
91
- };
92
-
93
- api.post('/v3/testDomain/templates').reply(200, {
94
- message: 'template has been stored',
95
- template: {
96
- name: 'test_template1',
97
- description: 'test_template description 1',
98
- createdAt: 'Wed, 22 Dec 2021 08:59:29 UTC',
99
- createdBy: '',
100
- id: 'someId',
101
- version: {
102
- tag: 'v1',
103
- template: '%recipient.title%',
104
- engine: 'handlebars',
105
- mjml: '',
106
- createdAt: 'Wed, 22 Dec 2021 08:59:29 UTC',
107
- comment: 'dummy comment',
108
- active: true,
109
- id: 'someId2'
110
- }
111
- }
112
- });
113
-
114
- const template = await client.create('testDomain', templateData);
115
- template.should.be.an('object');
116
- template.should.eql({
117
- name: 'test_template1',
118
- description: 'test_template description 1',
119
- createdAt: new Date('Wed, 22 Dec 2021 08:59:29 UTC'),
120
- createdBy: '',
121
- id: 'someId',
122
- version: {
123
- tag: 'v1',
124
- template: '%recipient.title%',
125
- engine: 'handlebars',
126
- mjml: '',
127
- createdAt: new Date('Wed, 22 Dec 2021 08:59:29 UTC'),
128
- comment: 'dummy comment',
129
- active: true,
130
- id: 'someId2'
131
- }
132
- });
133
- });
134
- });
135
-
136
- describe('update', function () {
137
- it('updates domain template', async () => {
138
- api.put('/v3/testDomain/templates/testTemplateName').reply(200, {
139
- message: 'template has been updated',
140
- template: { name: 'test_template1' }
141
- });
142
-
143
- const updatedTemplate = await client.update('testDomain', 'testTemplateName', {
144
- description: 'updated test_template description'
145
- });
146
- updatedTemplate.should.be.an('object');
147
- updatedTemplate.should.eql({
148
- status: 200,
149
- message: 'template has been updated',
150
- templateName: 'test_template1'
151
- });
152
- });
153
- });
154
-
155
- describe('destroy', function () {
156
- it('deletes domain template', async () => {
157
- api.delete('/v3/testDomain/templates/testTemplateName').reply(200, {
158
- message: 'template has been deleted',
159
- template: { name: 'test_template1' }
160
- });
161
-
162
- const deletedTemplate = await client.destroy('testDomain', 'testTemplateName');
163
- deletedTemplate.should.eql({
164
- status: 200,
165
- message: 'template has been deleted',
166
- templateName: 'test_template1'
167
- });
168
- });
169
- });
170
-
171
- describe('destroyAll', function () {
172
- it('deletes all domain templates', async () => {
173
- api.delete('/v3/testDomain/templates').reply(200, { message: 'templates have been deleted' });
174
-
175
- const deletedTemplate = await client.destroyAll('testDomain');
176
- deletedTemplate.should.eql({ status: 200, message: 'templates have been deleted' });
177
- });
178
- });
179
-
180
- describe('createVersion', function () {
181
- it('creates new version of domain template', async () => {
182
- const templateVersionData = {
183
- template: '%recipient.title%',
184
- tag: 'v3',
185
- comment: 'comment',
186
- active: 'yes'
187
- } as DomainTemplateVersionData;
188
-
189
- api.post('/v3/testDomain/templates/testTemplateName/versions').reply(200, {
190
- message: 'new version of the template has been stored',
191
- template: {
192
- name: 'test_template1',
193
- description: 'test_template description 1',
194
- createdAt: 'Wed, 22 Dec 2021 08:59:29 UTC',
195
- createdBy: '',
196
- id: 'someId',
197
- version: {
198
- tag: 'v1',
199
- template: '%recipient.title%',
200
- engine: 'handlebars',
201
- mjml: '',
202
- createdAt: 'Wed, 22 Dec 2021 08:59:29 UTC',
203
- comment: 'comment',
204
- active: true,
205
- id: 'someId2'
206
- }
207
- }
208
- });
209
-
210
- const templateVersion = await client.createVersion('testDomain', 'testTemplateName', templateVersionData);
211
- templateVersion.should.be.an('object');
212
- templateVersion.should.eql({
213
- status: 200,
214
- message: 'new version of the template has been stored',
215
- template: {
216
- name: 'test_template1',
217
- description: 'test_template description 1',
218
- createdAt: new Date('Wed, 22 Dec 2021 08:59:29 UTC'),
219
- createdBy: '',
220
- id: 'someId',
221
- version: {
222
- tag: 'v1',
223
- template: '%recipient.title%',
224
- engine: 'handlebars',
225
- mjml: '',
226
- createdAt: new Date('Wed, 22 Dec 2021 08:59:29 UTC'),
227
- comment: 'comment',
228
- active: true,
229
- id: 'someId2'
230
- }
231
- }
232
- });
233
- });
234
- });
235
-
236
- describe('getVersion', function () {
237
- it('fetches version of domain template', async () => {
238
- api.get('/v3/testDomain/templates/testTemplateName/versions/v1').reply(200, {
239
- template: {
240
- name: 'test_template',
241
- description: 'test_template description',
242
- createdAt: 'Wed, 22 Dec 2021 09:13:27 UTC',
243
- createdBy: '',
244
- id: 'someId',
245
- version: {
246
- tag: 'v1',
247
- template: '%recipient.title%',
248
- engine: 'handlebars',
249
- mjml: '',
250
- createdAt: 'Wed, 22 Dec 2021 09:13:27 UTC',
251
- comment: 'dummy comment',
252
- active: false,
253
- id: 'someId2'
254
- }
255
- }
256
- });
257
-
258
- const template = await client.getVersion('testDomain', 'testTemplateName', 'v1');
259
- template.should.be.an('object');
260
- template.should.eql({
261
- name: 'test_template',
262
- description: 'test_template description',
263
- createdAt: new Date('2021-12-22T09:13:27.000Z'),
264
- createdBy: '',
265
- id: 'someId',
266
- version: {
267
- tag: 'v1',
268
- template: '%recipient.title%',
269
- engine: 'handlebars',
270
- mjml: '',
271
- createdAt: new Date('2021-12-22T09:13:27.000Z'),
272
- comment: 'dummy comment',
273
- active: false,
274
- id: 'someId2',
275
- }
276
- });
277
- });
278
- });
279
-
280
- describe('updateVersion', function () {
281
- it('updates version of domain template', async () => {
282
- api.put('/v3/testDomain/templates/testTemplateName/versions/v2').reply(200, {
283
- message: 'version has been updated',
284
- template: { name: 'test_template', version: { tag: 'v2' } }
285
- });
286
-
287
- const updatedTemplate = await client.updateVersion('testDomain', 'testTemplateName', 'v2', {
288
- template: '%recipient.title%',
289
- comment: 'updated comment 2',
290
- active: 'yes'
291
- } as DomainTemplateUpdateVersionData);
292
- updatedTemplate.should.be.an('object');
293
- updatedTemplate.should.eql({
294
- status: 200,
295
- message: 'version has been updated',
296
- templateName: 'test_template',
297
- templateVersion: { tag: 'v2' }
298
- });
299
- });
300
- });
301
-
302
- describe('destroyVersion', function () {
303
- it('deletes version of domain template', async () => {
304
- api.delete('/v3/testDomain/templates/testTemplateName/versions/v1').reply(200, {
305
- message: 'version has been deleted',
306
- template: { name: 'test_template', version: { tag: 'v1' } }
307
- });
308
-
309
- const deletedTemplate = await client.destroyVersion('testDomain', 'testTemplateName', 'v1');
310
- deletedTemplate.should.eql({
311
- status: 200,
312
- message: 'version has been deleted',
313
- templateName: 'test_template',
314
- templateVersion: { tag: 'v1' }
315
- });
316
- });
317
- });
318
-
319
- describe('listVersions', function () {
320
- it('gets list of version for domain template', async () => {
321
- api.get('/v3/testDomain/templates/testTemplateName/versions').reply(200, {
322
- paging: {
323
- first: 'first page url',
324
- last: 'last page url',
325
- next: 'next page url',
326
- previous: 'previous page url',
327
- },
328
- template: {
329
- name: 'test_template',
330
- description: 'test_template description',
331
- createdAt: 'Wed, 22 Dec 2021 09:13:27 UTC',
332
- createdBy: '',
333
- id: 'someId',
334
- versions: [{
335
- tag: 'v2',
336
- engine: 'handlebars',
337
- mjml: '',
338
- createdAt: 'Wed, 22 Dec 2021 09:51:07 UTC',
339
- comment: 'updated comment 2',
340
- active: true,
341
- id: 'someId1'
342
- },
343
- {
344
- tag: 'v5',
345
- engine: 'handlebars',
346
- mjml: '',
347
- createdAt: 'Mon, 20 Dec 2021 16:36:55 UTC',
348
- comment: 'updated comment',
349
- active: false,
350
- id: 'someId2'
351
- }]
352
- }
353
- });
354
-
355
- const templatesList = await client.listVersions('testDomain', 'testTemplateName');
356
- templatesList.should.be.an('object');
357
- templatesList.should.eql({
358
- pages: {
359
- first: 'first page url',
360
- last: 'last page url',
361
- next: 'next page url',
362
- previous: 'previous page url',
363
- },
364
- template: {
365
- name: 'test_template',
366
- description: 'test_template description',
367
- createdAt: new Date('Wed, 22 Dec 2021 09:13:27 UTC'),
368
- createdBy: '',
369
- id: 'someId',
370
- versions: [{
371
- tag: 'v2',
372
- engine: 'handlebars',
373
- mjml: '',
374
- createdAt: new Date('Wed, 22 Dec 2021 09:51:07 UTC'),
375
- comment: 'updated comment 2',
376
- active: true,
377
- id: 'someId1'
378
- },
379
- {
380
- tag: 'v5',
381
- engine: 'handlebars',
382
- mjml: '',
383
- createdAt: new Date('Mon, 20 Dec 2021 16:36:55 UTC'),
384
- comment: 'updated comment',
385
- active: false,
386
- id: 'someId2'
387
- }]
388
- }
389
- });
390
- });
391
- });
392
- });
@@ -1,32 +0,0 @@
1
- import APIError from '../lib/error';
2
- import APIErrorOptions from '../lib/interfaces/APIErrorOptions';
3
-
4
- describe('APIError', function () {
5
- let error;
6
-
7
- it('sets status', function () {
8
- error = new APIError({ status: 200 } as APIErrorOptions);
9
-
10
- error.status.should.eql(200);
11
- });
12
-
13
- it('sets message from message field', function () {
14
- error = new APIError({
15
- body: {
16
- message: 'oops. something went wrong'
17
- }
18
- } as APIErrorOptions);
19
-
20
- error.details.should.eql('oops. something went wrong');
21
- });
22
-
23
- it('sets message from error field', function () {
24
- error = new APIError({
25
- body: {
26
- error: 'oops. something went wrong'
27
- }
28
- } as APIErrorOptions);
29
-
30
- error.message.should.eql('oops. something went wrong');
31
- });
32
- });
@@ -1,104 +0,0 @@
1
- import nock from 'nock';
2
-
3
- import formData from 'form-data';
4
- import EventClient from '../lib/events';
5
- import MgRequest from '../lib/request';
6
- import RequestOptions from '../lib/interfaces/RequestOptions';
7
- import { InputFormData } from '../lib/interfaces/IFormData';
8
- import { EventsList, EventsResponse } from '../lib/interfaces/Events';
9
-
10
- describe('EventsClient', function () {
11
- let client: EventClient;
12
- let api: nock.Scope;
13
-
14
- beforeEach(function () {
15
- client = new EventClient(new MgRequest({ url: 'https://api.mailgun.net' } as RequestOptions, formData as InputFormData));
16
- api = nock('https://api.mailgun.net');
17
- });
18
-
19
- afterEach(function () {
20
- api.done();
21
- });
22
-
23
- describe('GET', function () {
24
- let response: any;
25
-
26
- beforeEach(function () {
27
- response = {
28
- items: [
29
- {
30
- event: 'accepted',
31
- timestamp: 'Wed, 19 Nov 2014 18:32:57 GMT',
32
- content: { more: 'data' }
33
- }, {
34
- event: 'opened',
35
- timestamp: 'Tue, 18 Nov 2014 12:32:57 GMT',
36
- content: { more: 'data' }
37
- }
38
- ],
39
- paging: {
40
- first: 'https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImEiOiBmYWxzZSwgImIiOiAiMjAxNC0xMS0xOVQyMDo1NjoyMS42NDAyMTErMDA6MDAifSwgWyJ4IiwgImUiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCBudWxsLCBbWyJkb21haW4ubmFtZSIsICJtYWlsZ3VuLmNvbSJdLCBbImFjY291bnQuaWQiLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dXQ==',
41
- last: 'https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImIiOiAiMTk3MC0wMS0wMVQwMDowMDowMCswMDowMCIsICJlIjogIjIwMTQtMTEtMTlUMjA6NTY6MjEuNjQwMjEyKzAwOjAwIn0sIFsieCIsICJlIiwgInAiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCBudWxsLCBbWyJkb21haW4ubmFtZSIsICJtYWlsZ3VuLmNvbSJdLCBbImFjY291bnQuaWQiLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dXQ==',
42
- next: 'https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImEiOiBmYWxzZSwgImIiOiAiMjAxNC0xMS0xNFQyMzowODowNC4yODUwMDArMDA6MDAifSwgWyJ4IiwgImUiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCAibWVzc2FnZSN5NXhkN0pqc1FadVlRQzUyenUyUGlnIiwgW1siZG9tYWluLm5hbWUiLCAibWFpbGd1bi5jb20iXSwgWyJhY2NvdW50LmlkIiwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSJdXV0=',
43
- previous: 'https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImIiOiAiMjAxNC0xMS0xOVQxODozMjo1Ny4wMTkwMDArMDA6MDAiLCAiZSI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MTIxMSswMDowMCJ9LCBbIngiLCAiZSIsICJwIiwgImYiXSwgbnVsbCwgW1sic2V2ZXJpdHkiLCAiTk9UIGludGVybmFsIl1dLCAyNSwgIm1lc3NhZ2Ujc3UxSk93N1dRX0dQXzVlRHg5am1tUSIsIFtbImRvbWFpbi5uYW1lIiwgIm1haWxndW4uY29tIl0sIFsiYWNjb3VudC5pZCIsICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiXV1d'
44
- }
45
- };
46
- });
47
-
48
- it('fetches all events', function () {
49
- api.get('/v3/domain.com/events').reply(200, response);
50
-
51
- return client.get('domain.com').then(function (data: EventsList) {
52
- let e;
53
-
54
- e = data.items[0];
55
- e.event.should.eql('accepted');
56
- e.timestamp.should.eql('Wed, 19 Nov 2014 18:32:57 GMT');
57
-
58
- e = data.items[1];
59
- e.event.should.eql('opened');
60
- e.timestamp.should.eql('Tue, 18 Nov 2014 12:32:57 GMT');
61
- });
62
- });
63
-
64
- it('fetches single page', function () {
65
- api.get('/v3/domain.com/events/pageId').reply(200, response);
66
-
67
- return client.get('domain.com', { page: 'pageId' }).then(function (data: EventsList) {
68
- let e;
69
-
70
- e = data.items[0];
71
- e.event.should.eql('accepted');
72
- e.timestamp.should.eql('Wed, 19 Nov 2014 18:32:57 GMT');
73
-
74
- e = data.items[1];
75
- e.event.should.eql('opened');
76
- e.timestamp.should.eql('Tue, 18 Nov 2014 12:32:57 GMT');
77
- });
78
- });
79
-
80
- it('parses page links', function () {
81
- api.get('/v3/domain.com/events').reply(200, response);
82
-
83
- return client.get('domain.com').then(function (data: EventsList) {
84
- let page;
85
-
86
- page = data.pages.first;
87
- page.url.should.eql('https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImEiOiBmYWxzZSwgImIiOiAiMjAxNC0xMS0xOVQyMDo1NjoyMS42NDAyMTErMDA6MDAifSwgWyJ4IiwgImUiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCBudWxsLCBbWyJkb21haW4ubmFtZSIsICJtYWlsZ3VuLmNvbSJdLCBbImFjY291bnQuaWQiLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dXQ==');
88
- page.number.should.eql('W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImEiOiBmYWxzZSwgImIiOiAiMjAxNC0xMS0xOVQyMDo1NjoyMS42NDAyMTErMDA6MDAifSwgWyJ4IiwgImUiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCBudWxsLCBbWyJkb21haW4ubmFtZSIsICJtYWlsZ3VuLmNvbSJdLCBbImFjY291bnQuaWQiLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dXQ==');
89
-
90
- page = data.pages.last;
91
- page.url.should.eql('https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImIiOiAiMTk3MC0wMS0wMVQwMDowMDowMCswMDowMCIsICJlIjogIjIwMTQtMTEtMTlUMjA6NTY6MjEuNjQwMjEyKzAwOjAwIn0sIFsieCIsICJlIiwgInAiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCBudWxsLCBbWyJkb21haW4ubmFtZSIsICJtYWlsZ3VuLmNvbSJdLCBbImFjY291bnQuaWQiLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dXQ==');
92
- page.number.should.eql('W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImIiOiAiMTk3MC0wMS0wMVQwMDowMDowMCswMDowMCIsICJlIjogIjIwMTQtMTEtMTlUMjA6NTY6MjEuNjQwMjEyKzAwOjAwIn0sIFsieCIsICJlIiwgInAiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCBudWxsLCBbWyJkb21haW4ubmFtZSIsICJtYWlsZ3VuLmNvbSJdLCBbImFjY291bnQuaWQiLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dXQ==');
93
-
94
- page = data.pages.next;
95
- page.url.should.eql('https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImEiOiBmYWxzZSwgImIiOiAiMjAxNC0xMS0xNFQyMzowODowNC4yODUwMDArMDA6MDAifSwgWyJ4IiwgImUiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCAibWVzc2FnZSN5NXhkN0pqc1FadVlRQzUyenUyUGlnIiwgW1siZG9tYWluLm5hbWUiLCAibWFpbGd1bi5jb20iXSwgWyJhY2NvdW50LmlkIiwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSJdXV0=');
96
- page.number.should.eql('W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImEiOiBmYWxzZSwgImIiOiAiMjAxNC0xMS0xNFQyMzowODowNC4yODUwMDArMDA6MDAifSwgWyJ4IiwgImUiLCAiZiJdLCBudWxsLCBbWyJzZXZlcml0eSIsICJOT1QgaW50ZXJuYWwiXV0sIDI1LCAibWVzc2FnZSN5NXhkN0pqc1FadVlRQzUyenUyUGlnIiwgW1siZG9tYWluLm5hbWUiLCAibWFpbGd1bi5jb20iXSwgWyJhY2NvdW50LmlkIiwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSJdXV0=');
97
-
98
- page = data.pages.previous;
99
- page.url.should.eql('https://api.mailgun.net/v2/mailgun.com/events/W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImIiOiAiMjAxNC0xMS0xOVQxODozMjo1Ny4wMTkwMDArMDA6MDAiLCAiZSI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MTIxMSswMDowMCJ9LCBbIngiLCAiZSIsICJwIiwgImYiXSwgbnVsbCwgW1sic2V2ZXJpdHkiLCAiTk9UIGludGVybmFsIl1dLCAyNSwgIm1lc3NhZ2Ujc3UxSk93N1dRX0dQXzVlRHg5am1tUSIsIFtbImRvbWFpbi5uYW1lIiwgIm1haWxndW4uY29tIl0sIFsiYWNjb3VudC5pZCIsICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiXV1d');
100
- page.number.should.eql('W3siYSI6IGZhbHNlLCAiYiI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MDIxMSswMDowMCJ9LCB7ImIiOiAiMjAxNC0xMS0xOVQxODozMjo1Ny4wMTkwMDArMDA6MDAiLCAiZSI6ICIyMDE0LTExLTE5VDIwOjU2OjIxLjY0MTIxMSswMDowMCJ9LCBbIngiLCAiZSIsICJwIiwgImYiXSwgbnVsbCwgW1sic2V2ZXJpdHkiLCAiTk9UIGludGVybmFsIl1dLCAyNSwgIm1lc3NhZ2Ujc3UxSk93N1dRX0dQXzVlRHg5am1tUSIsIFtbImRvbWFpbi5uYW1lIiwgIm1haWxndW4uY29tIl0sIFsiYWNjb3VudC5pZCIsICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiXV1d');
101
- });
102
- });
103
- });
104
- });
Binary file
package/test/ips.test.ts DELETED
@@ -1,57 +0,0 @@
1
- // const formData = require('form-data');
2
-
3
- import nock from 'nock';
4
- import formData from 'form-data';
5
- import Request from '../lib/request';
6
- import RequestOptions from '../lib/interfaces/RequestOptions';
7
- import IpsClient from '../lib/ips';
8
-
9
- import { IpData, IpsListResponseBody } from '../lib/interfaces/Ips';
10
- import { InputFormData } from '../lib/interfaces/IFormData';
11
-
12
- // TODO: fix types
13
- describe('DomainClient', function () {
14
- let client: any;
15
- let api: any;
16
-
17
- beforeEach(function () {
18
- client = new IpsClient(new Request({ url: 'https://api.mailgun.net' } as RequestOptions, formData as InputFormData));
19
- api = nock('https://api.mailgun.net');
20
- });
21
-
22
- afterEach(function () {
23
- api.done();
24
- });
25
-
26
- describe('list', function () {
27
- it('fetches all ips', async function () {
28
- const ips: IpsListResponseBody[] = [{
29
- assignable_to_pools: true,
30
- items: ['127.0.0.1', '192.168.0.1'],
31
- total_count: 2
32
- }];
33
-
34
- api.get('/v3/ips').reply(200, ips);
35
-
36
- const res: IpsListResponseBody = await client.list();
37
- res.should.eql(ips);
38
- });
39
- });
40
-
41
- describe('get', function () {
42
- it('fetches an ip data', async function () {
43
- const ip = '127.0.0.1';
44
-
45
- const ips: IpData = {
46
- ip,
47
- dedicated: true,
48
- rdns: 'test.rdns'
49
- };
50
-
51
- api.get(`/v3/ips/${ip}`).reply(200, ips);
52
-
53
- const res: IpData = await client.get(ip);
54
- res.should.eql(ips);
55
- });
56
- });
57
- });
@@ -1,100 +0,0 @@
1
- import nock from 'nock';
2
- import formData from 'form-data';
3
-
4
- import Request from '../lib/request';
5
- import ListsClient from '../lib/lists';
6
- import RequestOptions from '../lib/interfaces/RequestOptions';
7
- import MailListMembers from '../lib/mailListMembers';
8
- import { MailingList } from '../lib/interfaces/lists';
9
- import { InputFormData } from '../lib/interfaces/IFormData';
10
-
11
- describe('ListsClient', function () {
12
- let client: any;
13
- let api: any;
14
- let defaultList : MailingList;
15
-
16
- beforeEach(function () {
17
- const reqObject = new Request({ url: 'https://api.mailgun.net' } as RequestOptions, formData as InputFormData);
18
- const mailListMembers = new MailListMembers(reqObject);
19
- client = new ListsClient(reqObject, mailListMembers);
20
- api = nock('https://api.mailgun.net');
21
- defaultList = {
22
- access_level: 'readonly',
23
- address: 'test@testdomain.com',
24
- created_at: 'Thu, 01 Nov 2018 20:39:43 -0000',
25
- description: 'stuff',
26
- members_count: 1,
27
- name: '123',
28
- reply_preference: null
29
- } as MailingList;
30
- });
31
-
32
- afterEach(function () {
33
- api.done();
34
- });
35
-
36
- describe('list', function () {
37
- it('fetches all mail lists', function () {
38
- const lists = [defaultList];
39
-
40
- api.get('/v3/lists/pages').reply(200, {
41
- items: lists
42
- });
43
-
44
- return client.list().then(function (listsRes: MailingList[]) {
45
- listsRes[0].should.eql(defaultList);
46
- });
47
- });
48
- });
49
-
50
- describe('get', function () {
51
- it('gets a specific mailing list', function () {
52
- api.get('/v3/lists/testing.example.com').reply(200, {
53
- list: defaultList
54
- });
55
-
56
- return client.get('testing.example.com').then(function (list: any) {
57
- list.should.eql(defaultList);
58
- });
59
- });
60
- });
61
-
62
- describe('create', function () {
63
- it('creates the list', function () {
64
- api.post('/v3/lists').reply(200, {
65
- list: defaultList
66
- });
67
-
68
- return client.create({ name: 'another.example.com' }).then(function (newList: any) {
69
- newList.should.eql(defaultList);
70
- });
71
- });
72
- });
73
-
74
- describe('destroy', function () {
75
- it('deletes the list', function () {
76
- api.delete('/v3/lists/test.example.com').reply(200, {
77
- address: 'test.example.com',
78
- message: 'list deleted'
79
- });
80
-
81
- return client.destroy('test.example.com').then(function (data: any) {
82
- data.should.eql({
83
- address: 'test.example.com',
84
- message: 'list deleted'
85
- });
86
- });
87
- });
88
- });
89
-
90
- describe('update', function () {
91
- it('updates the list', function () {
92
- api.put('/v3/lists/test@example.com').reply(200, {
93
- list: defaultList
94
- });
95
- return client.update('test@example.com', { name: 'another name' }).then(function (data: any) {
96
- data.should.eql(defaultList);
97
- });
98
- });
99
- });
100
- });