UNPKG

1.96 kBPlain TextView Raw
1import { expect } from "chai";
2import "mocha";
3import { CreateInboundRuleRequest } from "../../src/client/models";
4import * as postmark from "../../src/index";
5
6import * as nconf from "nconf";
7const testingKeys = nconf.env().file({ file: __dirname + "/../../testing_keys.json" });
8
9describe("Client - Triggers", () => {
10 const serverToken: string = testingKeys.get("SERVER_API_TOKEN");
11 const client = new postmark.ServerClient(serverToken);
12 const triggerName: string = "node-js";
13
14 function inboundRuleTriggerToTest() {
15 return new CreateInboundRuleRequest(`${triggerName}-${Date.now()}.com`);
16 }
17
18 async function cleanupInboundRuleTriggers() {
19 const inboundRuleTriggers = await client.getInboundRuleTriggers();
20
21 for (const inboundRuleTrigger of inboundRuleTriggers.InboundRules) {
22 if (inboundRuleTrigger.Rule.includes(triggerName)) {
23 await client.deleteInboundRuleTrigger(inboundRuleTrigger.ID);
24 }
25 }
26 }
27
28 async function cleanup() {
29 await cleanupInboundRuleTriggers();
30 }
31
32 before(cleanup);
33 after(cleanup);
34
35 it("createInboundRuleTrigger", async () => {
36 const inboundRuleTriggerOptions = inboundRuleTriggerToTest();
37 const result = await client.createInboundRuleTrigger(inboundRuleTriggerOptions);
38 expect(result.Rule).to.equal(inboundRuleTriggerOptions.Rule);
39 });
40
41 it("getInboundRuleTriggers", async () => {
42 const inboundRules = await client.getInboundRuleTriggers();
43 expect(inboundRules.InboundRules.length).to.gte(0);
44 });
45
46 it("deleteInboundRuleTrigger", async () => {
47 const inboundRuleTriggerOptions = inboundRuleTriggerToTest();
48 const inboundRule = await client.createInboundRuleTrigger(inboundRuleTriggerOptions);
49
50 const response = await client.deleteInboundRuleTrigger(inboundRule.ID);
51 expect(response.Message.length).to.above(0);
52 });
53});