UNPKG

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