mailgun.js 5.0.1 → 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 (314) hide show
  1. package/CHANGELOG.md +30 -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 -83
  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} +32 -53
  18. package/{lib/interfaces/Events.ts → interfaces/Events.d.ts} +11 -12
  19. package/interfaces/IFormData.d.ts +7 -0
  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 -3
  41. package/messages.d.ts +9 -0
  42. package/multipleValidation.d.ts +10 -0
  43. package/package.json +9 -83
  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 -1572
  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 -17
  270. package/lib/interfaces/APIErrorOptions.ts +0 -10
  271. package/lib/interfaces/IFormData.ts +0 -9
  272. package/lib/interfaces/IpPools.ts +0 -22
  273. package/lib/interfaces/Ips.ts +0 -12
  274. package/lib/interfaces/Options.ts +0 -10
  275. package/lib/interfaces/StatsOptions.ts +0 -23
  276. package/lib/interfaces/Supressions.ts +0 -86
  277. package/lib/ip-pools.ts +0 -36
  278. package/lib/ips.ts +0 -24
  279. package/lib/lists.ts +0 -45
  280. package/lib/mailListMembers.ts +0 -83
  281. package/lib/messages.ts +0 -27
  282. package/lib/multipleValidation.ts +0 -37
  283. package/lib/request.ts +0 -271
  284. package/lib/routes.ts +0 -37
  285. package/lib/stats.ts +0 -62
  286. package/lib/suppressions.ts +0 -198
  287. package/lib/validate.ts +0 -20
  288. package/lib/webhooks.ts +0 -83
  289. package/test/client.test.ts +0 -96
  290. package/test/data/emailsValidation1.csv +0 -3
  291. package/test/domains.test.ts +0 -313
  292. package/test/domainsCredentials.test.ts +0 -97
  293. package/test/domainsTags.test.ts +0 -345
  294. package/test/domainsTemplates.test.ts +0 -392
  295. package/test/error.test.ts +0 -32
  296. package/test/events.test.ts +0 -104
  297. package/test/img/mailgun.png +0 -0
  298. package/test/ips.test.ts +0 -57
  299. package/test/lists.test.ts +0 -100
  300. package/test/mailListMembers.test.ts +0 -198
  301. package/test/messageAttachment.test.ts +0 -50
  302. package/test/messages.test.ts +0 -89
  303. package/test/multipleValidation.test.ts +0 -159
  304. package/test/request.test.ts +0 -103
  305. package/test/routes.test.ts +0 -136
  306. package/test/stats.test.ts +0 -90
  307. package/test/suppressions.test.ts +0 -219
  308. package/test/validate.test.ts +0 -43
  309. package/test/webhooks.test.ts +0 -112
  310. package/tsconfig.json +0 -22
  311. package/tsconfig.webpack.json +0 -10
  312. package/webpack/webpack.common.config.js +0 -47
  313. package/webpack/webpack.dev.config.js +0 -28
  314. package/webpack/webpack.release.config.js +0 -37
@@ -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
- });