Select Git revision
index.test.js
-
Sigmund, Dominik authoredSigmund, Dominik authored
index.test.js 9.30 KiB
/* global it, describe, beforeEach, afterEach */
const assert = require('assert')
const os = require('os')
const path = require('path')
const fs = require('fs')
const LOG = require('./index')
const hostname = os.hostname()
function getDate () {
var tzoffset = (new Date()).getTimezoneOffset() * 60000 // offset in milliseconds
var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1)
return localISOTime.split('.')[0].trim()
}
const manualhostname = 'testhost'
const name = 'testapp'
let file = 'testfile'
const filePath = '/tmp'
let orginialFile
let log
let line
let testline
describe('@br/Log', () => {
describe(': No Options', () => {
beforeEach(() => {
console.log('create Object')
log = new LOG()
})
afterEach(() => {
console.log('destroy Object')
log = undefined
})
describe(': Info', () => {
it('should output empty line - standard log-level without options is warn', () => {
line = log.info('testline')
assert.equal(line, '')
})
})
describe(': Notice', () => {
it('should output empty line - standard log-level without options is warn', () => {
line = log.notice('testline')
assert.equal(line, '')
})
})
describe(': Warn', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tWARN\ttestline'
line = log.warn('testline')
assert.equal(line, testline)
})
})
describe(': Error', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tERROR\ttestline'
line = log.error('testline')
assert.equal(line, testline)
})
})
describe(': Fatal', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tFATAL\ttestline'
line = log.fatal('testline')
assert.equal(line, testline)
})
})
describe(': Debug', () => {
it('should output the given Line', () => {
line = log.debug('testline')
assert.equal(line, '')
})
})
})
describe(': Hostname Set', () => {
beforeEach(() => {
console.log('create Object')
log = new LOG({
hostname: manualhostname
})
})
afterEach(() => {
console.log('destroy Object')
log = undefined
})
describe(': Info', () => {
it('should output the given Line', () => {
line = log.info('testline')
assert.equal(line, '')
})
})
describe(': Notice', () => {
it('should output the given Line', () => {
line = log.notice('testline')
assert.equal(line, '')
})
})
describe(': Warn', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + manualhostname + '\t@br/log\tWARN\ttestline'
line = log.warn('testline')
assert.equal(line, testline)
})
})
describe(': Error', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + manualhostname + '\t@br/log\tERROR\ttestline'
line = log.error('testline')
assert.equal(line, testline)
})
})
describe(': Fatal', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + manualhostname + '\t@br/log\tFATAL\ttestline'
line = log.fatal('testline')
assert.equal(line, testline)
})
})
describe(': Debug', () => {
it('should output the given Line', () => {
line = log.debug('testline')
assert.equal(line, '')
})
})
})
describe(': Name Set', () => {
beforeEach(() => {
console.log('create Object')
log = new LOG({
name: name
})
})
afterEach(() => {
console.log('destroy Object')
log = undefined
})
describe(': Info', () => {
it('should output the given Line', () => {
line = log.info('testline')
assert.equal(line, '')
})
})
describe(': Notice', () => {
it('should output the given Line', () => {
line = log.notice('testline')
assert.equal(line, '')
})
})
describe(': Warn', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t' + name + '\tWARN\ttestline'
line = log.warn('testline')
assert.equal(line, testline)
})
})
describe(': Error', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t' + name + '\tERROR\ttestline'
line = log.error('testline')
assert.equal(line, testline)
})
})
describe(': Fatal', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t' + name + '\tFATAL\ttestline'
line = log.fatal('testline')
assert.equal(line, testline)
})
})
describe(': Debug', () => {
it('should output the given Line', () => {
line = log.debug('testline')
assert.equal(line, '')
})
})
})
describe(': File Set', () => {
beforeEach(() => {
console.log('create Object')
log = new LOG({
path: filePath,
file: file
})
orginialFile = file
file = path.join(filePath, file)
try {
fs.accessSync(file, fs.constants.R_OK | fs.constants.W_OK)
} catch (error) {
fs.writeFileSync(file, '', { flag: 'wx' }) // Create File if not exists
}
})
afterEach(() => {
console.log('destroy Object')
log = undefined
fs.truncateSync(file) // Clean Up, clear contents
file = orginialFile
})
describe(': Info', () => {
it('should output the given Line to the file', function (done) {
log.info('testline')
setTimeout(() => {
line = fs.readFileSync(file, 'utf-8')
assert.equal(line, '')
done()
}, 10)
})
})
describe(': Notice', () => {
it('should output the given Line to the file', function (done) {
log.notice('testline')
setTimeout(() => {
line = fs.readFileSync(file, 'utf-8')
assert.equal(line, '')
done()
}, 10)
})
})
describe(': Warn', () => {
it('should output the given Line to the file', function (done) {
testline = getDate() + '\t' + hostname + '\t@br/log\tWARN\ttestline\n'
log.warn('testline')
setTimeout(() => {
line = fs.readFileSync(file, 'utf-8')
assert.equal(line, testline)
done()
}, 10)
})
})
describe(': Error', () => {
it('should output the given Line to the file', function (done) {
testline = getDate() + '\t' + hostname + '\t@br/log\tERROR\ttestline\n'
log.error('testline')
setTimeout(() => {
line = fs.readFileSync(file, 'utf-8')
assert.equal(line, testline)
done()
}, 10)
})
})
describe(': Fatal', () => {
it('should output the given Line to the file', function (done) {
testline = getDate() + '\t' + hostname + '\t@br/log\tFATAL\ttestline\n'
log.fatal('testline')
setTimeout(() => {
line = fs.readFileSync(file, 'utf-8')
assert.equal(line, testline)
done()
}, 10)
})
})
describe(': Debug', () => {
it('should output the given Line to the file', function (done) {
log.debug('testline')
setTimeout(() => {
line = fs.readFileSync(file, 'utf-8')
assert.equal(line, '')
done()
}, 10)
})
})
})
describe(': Loglevel DEBUG Set', () => {
beforeEach(() => {
console.log('create Object')
log = new LOG({
loglevel: 'DEBUG'
})
})
afterEach(() => {
console.log('destroy Object')
log = undefined
})
describe(': Info', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tINFO\ttestline'
line = log.info('testline')
assert.equal(line, testline)
})
})
describe(': Notice', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tNOTICE\ttestline'
line = log.notice('testline')
assert.equal(line, testline)
})
})
describe(': Warn', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tWARN\ttestline'
line = log.warn('testline')
assert.equal(line, testline)
})
})
describe(': Error', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tERROR\ttestline'
line = log.error('testline')
assert.equal(line, testline)
})
})
describe(': Fatal', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tFATAL\ttestline'
line = log.fatal('testline')
assert.equal(line, testline)
})
})
describe(': Debug', () => {
it('should output the given Line', () => {
testline = getDate() + '\t' + hostname + '\t@br/log\tDEBUG\ttestline'
line = log.debug('testline')
assert.equal(line, testline)
})
})
})
})