1 | const fs = require("fs-extra");
|
2 | const path = require("path");
|
3 | const Logger = require("../src/logger");
|
4 | const { classLabel } = require("./testUtils");
|
5 |
|
6 | const logger = new Logger({ path: "__tests__", appName: "logger-test" });
|
7 | const filename = logger.file;
|
8 |
|
9 | const dataValidationRule = (entry, data) => {
|
10 | if (data === null) {
|
11 | return;
|
12 | }
|
13 | expect(data.length).toBeGreaterThan(0);
|
14 | const test = data.match(entry);
|
15 | if (test === null) {
|
16 | return;
|
17 | }
|
18 | expect(test.length).toBeGreaterThan(0);
|
19 | };
|
20 |
|
21 | async function asyncLogger(type, msg) {
|
22 | return await logger[type](msg);
|
23 | }
|
24 |
|
25 | describe(classLabel("Logger"), () => {
|
26 | beforeEach(done => {
|
27 | logger.log("beforeEach");
|
28 | done();
|
29 | });
|
30 | afterAll(done => {
|
31 | fs.unlink(filename);
|
32 | done();
|
33 | });
|
34 | test("should validate existensce of `logs` direcotry", done => {
|
35 | let result = fs.existsSync(path.dirname(logger.file));
|
36 | expect(result).toEqual(true);
|
37 | done();
|
38 | });
|
39 | test("should create log file", done => {
|
40 | fs.exists(filename)
|
41 | .then(result => {
|
42 | expect(true).toBe(true);
|
43 | done();
|
44 | })
|
45 | .catch(err => {
|
46 | console.error(err);
|
47 | done();
|
48 | });
|
49 | });
|
50 | test("should create `log` entry", done => {
|
51 | asyncLogger("log", "log entry")
|
52 | .then(result => {
|
53 | done();
|
54 | fs.readFile(filename, "utf8")
|
55 | .then(data => {
|
56 | dataValidationRule("log entry", data);
|
57 | })
|
58 | .catch(err => {
|
59 | console.error(err);
|
60 | });
|
61 | })
|
62 | .catch(err => {
|
63 | console.log(err);
|
64 | });
|
65 | });
|
66 | test("should create `debug` entry", done => {
|
67 | asyncLogger("debug", "debug entry")
|
68 | .then(result => {
|
69 | done();
|
70 | fs.readFile(filename, "utf8")
|
71 | .then(data => {
|
72 | dataValidationRule("debug entry", data);
|
73 | })
|
74 | .catch(err => {
|
75 | console.error(err);
|
76 | });
|
77 | })
|
78 | .catch(err => {
|
79 | console.log(err);
|
80 | });
|
81 | });
|
82 | test("should create `critical` entry", done => {
|
83 | asyncLogger("critical", "critical entry")
|
84 | .then(result => {
|
85 | done();
|
86 | fs.readFile(filename, "utf8")
|
87 | .then(data => {
|
88 | dataValidationRule("critical entry", data);
|
89 | })
|
90 | .catch(err => {
|
91 | console.error(err);
|
92 | });
|
93 | })
|
94 | .catch(err => {
|
95 | console.log(err);
|
96 | });
|
97 | });
|
98 | test("should create `error` entry", done => {
|
99 | asyncLogger("error", "error entry")
|
100 | .then(result => {
|
101 | done();
|
102 | fs.readFile(filename, "utf8")
|
103 | .then(data => {
|
104 | dataValidationRule("log entry", data);
|
105 | })
|
106 | .catch(err => {
|
107 | console.error(err);
|
108 | });
|
109 | })
|
110 | .catch(err => {
|
111 | console.log(err);
|
112 | });
|
113 | });
|
114 | test("should create `success` entry", done => {
|
115 | asyncLogger("success", "success entry")
|
116 | .then(result => {
|
117 | done();
|
118 | fs.readFile(filename, "utf8")
|
119 | .then(data => {
|
120 | dataValidationRule("success entry", data);
|
121 | })
|
122 | .catch(err => {
|
123 | console.error(err);
|
124 | });
|
125 | })
|
126 | .catch(err => {
|
127 | console.log(err);
|
128 | });
|
129 | });
|
130 | test("should create `warn` entry", done => {
|
131 | asyncLogger("warn", "warn entry")
|
132 | .then(result => {
|
133 | done();
|
134 | fs.readFile(filename, "utf8")
|
135 | .then(data => {
|
136 | dataValidationRule("warn entry", data);
|
137 | })
|
138 | .catch(err => {
|
139 | console.error(err);
|
140 | });
|
141 | })
|
142 | .catch(err => {
|
143 | console.log(err);
|
144 | });
|
145 | });
|
146 | test("should create `warning` entry", done => {
|
147 | asyncLogger("warning", "warning entry")
|
148 | .then(result => {
|
149 | done();
|
150 | fs.readFile(filename, "utf8")
|
151 | .then(data => {
|
152 | dataValidationRule("warning entry", data);
|
153 | })
|
154 | .catch(err => {
|
155 | console.error(err);
|
156 | });
|
157 | })
|
158 | .catch(err => {
|
159 | console.log(err);
|
160 | });
|
161 | });
|
162 | test("should create `warn` entry", done => {
|
163 | asyncLogger("warn", "warn entry")
|
164 | .then(result => {
|
165 | done();
|
166 | fs.readFile(filename, "utf8")
|
167 | .then(data => {
|
168 | dataValidationRule("warn entry", data);
|
169 | })
|
170 | .catch(err => {
|
171 | console.error(err);
|
172 | });
|
173 | })
|
174 | .catch(err => {
|
175 | console.log(err);
|
176 | });
|
177 | });
|
178 | test("should create `info` entry", done => {
|
179 | asyncLogger("info", "info entry")
|
180 | .then(result => {
|
181 | done();
|
182 | fs.readFile(filename, "utf8")
|
183 | .then(data => {
|
184 | dataValidationRule("info entry", data);
|
185 | })
|
186 | .catch(err => {
|
187 | console.error(err);
|
188 | });
|
189 | })
|
190 | .catch(err => {
|
191 | console.log(err);
|
192 | });
|
193 | });
|
194 | test("should create `notice` entry", done => {
|
195 | asyncLogger("notice", "notice entry")
|
196 | .then(result => {
|
197 | done();
|
198 | fs.readFile(filename, "utf8")
|
199 | .then(data => {
|
200 | dataValidationRule("notice entry", data);
|
201 | })
|
202 | .catch(err => {
|
203 | console.error(err);
|
204 | });
|
205 | })
|
206 | .catch(err => {
|
207 | console.log(err);
|
208 | });
|
209 | });
|
210 | test("should create `note` entry", done => {
|
211 | asyncLogger("note", "note entry")
|
212 | .then(result => {
|
213 | done();
|
214 | fs.readFile(filename, "utf8")
|
215 | .then(data => {
|
216 | dataValidationRule("note entry", data);
|
217 | })
|
218 | .catch(err => {
|
219 | console.error(err);
|
220 | });
|
221 | })
|
222 | .catch(err => {
|
223 | console.log(err);
|
224 | });
|
225 | });
|
226 | });
|