UNPKG

4.28 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 describe("statuses", () => {
21 it("401", () => {
22 const errorHandler = new ErrorHandler();
23
24 const error: any = {
25 response: {
26 data: {
27 Message: "Test message",
28 ErrorCode: 401,
29 },
30 status: 401,
31 }
32 };
33
34 const postmarkError = errorHandler.buildRequestError(error);
35 expect(postmarkError).to.be.an.instanceof(Errors.InvalidAPIKeyError);
36 expect(postmarkError.name).to.equal("InvalidAPIKeyError");
37 expect(postmarkError.message).to.equal(error.response.data.Message);
38 });
39
40 it("422", () => {
41 const errorHandler = new ErrorHandler();
42
43 const error: any = {
44 response: {
45 data: {
46 Message: "Test message",
47 ErrorCode: 422,
48 },
49 status: 422,
50 }
51 };
52
53 const postmarkError = errorHandler.buildRequestError(error);
54 expect(postmarkError).to.be.an.instanceof(Errors.ApiInputError);
55 expect(postmarkError.name).to.equal("ApiInputError");
56 expect(postmarkError.message).to.equal(error.response.data.Message);
57 });
58
59 it("500", () => {
60 const errorHandler = new ErrorHandler();
61
62 const error: any = {
63 response: {
64 data: {
65 Message: "Test message",
66 ErrorCode: 500,
67 },
68 status: 500,
69 }
70 };
71
72 const postmarkError = errorHandler.buildRequestError(error);
73 expect(postmarkError).to.be.an.instanceof(Errors.InternalServerError);
74 expect(postmarkError.name).to.equal("InternalServerError");
75 expect(postmarkError.message).to.equal(error.response.data.Message);
76 });
77
78 it("unknown", () => {
79 const errorHandler = new ErrorHandler();
80
81 const error: any = {
82 response: {
83 data: {
84 Message: "Test message",
85 ErrorCode: 600,
86 },
87 status: 600,
88 }
89 };
90
91 const postmarkError = errorHandler.buildRequestError(error);
92 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
93 expect(postmarkError.name).to.equal("UnknownError");
94 expect(postmarkError.message).to.equal(error.response.data.Message);
95 });
96
97 it("no status", () => {
98 const errorHandler = new ErrorHandler();
99
100 const error: any = {
101 response: {
102 data: {
103 Message: "Test message"
104 }
105 }
106 };
107
108 const postmarkError = errorHandler.buildRequestError(error);
109 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
110 expect(postmarkError.name).to.equal("UnknownError");
111 expect(postmarkError.message).to.equal(error.response.data.Message);
112 });
113
114 it("postmark default error", () => {
115 const errorHandler = new ErrorHandler();
116
117 const postmarkError = errorHandler.buildGeneralError("Test message");
118 expect(postmarkError).to.be.an.instanceof(Errors.PostmarkError);
119 expect(postmarkError.name).to.equal("PostmarkError");
120 expect(postmarkError.message).to.equal("Test message");
121 });
122 });
123});