diff --git a/.eslintrc b/.eslintrc index 099dce0..167edc8 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,9 +1,8 @@ { "root": true, "extends": [ - "eslint:recommended", - "plugin:import/errors", - "plugin:import/warnings", + "wework", + "wework/imports" ], "env": { "commonjs": true, @@ -22,34 +21,11 @@ } }, "rules": { - "no-extra-boolean-cast": 0, - "no-prototype-builtins": 0, - "no-unused-vars": ["error", { "vars": "all", "args": "none", "varsIgnorePattern": "logger" }], - "max-len": [2, {"code": 120, "tabWidth": 2, "ignoreUrls": true}], - "arrow-spacing": 2, - "object-curly-spacing": [2, "always"], - "no-multiple-empty-lines": 0, - "id-length": [2, {"exceptions": ["$", "_", "L", "v", "w", "h", "i", "j"]}], - "array-bracket-spacing": [0, "always"], - "arrow-body-style": 0, - "no-underscore-dangle": 0, - "func-names": 0, - "padded-blocks": 0, - "class-methods-use-this": 0, - # ensure JSDoc comments are valid "valid-jsdoc": [1, { "requireReturn": false, requireParamDescription: false, requireReturnDescription: false - }], - - "import/prefer-default-export": 0, - "import/no-extraneous-dependencies": 0, - "import/no-unresolved": 0, - "import/no-duplicates": 0, - "import/newline-after-import": 0, - "import/imports-first": 0, - "import/extensions": 0, + }] }, } diff --git a/package.json b/package.json index 36d0353..15eda8e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "bundle:node": "rollup -c --environment RUNTIME_ENV:node", "bundle:browser": "rollup -c --environment RUNTIME_ENV:client", "start": "npm test && npm run dist", - "dist": "npm run lint && npm run clean && npm run bundle && npm run docs", + "dist": "npm run clean && npm run bundle && npm run lint && npm run docs", "docs": "documentation build src/client.js src/node.js --github --format md --output API.md", "security-scan": "nsp check --output summary --warn-only", "pretest": "npm run bundle", @@ -90,13 +90,14 @@ "babel-polyfill": "6.22.0", "babel-preset-es2015": "6.22.0", "babel-preset-stage-0": "6.22.0", + "babel-register": "6.22.0", "benchmark": "2.1.3", "chai": "3.5.0", "coveralls": "2.11.16", "documentation": "4.0.0-beta.18", - "eslint": "3.14.0", + "eslint": "3.15.0", + "eslint-config-wework": "2.0.0", "eslint-friendly-formatter": "2.0.7", - "eslint-plugin-import": "2.2.0", "eslint-plugin-mocha": "4.8.0", "express": "4.14.1", "ghooks": "2.0.0", diff --git a/src/client.js b/src/client.js index 48c036f..28f2301 100644 --- a/src/client.js +++ b/src/client.js @@ -1,7 +1,8 @@ -'use strict'; - import bunyan from 'bunyan'; +// Safe console access for oldIE +import console from 'console'; + import logForLevel from './util/common/logForLevel'; import { assembleConfig, toBunyanConfig, BUNYAN_LOGGER_LEVELS } from './util/common/config'; @@ -9,34 +10,6 @@ import ClientConsoleLogger from './util/client/consoleLogger'; import ClientLogentriesLogger from './util/client/logentriesLogger'; import ClientRollbarLogger, { isGlobalRollbarConfigured } from './util/client/rollbarLogger'; -// Safe console access for oldIE -import console from 'console'; - -/** - * A logger than can be used in browsers - * @param {Object} config - we-js-logger config - * @param {Object?} logger - an instance of a `bunyan` logger to use internally. - * this is meant to be used by the `child` method. - */ -export default function ClientLogger(config = {}, logger) { - const clientConfig = assembleConfig(config, getStreams); - logger = logger || bunyan.createLogger(toBunyanConfig(clientConfig)); - - this._config = config; - this._logger = logger; -} - -ClientLogger.prototype.child = function () { - const childLogger = this._logger.child.apply(this._logger, arguments); - return new ClientLogger(this._config, childLogger); -} - -// Dynamically hoist + wrap bunyan log instance methods (logger.info, logger.warn, etc) -BUNYAN_LOGGER_LEVELS.forEach(level => { - ClientLogger.prototype[level] = logForLevel(level); -}); - - /** * Add standard Client logger streams to `config.streams` * @private @@ -56,7 +29,7 @@ function getStreams(config) { name: 'stdout', level: config.level, stream: new ClientConsoleLogger(), - type: 'raw' + type: 'raw', }); } @@ -73,7 +46,7 @@ function getStreams(config) { environment: config.environment, codeVersion: config.codeVersion, }), - type: 'raw' + type: 'raw', }); } } else { @@ -89,11 +62,37 @@ function getStreams(config) { level: config.level, stream: new ClientLogentriesLogger({ name: config.name, - token: config.logentriesToken + token: config.logentriesToken, }), - type: 'raw' + type: 'raw', }); } return streams; } + +/** + * A logger than can be used in browsers + * @param {Object} config - we-js-logger config + * @param {Object?} logger - an instance of a `bunyan` logger to use internally. + * this is meant to be used by the `child` method. + */ +export default function ClientLogger(config = {}, logger) { + const clientConfig = assembleConfig(config, getStreams); + logger = logger || bunyan.createLogger(toBunyanConfig(clientConfig)); // eslint-disable-line no-param-reassign + + this._config = config; + this._logger = logger; +} + +/* eslint-disable prefer-spread, prefer-rest-params */ +ClientLogger.prototype.child = function () { + const childLogger = this._logger.child.apply(this._logger, arguments); + return new ClientLogger(this._config, childLogger); +}; +/* eslint-enable */ + +// Dynamically hoist + wrap bunyan log instance methods (logger.info, logger.warn, etc) +BUNYAN_LOGGER_LEVELS.forEach((level) => { + ClientLogger.prototype[level] = logForLevel(level); +}); diff --git a/src/node.js b/src/node.js index bf8ff1d..990584d 100644 --- a/src/node.js +++ b/src/node.js @@ -1,44 +1,14 @@ -'use strict'; - import bunyan from 'bunyan'; +import Rollbar from 'rollbar'; +import bunyanFormat from 'bunyan-format'; import { assembleConfig, toBunyanConfig, BUNYAN_LOGGER_LEVELS } from './util/common/config'; import logForLevel from './util/common/logForLevel'; -import Rollbar from 'rollbar'; -import bunyanFormat from 'bunyan-format'; import ServerRollbarLogger from './util/server/rollbarLogger'; import ServerLogentriesLogger from './util/server/logentriesLogger'; import createRequestLogger from './util/server/requestLogger'; -/** - * A logger than can be used in node processes - * @param {Object} config - we-js-logger config - * @param {Object?} logger - an instance of a `bunyan` logger to use internally. - * this is meant to be used by the `child` method. - */ -export default function NodeLogger(config = {}, logger) { - const serverConfig = assembleConfig(config, getStreams); - logger = logger || bunyan.createLogger(toBunyanConfig(serverConfig)); - - this._config = config; - this._logger = logger; - - // Server-specific extras - this.requestLogger = createRequestLogger(this, serverConfig); - this.rollbarErrorMiddleware = Rollbar.errorHandler(serverConfig.rollbarToken); -} - -NodeLogger.prototype.child = function () { - const childLogger = this._logger.child.apply(this._logger, arguments); - return new NodeLogger(this._config, childLogger); -} - -// Dynamically hoist + wrap bunyan log instance methods (logger.info, logger.warn, etc) -BUNYAN_LOGGER_LEVELS.forEach(level => { - NodeLogger.prototype[level] = logForLevel(level); -}); - /** * Add standard Node logger streams to `config.streams` * @private @@ -57,7 +27,7 @@ function getStreams(config) { name: 'stdout', level: config.level, stream: bunyanFormat({ outputMode: 'short' }), - type: 'stream' + type: 'stream', }); } @@ -73,7 +43,7 @@ function getStreams(config) { environment: config.environment, codeVersion: config.codeVersion, }), - type: 'raw' + type: 'raw', }); } @@ -82,9 +52,41 @@ function getStreams(config) { streams.push(new ServerLogentriesLogger({ name: config.name, token: config.logentriesToken, - level: config.level + level: config.level, })); } return streams; } + +/** + * A logger than can be used in node processes + * @param {Object} config - we-js-logger config + * @param {Object?} logger - an instance of a `bunyan` logger to use internally. + * this is meant to be used by the `child` method. + */ +export default function NodeLogger(config = {}, logger) { + const serverConfig = assembleConfig(config, getStreams); + logger = logger || bunyan.createLogger(toBunyanConfig(serverConfig)); // eslint-disable-line no-param-reassign + + this._config = config; + this._logger = logger; + + // Server-specific extras + this.requestLogger = createRequestLogger(this, serverConfig); + this.rollbarErrorMiddleware = Rollbar.errorHandler(serverConfig.rollbarToken); +} + +/* eslint-disable prefer-spread, prefer-rest-params */ +NodeLogger.prototype.child = function () { + const childLogger = this._logger.child.apply(this._logger, arguments); + return new NodeLogger(this._config, childLogger); +}; +/* eslint-enable */ + +// Dynamically hoist + wrap bunyan log instance methods (logger.info, logger.warn, etc) +BUNYAN_LOGGER_LEVELS.forEach((level) => { + NodeLogger.prototype[level] = logForLevel(level); +}); + + diff --git a/src/util/client/logentriesLogger.js b/src/util/client/logentriesLogger.js index 1b9531e..753826f 100644 --- a/src/util/client/logentriesLogger.js +++ b/src/util/client/logentriesLogger.js @@ -17,7 +17,7 @@ export default function ClientLogentriesLogger({ name, token }) { name, token, no_format: true, - page_info: 'per-page' + page_info: 'per-page', }); } } diff --git a/src/util/client/rollbarLogger.js b/src/util/client/rollbarLogger.js index 2850940..56073b4 100644 --- a/src/util/client/rollbarLogger.js +++ b/src/util/client/rollbarLogger.js @@ -28,8 +28,8 @@ export default function ClientRollbarLogger({ token, environment, codeVersion }) environment, javascript: { code_version: codeVersion, - source_map_enabled: true - } + source_map_enabled: true, + }, }, }); } diff --git a/src/util/common/config.js b/src/util/common/config.js index 1775eb4..a19f22a 100644 --- a/src/util/common/config.js +++ b/src/util/common/config.js @@ -62,7 +62,7 @@ export function assembleConfig(config, getStreamsForRuntime) { // Add our custom streams and return a full `we-js-logger` config object return Object.assign(baseConfig, { - streams: getStreamsForRuntime(baseConfig) + streams: getStreamsForRuntime(baseConfig), }); } diff --git a/src/util/common/logForLevel.js b/src/util/common/logForLevel.js index 1b5b572..2498d6d 100644 --- a/src/util/common/logForLevel.js +++ b/src/util/common/logForLevel.js @@ -1,3 +1,5 @@ +/* eslint-disable prefer-spread */ + import scrub from './scrub'; /** @@ -16,5 +18,5 @@ export default function logForLevel(level) { */ return function logIt(...args) { return this._logger[level].apply(this._logger, scrub(args, this._config, this._logger)); - } + }; } diff --git a/src/util/common/rollbar.js b/src/util/common/rollbar.js index 192ce75..848fb4a 100644 --- a/src/util/common/rollbar.js +++ b/src/util/common/rollbar.js @@ -1,3 +1,5 @@ +/* eslint-disable import/prefer-default-export */ + import bunyan from 'bunyan'; /** @@ -12,7 +14,7 @@ const bunyanToRollbarLevelMap = { warn: 'warning', info: 'info', debug: 'debug', - trace: 'debug' + trace: 'debug', }; /** diff --git a/src/util/common/scrub.js b/src/util/common/scrub.js index 1f2a8bb..bc8322e 100644 --- a/src/util/common/scrub.js +++ b/src/util/common/scrub.js @@ -22,7 +22,7 @@ function handleContext(data, config = {}, logger) { export default function scrub(args, config = {}, logger) { if (Array.isArray(config.scrubFields) && config.scrubFields.length) { if (isObject(args[0])) { - return [handleContext(args[0], config, logger), ...hideSecrets(tail(args), getScrubConfig(config))] + return [handleContext(args[0], config, logger), ...hideSecrets(tail(args), getScrubConfig(config))]; } return hideSecrets(args, getScrubConfig(config)); diff --git a/src/util/server/logentriesLogger.js b/src/util/server/logentriesLogger.js index 3942d84..7d7cfe6 100644 --- a/src/util/server/logentriesLogger.js +++ b/src/util/server/logentriesLogger.js @@ -12,7 +12,7 @@ export default function ServerLogentriesLogger({ name, token, level }) { name, token, secure: true, - withStack: true + withStack: true, }); loggerDefinition.level = level; diff --git a/src/util/server/requestLogger.js b/src/util/server/requestLogger.js index 047d053..b24ac43 100644 --- a/src/util/server/requestLogger.js +++ b/src/util/server/requestLogger.js @@ -26,7 +26,7 @@ export default function createRequestLogger(logger, { reqIdHeader = DEFAULT_HEAD let log = logger.child({ component: 'request', req_id: id, req }); // attach a logger to each request - req.log = log; + req.log = log; // eslint-disable-line no-param-reassign res.setHeader(reqIdHeader, id); @@ -35,11 +35,11 @@ export default function createRequestLogger(logger, { reqIdHeader = DEFAULT_HEAD const time = process.hrtime(); res.on('finish', () => { const diff = process.hrtime(time); - const duration = diff[0] * 1e3 + diff[1] * 1e-6; + const duration = diff[0] * 1e3 + diff[1] * 1e-6; // eslint-disable-line no-mixed-operators log.info({ res, duration }, 'end request'); // Release the request logger for GC - req.log = null; + req.log = null; // eslint-disable-line no-param-reassign log = null; }); diff --git a/test/benchmark/index.js b/test/benchmark/index.js index 78ab41b..e8d58f9 100644 --- a/test/benchmark/index.js +++ b/test/benchmark/index.js @@ -1,10 +1,10 @@ /* eslint-disable no-console */ -const Benchmark = require('benchmark') +const Benchmark = require('benchmark'); const bunyan = require('bunyan'); const WeLogger = require('../..'); -var suite = new Benchmark.Suite(); +const suite = new Benchmark.Suite(); const weLogger = new WeLogger({ stdout: false }); const weLoggerScrub = new WeLogger({ stdout: false, scrubFields: ['foo'] }); @@ -12,39 +12,39 @@ const bunyanLogger = bunyan.createLogger({ name: 'bunyan', streams: [] }); const context = { data: { some: 'stuff' }, - foo: 'bar' + foo: 'bar', }; const msg = 'hello world'; const msgExtra = { pretty: 'print me please' }; suite - .add('we-js-logger', function() { + .add('we-js-logger', () => { weLogger.info(context, msg, msgExtra); }) - .add('we-js-logger child', function() { + .add('we-js-logger child', () => { const log = weLogger.child(); log.info(context, msg, msgExtra); }) - .add('we-js-logger (with scrub fields)', function() { - weLoggerScrub.info(context, msg, msgExtra) + .add('we-js-logger (with scrub fields)', () => { + weLoggerScrub.info(context, msg, msgExtra); }) - .add('we-js-logger child (with scrub fields)', function() { + .add('we-js-logger child (with scrub fields)', () => { const log = weLoggerScrub.child(); log.info(context, msg, msgExtra); }) - .add('bunyan', function() { + .add('bunyan', () => { bunyanLogger.info(context, msg, msgExtra); }) - .add('bunyan child', function() { + .add('bunyan child', () => { const log = bunyanLogger.child(); log.info(context, msg, msgExtra); }) // add listeners - .on('cycle', function(event) { + .on('cycle', (event) => { console.log(String(event.target)); }) - .on('complete', function() { - console.log('Fastest is ' + this.filter('fastest').map('name')); + .on('complete', function () { + console.log(`Fastest is ${this.filter('fastest').map('name')}`); }) // run async - .run({ 'async': true }); \ No newline at end of file + .run({ async: true }); diff --git a/test/browser.index.js b/test/browser.index.js index 27a99cd..187ef0b 100644 --- a/test/browser.index.js +++ b/test/browser.index.js @@ -4,7 +4,7 @@ require('./runner'); // shim global rollbar global.Rollbar = { options: { - accessToken: 'testShim' + accessToken: 'testShim', }, configure: _.noop, scope: _.noop, @@ -13,7 +13,7 @@ global.Rollbar = { warning: _.noop, info: _.noop, debug: _.noop, - log: _.noop + log: _.noop, }; // require all `/test/specs/**/*.spec.js` diff --git a/test/karma.conf.js b/test/karma.conf.js index 56d70a5..ce95b4a 100644 --- a/test/karma.conf.js +++ b/test/karma.conf.js @@ -1,7 +1,7 @@ const webpackClientConfig = require('./webpack.client.config'); const saucelabsBrowsers = require('./saucelabs-browsers.json').browsers; -module.exports = function(config) { +module.exports = function (config) { // Default let browsers = ['PhantomJS']; // Saucelabs run @@ -16,24 +16,24 @@ module.exports = function(config) { singleRun: true, frameworks: ['mocha', 'sinon-chai'], sauceLabs: { - testName: 'we-js-logger/client' + testName: 'we-js-logger/client', }, browserNoActivityTimeout: 120000, concurrency: 2, customLaunchers: saucelabsBrowsers, files: [ - 'test/browser.index.js' + 'test/browser.index.js', ], - browsers: browsers, + browsers, reporters: process.env.SAUCELABS ? ['mocha', 'saucelabs'] : ['mocha'], mochaReporter: { output: 'autowatch', - showDiff: true + showDiff: true, }, preprocessors: { - 'test/browser.index.js': ['webpack'] + 'test/browser.index.js': ['webpack'], }, // webpack test configuration @@ -41,7 +41,7 @@ module.exports = function(config) { // webpack-dev-middleware configuration webpackMiddleware: { - stats: 'errors-only' - } + stats: 'errors-only', + }, }); }; diff --git a/test/leakage/check.js b/test/leakage/check.js index 78144a1..1a24465 100644 --- a/test/leakage/check.js +++ b/test/leakage/check.js @@ -5,7 +5,7 @@ import Logger from '../..'; const TIMEOUT = 20 * 1000; const ITERATIONS = 600; -describe('Heap Tests', function() { +describe('Heap Tests', () => { let log; describe('we-js-logger', () => { @@ -13,14 +13,14 @@ describe('Heap Tests', function() { log = new Logger({ stdout: false }); }); - it(`does not leak when logging ${ITERATIONS} times`, function() { + it(`does not leak when logging ${ITERATIONS} times`, function () { this.timeout(TIMEOUT); iterate(ITERATIONS, () => { log.info({}, 'log time', {}); }); }); - it(`does not leak when building and logging child ${ITERATIONS} times`, function() { + it(`does not leak when building and logging child ${ITERATIONS} times`, function () { this.timeout(TIMEOUT); iterate(ITERATIONS, () => { const child = log.child(); @@ -34,14 +34,14 @@ describe('Heap Tests', function() { log = new Logger({ stdout: false, scrubFields: ['foo'] }); }); - it(`does not leak when logging ${ITERATIONS} times`, function() { + it(`does not leak when logging ${ITERATIONS} times`, function () { this.timeout(TIMEOUT); iterate(ITERATIONS, () => { log.info({}, 'log time', {}); }); }); - it(`does not leak when building and logging child ${ITERATIONS} times`, function() { + it(`does not leak when building and logging child ${ITERATIONS} times`, function () { this.timeout(TIMEOUT); iterate(ITERATIONS, () => { const child = log.child(); @@ -53,17 +53,17 @@ describe('Heap Tests', function() { // Unskip if you want to compare to raw bunyan describe.skip('bunyan', () => { beforeEach(() => { - log = new bunyan.createLogger({ name: 'test', streams: [] }); + log = new bunyan.createLogger({ name: 'test', streams: [] }); // eslint-disable-line new-cap }); - it(`does not leak when logging ${ITERATIONS} times`, function() { + it(`does not leak when logging ${ITERATIONS} times`, function () { this.timeout(TIMEOUT); iterate(ITERATIONS, () => { log.info({}, 'log time', {}); }); }); - it(`does not leak when building and logging child ${ITERATIONS} times`, function() { + it(`does not leak when building and logging child ${ITERATIONS} times`, function () { this.timeout(TIMEOUT); iterate(ITERATIONS, () => { const child = log.child(); diff --git a/test/runner.js b/test/runner.js index a432622..612db0b 100644 --- a/test/runner.js +++ b/test/runner.js @@ -8,7 +8,7 @@ const sinon = require('sinon'); // TODO better way to guard this // For browser tests, sinon-chai is loaded in karma config if (typeof document === 'undefined') { - const sinonChai = require('sinon-chai'); + const sinonChai = require('sinon-chai'); // eslint-disable-line global-require chai.use(sinonChai); } diff --git a/test/specs/logger.spec.js b/test/specs/logger.spec.js index d6ddaf3..7708cce 100644 --- a/test/specs/logger.spec.js +++ b/test/specs/logger.spec.js @@ -1,8 +1,9 @@ +import bunyan from 'bunyan'; +import TestLogger from '../testLogger'; + // Require the package. For client tests, webpack should // resolve to the browser version automatically. import Logger from '../..'; -import TestLogger from '../testLogger'; -import bunyan from 'bunyan'; // Logentries validates the token it is passed, // here is a fake one in an acceptable format @@ -33,9 +34,9 @@ describe('we-js-logger', () => { streams: [ { type: 'raw', - stream: new TestLogger({ cb }) - } - ] + stream: new TestLogger({ cb }), + }, + ], }); expect(log._logger.streams.filter((config) => { @@ -48,7 +49,7 @@ describe('we-js-logger', () => { expect(cb.lastCall.args[0]).to.include({ name, msg, - foo: 'bar' + foo: 'bar', }, 'Uses the custom stream'); // TODO test that logs at a higher level dont go to the transport @@ -68,7 +69,7 @@ describe('we-js-logger', () => { })).to.not.be.ok; const log = new Logger({ - logentriesToken: fakeToken + logentriesToken: fakeToken, }); // The actual logentries stream differs based on runtime env, just @@ -84,7 +85,7 @@ describe('we-js-logger', () => { })).to.not.be.ok; const log = new Logger({ - rollbarToken: fakeToken + rollbarToken: fakeToken, }); // The actual rollbar stream differs based on runtime env, just @@ -154,7 +155,7 @@ describe('we-js-logger', () => { beforeEach(() => { log = new Logger({ - release: { foo: 'bar' } + release: { foo: 'bar' }, }); }); @@ -175,8 +176,8 @@ describe('we-js-logger', () => { const customLog = new Logger({ rootFields: [ 'badIdea' ], badIdea: 'supersecret', - release: { foo: 'not gonna be included unless specified in rootFields' } - }) + release: { foo: 'not gonna be included unless specified in rootFields' }, + }); expect(customLog._logger.fields).to.have.property('badIdea'); expect(customLog._logger.fields).not.to.have.property('release'); }); diff --git a/test/specs/requestLogger.spec.js b/test/specs/requestLogger.spec.js index c92936c..c171ef3 100644 --- a/test/specs/requestLogger.spec.js +++ b/test/specs/requestLogger.spec.js @@ -27,11 +27,11 @@ if (typeof document === 'undefined') { beforeEach(() => { req = { - get: sinon.stub() + get: sinon.stub(), }; res = { setHeader: sinon.stub(), - on: sinon.stub().yields() + on: sinon.stub().yields(), }; next = sinon.stub(); @@ -40,8 +40,8 @@ if (typeof document === 'undefined') { logger = new Logger({ stdout: false, streams: [ - { type: 'raw', stream: new TestLogger({ cb }) } - ] + { type: 'raw', stream: new TestLogger({ cb }) }, + ], }); middleware = createRequestLogger(logger); @@ -54,7 +54,7 @@ if (typeof document === 'undefined') { middleware(req, res, next); expect(cb.firstCall.args[0]).to.include({ - req_id: testReqId + req_id: testReqId, }); }); @@ -68,14 +68,14 @@ if (typeof document === 'undefined') { middleware(req, res, next); expect(cb.firstCall.args[0]).to.include({ - msg: 'start request' + msg: 'start request', }); }); it('logs an end request item', () => { middleware(req, res, next); expect(cb.lastCall.args[0]).to.include({ - msg: 'end request' + msg: 'end request', }); }); diff --git a/test/specs/util/logForLevel.spec.js b/test/specs/util/logForLevel.spec.js index 67ed554..ba7cbd2 100644 --- a/test/specs/util/logForLevel.spec.js +++ b/test/specs/util/logForLevel.spec.js @@ -41,4 +41,4 @@ describe('util/common/logForLevel', () => { expect(scrubModule.default).to.have.been.calledWith(args, ctx._config); }); }); -}); \ No newline at end of file +}); diff --git a/test/specs/util/scrub.spec.js b/test/specs/util/scrub.spec.js index cbbd78f..1ad96dd 100644 --- a/test/specs/util/scrub.spec.js +++ b/test/specs/util/scrub.spec.js @@ -20,4 +20,4 @@ describe('util/common/scrub', () => { const result = scrub(args, { scrubFields: ['fun'] }); expect(result).to.eql(['test', 'args', 'are', 'so', { fun: '[SECRET]' }]); }); -}); \ No newline at end of file +}); diff --git a/test/stress/index.js b/test/stress/index.js index ce30d43..ee49700 100644 --- a/test/stress/index.js +++ b/test/stress/index.js @@ -6,11 +6,11 @@ const express = require('express'); const loadtest = require('loadtest'); +const Logger = require('../..'); const PORT = 3030; const TEST_LENGTH = 30; // seconds -const Logger = require('../..'); const logger = new Logger({ stdout: false, scrubFields: ['test'], @@ -30,7 +30,7 @@ app.get('*', (req, res) => { res.status(200).send(); }); -let loadOptions = { +const loadOptions = { url: `http://localhost:${PORT}`, // Run stress test for this long. maxSeconds: TEST_LENGTH, @@ -77,10 +77,10 @@ describe('Request Logger -- Stress Test', function () { // Retry a few times in case of result variance this.retries(4); - loadtest.loadTest(loadOptions, function(error, results) { + loadtest.loadTest(loadOptions, (error, results) => { if (error) { done(error); - return + return; } printResults(results); diff --git a/test/webpack.client.config.js b/test/webpack.client.config.js index 4d62108..45c6048 100644 --- a/test/webpack.client.config.js +++ b/test/webpack.client.config.js @@ -4,31 +4,31 @@ module.exports = { devtool: 'inline-source-map', module: { noParse: [ - /node_modules(\\|\/)sinon/ + /node_modules(\\|\/)sinon/, ], loaders: [ { test: /\.json$/, - loader: 'json-loader' + loader: 'json-loader', }, { test: /\.js$/, include: [ path.resolve(process.cwd(), 'src'), - path.resolve(process.cwd(), 'test') + path.resolve(process.cwd(), 'test'), ], - loader: 'babel-loader' + loader: 'babel-loader', }, { test: /sinon(\\|\/)pkg(\\|\/)sinon\.js/, - loader: 'imports?define=>false,require=>false' - } - ] + loader: 'imports?define=>false,require=>false', + }, + ], }, resolve: { alias: { - sinon: 'sinon/pkg/sinon' - } + sinon: 'sinon/pkg/sinon', + }, }, // Shim unnecessary node-only deps in client builds @@ -39,5 +39,5 @@ module.exports = { 'dtrace-provider': 'empty', 'safe-json-stringify': 'empty', 'source-map-support': 'empty', - } -}; \ No newline at end of file + }, +};