Skip to content

Commit

Permalink
Merge pull request #46 from howardabrams/feature/eslint
Browse files Browse the repository at this point in the history
Replacing JSHint with ESLint, Implementing #44
  • Loading branch information
Johnny Estilles authored and Johnny Estilles committed Mar 13, 2015
2 parents b28c20f + 4db29c9 commit 096921e
Show file tree
Hide file tree
Showing 14 changed files with 201 additions and 174 deletions.
90 changes: 90 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"env": {
"node": true
},

"rules": {
"no-alert": 2,
"no-array-constructor": 2,
"no-caller": 2,
"no-bitwise": 0,
"no-catch-shadow": 2,
"no-console": 0, // 2
"no-comma-dangle": 2,
"no-control-regex": 2,
"no-debugger": 2,
"no-div-regex": 2,
"no-dupe-keys": 2,
"no-else-return": 2,
"no-empty": 2,
"no-empty-class": 2,
"no-eq-null": 2,
"no-eval": 2,
"no-ex-assign": 2,
"no-func-assign": 0,
"no-floating-decimal": 2,
"no-implied-eval": 2,
"no-with": 2,
"no-fallthrough": 2,
"no-unreachable": 2,
"no-undef": 2,
"no-undef-init": 2,
"no-unused-expressions": 2,
"no-octal": 2,
"no-octal-escape": 2,
"no-obj-calls": 2,
"no-multi-str": 2,
"no-new-wrappers": 2,
"no-new": 2,
"no-new-func": 2,
"no-native-reassign": 2,
"no-plusplus": 0,
"no-delete-var": 2,
"no-return-assign": 2,
"no-new-object": 2,
"no-label-var": 2,
"no-ternary": 0,
"no-self-compare": 2,
"no-sync": 2,
"no-underscore-dangle": 0, // 2
"no-loop-func": 2,
"no-empty-label": 2,
"no-unused-vars": 1,
"no-script-url": 2,
"no-proto": 2,
"no-iterator": 2,
"no-mixed-requires": [0, false],
"no-wrap-func": 2,
"no-shadow": 2,
"no-use-before-define": 0,
"no-redeclare": 2,
"no-regex-spaces": 2,

"brace-style": 0,
"block-scoped-var": 0,
"camelcase": 2,
"complexity": [0, 11],
"consistent-this": [0, "that"],
"curly": 2,
"dot-notation": 2,
"eqeqeq": 2,
"guard-for-in": 0,
"max-depth": [0, 4],
"max-len": [0, 80, 4],
"max-params": [0, 3],
"max-statements": [0, 10],
"new-cap": 2,
"new-parens": 2,
"one-var": 0,
"quotes": [2, "single"],
"quote-props": 0,
"radix": 0,
"semi": 2,
"strict": 2,
"unnecessary-strict": 0,
"use-isnan": 2,
"valid-typeof": 0,
"wrap-iife": 2,
"wrap-regex": 0
}
}
20 changes: 0 additions & 20 deletions .jshintrc

This file was deleted.

7 changes: 1 addition & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
language: node_js
node_js:
- "0.12"
- "0.10"
- "0.12"

notifications:
email:
- "[email protected]"
- "[email protected]"

after_script:
- npm install -g jshint
- npm install -g nodeunit
- ./run-tests
2 changes: 1 addition & 1 deletion examples/express-route.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ exports['routeHandler - Simple testing'] = function(test) {

test.done();

};
};
2 changes: 1 addition & 1 deletion examples/express-status-vs-json.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ exports['routeHandler - Simple testing of status() vs json()'] = function(test)

test.done();

};
};
6 changes: 4 additions & 2 deletions lib/http-mock.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
'use strict';

/**
* Module: http-mock
*
* The interface for this entire module that just exposes the exported
* functions from the other libraries.
*/

var request = require('./mockRequest');
var request = require('./mockRequest');
var response = require('./mockResponse');

exports.createRequest = request.createRequest;
exports.createResponse= response.createResponse;
exports.createResponse = response.createResponse;
20 changes: 11 additions & 9 deletions lib/mockEventEmitter.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
'use strict';

/*
* http://nodejs.org/api/events.html
*/

function EventEmitter() {}

EventEmitter.prototype.addListener = function (event, listener) {};
EventEmitter.prototype.on = function (event, listener) {};
EventEmitter.prototype.once = function (event, listener) {};
EventEmitter.prototype.removeListener = function (event, listener) {};
EventEmitter.prototype.removeAllListeners = function (event) {};
EventEmitter.prototype.addListener = function () {};
EventEmitter.prototype.on = function () {};
EventEmitter.prototype.once = function () {};
EventEmitter.prototype.removeListener = function () {};
EventEmitter.prototype.removeAllListeners = function () {};
// EventEmitter.prototype.removeAllListeners = function([event])
EventEmitter.prototype.setMaxListeners = function (n) {};
EventEmitter.prototype.listeners = function (event) {};
EventEmitter.prototype.emit = function (event) {};
EventEmitter.prototype.setMaxListeners = function () {};
EventEmitter.prototype.listeners = function () {};
EventEmitter.prototype.emit = function () {};
// EventEmitter.prototype.emit = function(event, [arg1], [arg2], [...]){}

module.exports = EventEmitter;
module.exports = EventEmitter;
16 changes: 7 additions & 9 deletions lib/mockRequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,7 @@ function createRequest(options) {
else if (mockRequest.query[parameterName]) {
return mockRequest.query[parameterName];
}
else {
return null;
}
return null;
};

/**
Expand Down Expand Up @@ -179,13 +177,13 @@ function createRequest(options) {
*
* Parameters:
*
* url - The request path, e.g. /my-route/452
* value - The request path, e.g. /my-route/452
*
* Note: We don't validate the string. We just return it. Typically, these
* do not include hostname, port or that part of the URL.
*/
mockRequest._setURL = function(url) {
mockRequest.url = url;
mockRequest._setURL = function(value) {
mockRequest.url = value;
};

/**
Expand All @@ -196,13 +194,13 @@ function createRequest(options) {
*
* Parameters:
*
* url - The request path, e.g. /my-route/452
* value - The request path, e.g. /my-route/452
*
* Note: We don't validate the string. We just return it. Typically, these
* do not include hostname, port or that part of the URL.
*/
mockRequest._setOriginalUrl = function(url) {
mockRequest.originalUrl = url;
mockRequest._setOriginalUrl = function(value) {
mockRequest.originalUrl = value;
};

/**
Expand Down
54 changes: 30 additions & 24 deletions lib/mockResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,14 @@ function createResponse(options) {
var _renderView = '';
var _renderData = {};

var writableStream = options.writableStream ? new options.writableStream() : new WritableStream();
var eventEmitter = options.eventEmitter ? new options.eventEmitter() : new EventEmitter();
if (options.writableStream) {
WritableStream = options.writableStream;
}
if (options.eventEmitter) {
EventEmitter = options.eventEmitter;
}
var writableStream = new WritableStream();
var eventEmitter = new EventEmitter();

// create mockResponse

Expand All @@ -54,11 +60,11 @@ function createResponse(options) {
mockResponse.statusCode = 200;
mockResponse.cookies = {};

mockResponse.cookie = function(name, value, options) {
mockResponse.cookie = function(name, value, opt) {

mockResponse.cookies[name] = {
value: value,
options: options
options: opt
};

};
Expand Down Expand Up @@ -109,24 +115,24 @@ function createResponse(options) {
*/
mockResponse.send = function(a, b, c) {

var _formatData = function(a) {
var _formatData = function(data) {

if (typeof a === 'object') {
if (typeof data === 'object') {

if (a.statusCode) {
mockResponse.statusCode = a.statusCode;
} else if (a.httpCode) {
mockResponse.statusCode = a.statusCode;
if (data.statusCode) {
mockResponse.statusCode = data.statusCode;
} else if (data.httpCode) {
mockResponse.statusCode = data.statusCode;
}

if (a.body) {
_data = a.body;
if (data.body) {
_data = data.body;
} else {
_data = a;
_data = data;
}

} else {
_data += a;
_data += data;
}

};
Expand Down Expand Up @@ -229,7 +235,7 @@ function createResponse(options) {
*/
mockResponse.contentType = mockResponse.type = function(type){
return mockResponse.set('Content-Type', type.indexOf('/') >= 0 ? type : mime.lookup(type));
};
};

/**
* Function: write
Expand Down Expand Up @@ -395,7 +401,7 @@ function createResponse(options) {
* Render a view with a callback responding with the
* rendered string.
*/
mockResponse.render = function(a, b, c) {
mockResponse.render = function(a, b) {

_renderView = a;

Expand Down Expand Up @@ -434,35 +440,35 @@ function createResponse(options) {
return writableStream.destroySoon.apply(this, arguments);
};

mockResponse.addListener = function(event, listener) {
mockResponse.addListener = function() {
return eventEmitter.addListener.apply(this, arguments);
};

mockResponse.on = function(event, listener) {
mockResponse.on = function() {
return eventEmitter.on.apply(this, arguments);
};

mockResponse.once = function(event, listener) {
mockResponse.once = function() {
return eventEmitter.once.apply(this, arguments);
};

mockResponse.removeListener = function(event, listener) {
mockResponse.removeListener = function() {
return eventEmitter.removeListener.apply(this, arguments);
};

mockResponse.removeAllListeners = function(event) {
mockResponse.removeAllListeners = function() {
return eventEmitter.removeAllListeners.apply(this, arguments);
};

mockResponse.setMaxListeners = function(n) {
mockResponse.setMaxListeners = function() {
return eventEmitter.setMaxListeners.apply(this, arguments);
};

mockResponse.listeners = function(event) {
mockResponse.listeners = function() {
return eventEmitter.listeners.apply(this, arguments);
};

mockResponse.emit = function(event) {
mockResponse.emit = function() {
return eventEmitter.emit.apply(this, arguments);
};

Expand Down
4 changes: 3 additions & 1 deletion lib/mockWritableStream.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use strict';

/*
* http://nodejs.org/api/stream.html#stream_writable_stream
*/
Expand All @@ -13,4 +15,4 @@ WritableStream.prototype.end = function () {};
WritableStream.prototype.destroy = function () {};
WritableStream.prototype.destroySoon = function () {};

module.exports = WritableStream;
module.exports = WritableStream;
Loading

0 comments on commit 096921e

Please sign in to comment.