1 | import { expect } from "chai";
|
2 | import "mocha";
|
3 | import { CreateSignatureRequest } from "../../src/client/models";
|
4 | import * as postmark from "../../src/index";
|
5 |
|
6 | import * as nconf from "nconf";
|
7 | const testingKeys = nconf.env().file({ file: __dirname + "/../../testing_keys.json" });
|
8 |
|
9 | describe("Client - Signatures", () => {
|
10 | const accountToken: string = testingKeys.get("ACCOUNT_TOKEN");
|
11 | const testDomainName: string = testingKeys.get("DOMAIN_NAME");
|
12 | const client: postmark.AccountClient = new postmark.AccountClient(accountToken);
|
13 | const domainName: string = testDomainName;
|
14 |
|
15 | function signatureToTest() {
|
16 | return new CreateSignatureRequest("John Smith", `mailing+${Date.now()}@${domainName}`);
|
17 | }
|
18 |
|
19 | async function cleanup() {
|
20 | const domains = await client.getDomains();
|
21 |
|
22 | for (const domain of domains.Domains) {
|
23 | if (domain.Name.includes(domainName)) { await client.deleteDomain(domain.ID); }
|
24 | }
|
25 | }
|
26 |
|
27 | before(cleanup);
|
28 | after(cleanup);
|
29 |
|
30 | it("createSenderSignature", async () => {
|
31 | const signatureOptions = signatureToTest();
|
32 |
|
33 | const signatureDetails = await client.createSenderSignature(signatureOptions);
|
34 | expect(signatureDetails.EmailAddress).to.equal(signatureOptions.FromEmail);
|
35 | });
|
36 |
|
37 | it("getSenderSignatures", async () => {
|
38 | const signatures = await client.getSenderSignatures();
|
39 | expect(signatures.TotalCount).to.gte(0);
|
40 | });
|
41 |
|
42 | it("getSenderSignature", async () => {
|
43 | const signatureOptions = signatureToTest();
|
44 | const signature = await client.createSenderSignature(signatureOptions);
|
45 |
|
46 | const signatureDetails = await client.getSenderSignature(signature.ID);
|
47 | expect(signatureDetails.EmailAddress).to.equal(signatureOptions.FromEmail);
|
48 | });
|
49 |
|
50 | it("editSenderSignature", async () => {
|
51 | const editName = "Updated name";
|
52 | const signatureOptions = signatureToTest();
|
53 | const signature = await client.createSenderSignature(signatureOptions);
|
54 |
|
55 | const signatureDetails = await client.editSenderSignature(signature.ID, { Name: editName });
|
56 | expect(signatureDetails.Name).to.equal(editName);
|
57 | });
|
58 |
|
59 | it("deleteSenderSignature", async () => {
|
60 | const signatureOptions = signatureToTest();
|
61 | const signature = await client.createSenderSignature(signatureOptions);
|
62 |
|
63 | const result: postmark.Models.DefaultResponse = await client.deleteSenderSignature(signature.ID);
|
64 | expect(result.Message.length).to.above(0);
|
65 | });
|
66 |
|
67 | it("resendSenderSignatureConfirmation", async () => {
|
68 | const signatureOptions = signatureToTest();
|
69 | const signature = await client.createSenderSignature(signatureOptions);
|
70 |
|
71 | const result: postmark.Models.DefaultResponse = await client.resendSenderSignatureConfirmation(signature.ID);
|
72 | expect(result.Message.length).to.above(0);
|
73 | });
|
74 |
|
75 | it("resendSenderSignatureConfirmation", async () => {
|
76 | const signatureOptions = signatureToTest();
|
77 | const signature = await client.createSenderSignature(signatureOptions);
|
78 |
|
79 | const signatureDetails = await client.verifySenderSignatureSPF(signature.ID);
|
80 | expect(signatureDetails.ID).to.eq(signature.ID);
|
81 | });
|
82 | });
|