UNPKG

3.41 kBPlain TextView Raw
1import { expect } from "chai";
2import "mocha";
3import {MessageStream, MessageStreamArchiveResponse, MessageStreams, MessageStreamUnarchiveResponse} 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("Servers - Message Streams", () => {
10 const serverNamePrefix: string = "node-js-test-message-streams";
11 const accountToken: string = testingKeys.get("ACCOUNT_API_TOKEN");
12 const accountClient = new postmark.AccountClient(accountToken);
13
14 async function serverToTestApiToken() {
15 const server: postmark.Models.Server = await accountClient.createServer({Name: `${serverNamePrefix}-${Date.now()}`});
16 return server.ApiTokens[0];
17 }
18
19 async function deleteServers() {
20 const servers = await accountClient.getServers();
21
22 for (const server of servers.Servers) {
23 if (server.Name.includes(serverNamePrefix)) { await accountClient.deleteServer(server.ID); }
24 }
25 }
26
27 before(deleteServers);
28 after(deleteServers);
29
30 it("message streams", async () => {
31 const apiToken: string = await serverToTestApiToken();
32 const client = new postmark.ServerClient(apiToken);
33 const streams: MessageStreams = await client.getMessageStreams();
34 expect(streams.TotalCount).to.gte(2);
35 });
36
37 it("message stream", async () => {
38 const apiToken: string = await serverToTestApiToken();
39 const client = new postmark.ServerClient(apiToken);
40 const streams: MessageStream = await client.getMessageStream("outbound");
41 expect(streams.ID).to.eq("outbound");
42 });
43
44 it("create message stream", async () => {
45 const apiToken: string = await serverToTestApiToken();
46 const client = new postmark.ServerClient(apiToken);
47 const streams: MessageStream = await client.createMessageStream({Name: "test", ID: "test",
48 Description: "test description", MessageStreamType: "Transactional"});
49 const streamsToCount: MessageStreams = await client.getMessageStreams();
50
51 expect(streams.Description).to.eq("test description");
52 expect(streamsToCount.TotalCount).to.eq(3);
53 });
54
55 it("archive message stream", async () => {
56 const streamToCreateID: string = "test";
57 const apiToken: string = await serverToTestApiToken();
58 const client = new postmark.ServerClient(apiToken);
59 await client.createMessageStream({Name: "test", ID: streamToCreateID, Description: "test description", MessageStreamType: "Transactional"});
60 const response: MessageStreamArchiveResponse = await client.archiveMessageStream(streamToCreateID);
61
62 expect(response.ID).to.eq(streamToCreateID);
63 });
64
65 it("unarchive message stream", async () => {
66 const streamToCreateID: string = "test";
67 const apiToken: string = await serverToTestApiToken();
68 const client = new postmark.ServerClient(apiToken);
69 await client.createMessageStream({Name: "test", ID: streamToCreateID, Description: "test description", MessageStreamType: "Transactional"});
70 await client.archiveMessageStream(streamToCreateID);
71 const responseUnarchive: MessageStreamUnarchiveResponse = await client.unarchiveMessageStream(streamToCreateID);
72
73 expect(responseUnarchive.MessageStreamType).to.eq("Transactional");
74 });
75});