UNPKG

5.11 kBPlain TextView Raw
1import { Errors } from "../../src";
2import { ErrorHandler } from "../../src/client/ErrorHandler";
3
4import { expect } from "chai";
5import "mocha";
6
7describe("ErrorHandler", () => {
8 it("buildGeneralError", () => {
9 const errorHandler = new ErrorHandler();
10
11 const error = new Error();
12 error.name = "Test name";
13 error.message = "Test message";
14
15 const postmarkError = errorHandler.buildGeneralError("Test message");
16 expect(postmarkError.message).to.equal(error.message);
17 expect(postmarkError.name).to.equal("PostmarkError");
18 });
19
20 it("no response", () => {
21 const errorHandler = new ErrorHandler();
22 const error: any = { message: 'Hello Error' };
23
24 const postmarkError = errorHandler.buildRequestError(error);
25 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
26 expect(postmarkError.name).to.equal("PostmarkError");
27 expect(postmarkError.message).to.equal(error.message);
28 });
29
30 it("no message", () => {
31 const errorHandler = new ErrorHandler();
32 const error: any = { stack: 'Hello stack' };
33
34 const postmarkError = errorHandler.buildRequestError(error);
35 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
36 expect(postmarkError.name).to.equal("PostmarkError");
37 expect(postmarkError.message).to.equal(JSON.stringify(error));
38 });
39
40 describe("statuses", () => {
41 it("401", () => {
42 const errorHandler = new ErrorHandler();
43
44 const error: any = {
45 response: {
46 data: {
47 Message: "Test message",
48 ErrorCode: 401,
49 },
50 status: 401,
51 }
52 };
53
54 const postmarkError = errorHandler.buildRequestError(error);
55 expect(postmarkError).to.be.an.instanceof(Errors.InvalidAPIKeyError);
56 expect(postmarkError.name).to.equal("InvalidAPIKeyError");
57 expect(postmarkError.message).to.equal(error.response.data.Message);
58 });
59
60 it("422", () => {
61 const errorHandler = new ErrorHandler();
62
63 const error: any = {
64 response: {
65 data: {
66 Message: "Test message",
67 ErrorCode: 422,
68 },
69 status: 422,
70 }
71 };
72
73 const postmarkError = errorHandler.buildRequestError(error);
74 expect(postmarkError).to.be.an.instanceof(Errors.ApiInputError);
75 expect(postmarkError.name).to.equal("ApiInputError");
76 expect(postmarkError.message).to.equal(error.response.data.Message);
77 });
78
79 it("500", () => {
80 const errorHandler = new ErrorHandler();
81
82 const error: any = {
83 response: {
84 data: {
85 Message: "Test message",
86 ErrorCode: 500,
87 },
88 status: 500,
89 }
90 };
91
92 const postmarkError = errorHandler.buildRequestError(error);
93 expect(postmarkError).to.be.an.instanceof(Errors.InternalServerError);
94 expect(postmarkError.name).to.equal("InternalServerError");
95 expect(postmarkError.message).to.equal(error.response.data.Message);
96 });
97
98 it("unknown", () => {
99 const errorHandler = new ErrorHandler();
100
101 const error: any = {
102 response: {
103 data: {
104 Message: "Test message",
105 ErrorCode: 600,
106 },
107 status: 600,
108 }
109 };
110
111 const postmarkError = errorHandler.buildRequestError(error);
112 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
113 expect(postmarkError.name).to.equal("UnknownError");
114 expect(postmarkError.message).to.equal(error.response.data.Message);
115 });
116
117 it("no status", () => {
118 const errorHandler = new ErrorHandler();
119
120 const error: any = {
121 response: {
122 data: {
123 Message: "Test message"
124 }
125 }
126 };
127
128 const postmarkError = errorHandler.buildRequestError(error);
129 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
130 expect(postmarkError.name).to.equal("UnknownError");
131 expect(postmarkError.message).to.equal(error.response.data.Message);
132 });
133
134 it("postmark default error", () => {
135 const errorHandler = new ErrorHandler();
136
137 const postmarkError = errorHandler.buildGeneralError("Test message");
138 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
139 expect(postmarkError.name).to.equal("PostmarkError");
140 expect(postmarkError.message).to.equal("Test message");
141 });
142 });
143});