1 | import { expect } from "chai";
|
2 | import "mocha";
|
3 | import {MessageStream, MessageStreamArchiveResponse, MessageStreams, MessageStreamUnarchiveResponse} 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("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 | });
|