From dad97a5124b8c897ac41a23424b870d89d39e11a Mon Sep 17 00:00:00 2001 From: Peter deHaan Date: Mon, 29 Jun 2015 16:18:21 -0700 Subject: [PATCH] chore(build): Replace JSHint with ESLint --- .eslintrc | 4 + .jshintrc | 22 - Gruntfile.js | 6 +- grunttasks/bump.js | 6 +- grunttasks/copyright.js | 2 +- grunttasks/{jshint.js => eslint.js} | 12 +- grunttasks/version.js | 8 +- npm-shrinkwrap.json | 880 +++++++++++------- package.json | 5 +- test/local/ip_record_tests.js | 18 +- test/remote/block_email_tests.js | 2 +- test/remote/block_ip_tests.js | 2 +- test/remote/check_tests.js | 5 +- test/remote/email_normalization.js | 2 +- test/remote/failed_login_attempt_tests.js | 2 +- test/remote/never_blocked.js | 2 +- .../password_reset_clears_bad_logins.js | 2 +- test/remote/password_reset_tests.js | 2 +- test/remote/root_tests.js | 2 +- test/remote/too_many_bad_logins.js | 2 +- test/remote/too_many_emails.js | 2 +- 21 files changed, 613 insertions(+), 375 deletions(-) create mode 100644 .eslintrc delete mode 100644 .jshintrc rename grunttasks/{jshint.js => eslint.js} (80%) diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..6129459 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,4 @@ +extends: fxa/server + +rules: + handle-callback-err: 0 diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 920d889..0000000 --- a/.jshintrc +++ /dev/null @@ -1,22 +0,0 @@ -{ - "asi": true, - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "forin": true, - "freeze": true, - "immed": true, - "indent": 2, - "latedef": true, - "newcap": true, - "noarg": true, - "nonbsp": true, - "nonew": true, - "quotmark": "single", - "undef": true, - "unused": true, - "strict": false, - - "node": true -} diff --git a/Gruntfile.js b/Gruntfile.js index 3fe0998..b600e8b 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,12 +3,12 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ module.exports = function (grunt) { - 'use strict'; + 'use strict' - require('load-grunt-tasks')(grunt); + require('load-grunt-tasks')(grunt) grunt.loadTasks('grunttasks') grunt.registerTask('default', ['lint', 'copyright', 'validate-shrinkwrap']) - grunt.registerTask('lint', ['jshint']) + grunt.registerTask('lint', ['eslint']) } diff --git a/grunttasks/bump.js b/grunttasks/bump.js index 387efb4..0a46b8d 100644 --- a/grunttasks/bump.js +++ b/grunttasks/bump.js @@ -5,7 +5,7 @@ // takes care of bumping the version number in package.json module.exports = function (grunt) { - 'use strict'; + 'use strict' grunt.config('bump', { options: { @@ -21,6 +21,6 @@ module.exports = function (grunt) { pushTo: 'origin', gitDescribeOptions: '--tags --always --abrev=1 --dirty=-d' } - }); -}; + }) +} diff --git a/grunttasks/copyright.js b/grunttasks/copyright.js index 6487cf5..e81d703 100644 --- a/grunttasks/copyright.js +++ b/grunttasks/copyright.js @@ -3,7 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ module.exports = function (grunt) { - 'use strict'; + 'use strict' grunt.config('copyright', { app: { diff --git a/grunttasks/jshint.js b/grunttasks/eslint.js similarity index 80% rename from grunttasks/jshint.js rename to grunttasks/eslint.js index 5bcb44a..4fc430e 100644 --- a/grunttasks/jshint.js +++ b/grunttasks/eslint.js @@ -3,14 +3,14 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ module.exports = function (grunt) { - 'use strict'; + 'use strict' - grunt.config('jshint', { + grunt.config('eslint', { + options: { + eslintrc: '.eslintrc' + }, files: [ '{,bans/,bin/,config/,grunttasks/,scripts/,test/**/}*.js' - ], - options: { - jshintrc: '.jshintrc' - } + ] }) } diff --git a/grunttasks/version.js b/grunttasks/version.js index b51d68a..4246c34 100644 --- a/grunttasks/version.js +++ b/grunttasks/version.js @@ -17,15 +17,15 @@ // module.exports = function (grunt) { - 'use strict'; + 'use strict' grunt.registerTask('version', [ 'bump-only:minor', 'bump-commit' - ]); + ]) grunt.registerTask('version:patch', [ 'bump-only:patch', 'bump-commit' - ]); -}; + ]) +} diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 2469ded..a32c547 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -204,13 +204,13 @@ "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-0.23.1.tgz", "dependencies": { "mv": { - "version": "2.0.3", + "version": "2.1.1", "from": "mv@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "dependencies": { "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", + "from": "mkdirp@>=0.5.1 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { @@ -221,20 +221,82 @@ } }, "ncp": { - "version": "0.6.0", - "from": "ncp@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.6.0.tgz" + "version": "2.0.0", + "from": "ncp@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz" }, "rimraf": { - "version": "2.2.8", - "from": "rimraf@>=2.2.8 <2.3.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version": "2.4.0", + "from": "rimraf@>=2.4.0 <2.5.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.0.tgz", + "dependencies": { + "glob": { + "version": "4.5.3", + "from": "glob@>=4.4.2 <5.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "2.0.8", + "from": "minimatch@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.8.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.0", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + } + } + } + } } } }, "dtrace-provider": { "version": "0.2.8", - "from": "dtrace-provider@>=0.2.8 <0.3.0", + "from": "dtrace-provider@0.2.8", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.2.8.tgz" } } @@ -355,6 +417,10 @@ } } }, + "eslint-config-fxa": { + "version": "1.7.0", + "from": "eslint-config-fxa@1.7.0" + }, "grunt": { "version": "0.4.5", "from": "grunt@0.4.5", @@ -533,7 +599,7 @@ }, "exit": { "version": "0.1.2", - "from": "exit@>=0.1.0 <0.2.0", + "from": "exit@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" }, "getobject": { @@ -601,7 +667,7 @@ }, "findup-sync": { "version": "0.1.3", - "from": "findup-sync@>=0.1.2 <0.2.0", + "from": "findup-sync@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", "dependencies": { "glob": { @@ -647,23 +713,494 @@ } } }, - "grunt-contrib-jshint": { - "version": "0.10.0", - "from": "grunt-contrib-jshint@0.10.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.10.0.tgz", - "dependencies": { - "hooker": { - "version": "0.2.3", - "from": "hooker@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" - } - } - }, "grunt-copyright": { "version": "0.1.0", "from": "grunt-copyright@0.1.0", "resolved": "https://registry.npmjs.org/grunt-copyright/-/grunt-copyright-0.1.0.tgz" }, + "grunt-eslint": { + "version": "16.0.0", + "from": "grunt-eslint@16.0.0", + "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-16.0.0.tgz", + "dependencies": { + "chalk": { + "version": "1.0.0", + "from": "chalk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.0.1", + "from": "ansi-styles@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "1.0.3", + "from": "has-ansi@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz", + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "from": "ansi-regex@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + }, + "get-stdin": { + "version": "4.0.1", + "from": "get-stdin@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + } + } + }, + "strip-ansi": { + "version": "2.0.1", + "from": "strip-ansi@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "from": "ansi-regex@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + } + } + }, + "supports-color": { + "version": "1.3.1", + "from": "supports-color@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz" + } + } + }, + "eslint": { + "version": "0.24.0", + "from": "eslint@>=0.24.0 <0.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-0.24.0.tgz", + "dependencies": { + "concat-stream": { + "version": "1.5.0", + "from": "concat-stream@>=1.4.6 <2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "typedarray": { + "version": "0.0.6", + "from": "typedarray@>=0.0.5 <0.1.0", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + }, + "readable-stream": { + "version": "2.0.1", + "from": "readable-stream@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.1.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.1", + "from": "process-nextick-args@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.1", + "from": "util-deprecate@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" + } + } + } + } + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dependencies": { + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } + } + }, + "doctrine": { + "version": "0.6.4", + "from": "doctrine@>=0.6.2 <0.7.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.6.4.tgz", + "dependencies": { + "esutils": { + "version": "1.1.6", + "from": "esutils@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + } + } + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "escope": { + "version": "3.1.0", + "from": "escope@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.1.0.tgz", + "dependencies": { + "es6-map": { + "version": "0.1.1", + "from": "es6-map@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.1.tgz", + "dependencies": { + "d": { + "version": "0.1.1", + "from": "d@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" + }, + "es5-ext": { + "version": "0.10.7", + "from": "es5-ext@>=0.10.4 <0.11.0", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz", + "dependencies": { + "es6-symbol": { + "version": "2.0.1", + "from": "es6-symbol@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" + } + } + }, + "es6-iterator": { + "version": "0.1.3", + "from": "es6-iterator@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", + "dependencies": { + "es6-symbol": { + "version": "2.0.1", + "from": "es6-symbol@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" + } + } + }, + "es6-set": { + "version": "0.1.1", + "from": "es6-set@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.1.tgz" + }, + "es6-symbol": { + "version": "0.1.1", + "from": "es6-symbol@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-0.1.1.tgz" + }, + "event-emitter": { + "version": "0.3.3", + "from": "event-emitter@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.3.tgz" + } + } + }, + "es6-weak-map": { + "version": "0.1.4", + "from": "es6-weak-map@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", + "dependencies": { + "d": { + "version": "0.1.1", + "from": "d@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" + }, + "es5-ext": { + "version": "0.10.7", + "from": "es5-ext@>=0.10.6 <0.11.0", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.7.tgz" + }, + "es6-iterator": { + "version": "0.1.3", + "from": "es6-iterator@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz" + }, + "es6-symbol": { + "version": "2.0.1", + "from": "es6-symbol@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" + } + } + }, + "esrecurse": { + "version": "3.1.1", + "from": "esrecurse@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-3.1.1.tgz" + }, + "estraverse": { + "version": "3.1.0", + "from": "estraverse@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.tgz" + } + } + }, + "espree": { + "version": "2.0.4", + "from": "espree@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-2.0.4.tgz" + }, + "estraverse": { + "version": "4.1.0", + "from": "estraverse@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.0.tgz" + }, + "estraverse-fb": { + "version": "1.3.1", + "from": "estraverse-fb@>=1.3.1 <2.0.0", + "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz" + }, + "globals": { + "version": "8.2.0", + "from": "globals@>=8.0.0 <9.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-8.2.0.tgz" + }, + "inquirer": { + "version": "0.8.5", + "from": "inquirer@>=0.8.2 <0.9.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz", + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "from": "ansi-regex@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + }, + "cli-width": { + "version": "1.0.1", + "from": "cli-width@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.0.1.tgz" + }, + "figures": { + "version": "1.3.5", + "from": "figures@>=1.3.5 <2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.3.5.tgz" + }, + "lodash": { + "version": "3.9.3", + "from": "lodash@>=3.3.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz" + }, + "readline2": { + "version": "0.1.1", + "from": "readline2@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz", + "dependencies": { + "mute-stream": { + "version": "0.0.4", + "from": "mute-stream@0.0.4", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz" + }, + "strip-ansi": { + "version": "2.0.1", + "from": "strip-ansi@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz" + } + } + }, + "rx": { + "version": "2.5.3", + "from": "rx@>=2.4.3 <3.0.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz" + }, + "through": { + "version": "2.3.7", + "from": "through@>=2.3.6 <3.0.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.0", + "from": "is-my-json-valid@>=2.10.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.0.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "1.1.0", + "from": "jsonpointer@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + }, + "js-yaml": { + "version": "3.3.1", + "from": "js-yaml@>=3.2.5 <4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.3.1.tgz", + "dependencies": { + "argparse": { + "version": "1.0.2", + "from": "argparse@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.2.tgz", + "dependencies": { + "lodash": { + "version": "3.9.3", + "from": "lodash@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz" + }, + "sprintf-js": { + "version": "1.0.2", + "from": "sprintf-js@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.2.tgz" + } + } + }, + "esprima": { + "version": "2.2.0", + "from": "esprima@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz" + } + } + }, + "minimatch": { + "version": "2.0.8", + "from": "minimatch@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.8.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.0", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "object-assign": { + "version": "2.1.1", + "from": "object-assign@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz" + }, + "optionator": { + "version": "0.5.0", + "from": "optionator@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz", + "dependencies": { + "prelude-ls": { + "version": "1.1.2", + "from": "prelude-ls@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + }, + "deep-is": { + "version": "0.1.3", + "from": "deep-is@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + }, + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@>=0.0.2 <0.1.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "type-check": { + "version": "0.3.1", + "from": "type-check@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz" + }, + "levn": { + "version": "0.2.5", + "from": "levn@>=0.2.5 <0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz" + }, + "fast-levenshtein": { + "version": "1.0.6", + "from": "fast-levenshtein@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.6.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "strip-json-comments": { + "version": "1.0.2", + "from": "strip-json-comments@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz" + }, + "text-table": { + "version": "0.2.0", + "from": "text-table@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + }, + "user-home": { + "version": "1.1.1", + "from": "user-home@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + }, + "xml-escape": { + "version": "1.0.0", + "from": "xml-escape@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz" + } + } + } + } + }, "grunt-nsp-shrinkwrap": { "version": "0.0.3", "from": "grunt-nsp-shrinkwrap@0.0.3", @@ -710,287 +1247,6 @@ } } }, - "jshint": { - "version": "2.5.11", - "from": "jshint@>=2.5.0 <2.6.0", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.5.11.tgz", - "dependencies": { - "cli": { - "version": "0.6.6", - "from": "cli@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", - "dependencies": { - "glob": { - "version": "3.2.11", - "from": "glob@>=3.2.1 <3.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "0.3.0", - "from": "minimatch@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "dependencies": { - "lru-cache": { - "version": "2.6.4", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - } - } - } - } - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dependencies": { - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - } - } - }, - "exit": { - "version": "0.1.2", - "from": "exit@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - }, - "htmlparser2": { - "version": "3.8.3", - "from": "htmlparser2@>=3.8.0 <3.9.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "dependencies": { - "domhandler": { - "version": "2.3.0", - "from": "domhandler@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" - }, - "domutils": { - "version": "1.5.1", - "from": "domutils@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "dependencies": { - "dom-serializer": { - "version": "0.1.0", - "from": "dom-serializer@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "from": "domelementtype@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" - }, - "entities": { - "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" - } - } - } - } - }, - "domelementtype": { - "version": "1.3.0", - "from": "domelementtype@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "entities": { - "version": "1.0.0", - "from": "entities@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" - } - } - }, - "minimatch": { - "version": "1.0.0", - "from": "minimatch@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "dependencies": { - "lru-cache": { - "version": "2.6.4", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - }, - "shelljs": { - "version": "0.3.0", - "from": "shelljs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz" - }, - "strip-json-comments": { - "version": "1.0.2", - "from": "strip-json-comments@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz" - }, - "underscore": { - "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" - } - } - }, - "jshint-stylish": { - "version": "0.4.0", - "from": "jshint-stylish@0.4.0", - "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-0.4.0.tgz", - "dependencies": { - "chalk": { - "version": "0.5.1", - "from": "chalk@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "1.1.0", - "from": "ansi-styles@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "0.1.0", - "from": "has-ansi@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "from": "ansi-regex@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" - } - } - }, - "strip-ansi": { - "version": "0.3.0", - "from": "strip-ansi@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "from": "ansi-regex@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" - } - } - }, - "supports-color": { - "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" - } - } - }, - "log-symbols": { - "version": "1.0.2", - "from": "log-symbols@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "dependencies": { - "chalk": { - "version": "1.0.0", - "from": "chalk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.0.1", - "from": "ansi-styles@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "1.0.3", - "from": "has-ansi@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz", - "dependencies": { - "ansi-regex": { - "version": "1.1.1", - "from": "ansi-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" - }, - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - } - } - }, - "strip-ansi": { - "version": "2.0.1", - "from": "strip-ansi@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", - "dependencies": { - "ansi-regex": { - "version": "1.1.1", - "from": "ansi-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" - } - } - }, - "supports-color": { - "version": "1.3.1", - "from": "supports-color@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz" - } - } - } - } - }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - } - } - }, "load-grunt-tasks": { "version": "3.1.0", "from": "load-grunt-tasks@3.1.0", @@ -1176,7 +1432,7 @@ }, "node-uuid": { "version": "1.4.3", - "from": "node-uuid@>=1.4.1 <2.0.0", + "from": "node-uuid@>=1.4.0 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" }, "tough-cookie": { @@ -1307,9 +1563,9 @@ } }, "csv": { - "version": "0.4.4", + "version": "0.4.5", "from": "csv@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-0.4.4.tgz", + "resolved": "https://registry.npmjs.org/csv/-/csv-0.4.5.tgz", "dependencies": { "csv-generate": { "version": "0.0.6", @@ -1322,9 +1578,9 @@ "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-0.1.3.tgz" }, "stream-transform": { - "version": "0.0.9", - "from": "stream-transform@>=0.0.9 <0.0.10", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.0.9.tgz" + "version": "0.1.0", + "from": "stream-transform@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.0.tgz" }, "csv-stringify": { "version": "0.0.8", @@ -1480,7 +1736,7 @@ }, "glob": { "version": "3.2.11", - "from": "glob@>=3.2.9 <3.3.0", + "from": "glob@>=3.2.1 <3.3.0", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "dependencies": { "minimatch": { diff --git a/package.json b/package.json index 4365c47..7b1d38c 100644 --- a/package.json +++ b/package.json @@ -27,14 +27,13 @@ }, "devDependencies": { "ass": "git://github.com/jrgm/ass.git#5be99ee7abc9fcf63f9ebcc37b151b9c822146d1", + "eslint-config-fxa": "1.7.0", "grunt": "0.4.5", "grunt-bump": "0.3.0", "grunt-cli": "0.1.13", - "grunt-contrib-jshint": "0.10.0", "grunt-copyright": "0.1.0", + "grunt-eslint": "16.0.0", "grunt-nsp-shrinkwrap": "0.0.3", - "jshint": "2.5.x", - "jshint-stylish": "0.4.0", "load-grunt-tasks": "3.1.0", "request": "2.40.0", "tap": "0.4.12", diff --git a/test/local/ip_record_tests.js b/test/local/ip_record_tests.js index 2423fad..7b315e8 100644 --- a/test/local/ip_record_tests.js +++ b/test/local/ip_record_tests.js @@ -6,11 +6,11 @@ var test = require('tap').test var ipRecord = require('../../ip_record') function now() { - return 240*1000 // old school + return 240 * 1000 // old school } function simpleIpRecord() { - return new (ipRecord(120*1000, now))() + return new (ipRecord(120 * 1000, now))() } test( @@ -21,9 +21,9 @@ test( t.equal(ir.shouldBlock(), false, 'record has never been blocked') ir.bk = now() t.equal(ir.shouldBlock(), true, 'record is blocked') - ir.bk = now() - 60*1000; + ir.bk = now() - 60 * 1000 t.equal(ir.shouldBlock(), true, 'record is still blocked') - ir.bk = now() - 120*1000; // blockInterval + ir.bk = now() - 120 * 1000 // blockInterval t.equal(ir.shouldBlock(), false, 'record is no longer blocked') t.end() } @@ -47,11 +47,11 @@ test( var ir = simpleIpRecord() t.equal(ir.retryAfter(), 0, 'unblocked records can be retried now') - ir.bk = now() - 180*1000 + ir.bk = now() - 180 * 1000 t.equal(ir.retryAfter(), 0, 'long expired blocks can be retried immediately') - ir.bk = now() - 120*1000 + ir.bk = now() - 120 * 1000 t.equal(ir.retryAfter(), 0, 'just expired blocks can be retried immediately') - ir.bk = now() - 60*1000 + ir.bk = now() - 60 * 1000 t.equal(ir.retryAfter(), 60, 'unexpired blocks can be retried in a bit') t.end() } @@ -62,12 +62,12 @@ test( function (t) { var ir = simpleIpRecord() t.equal(ir.shouldBlock(), false, 'original object is not blocked') - var irCopy1 = (ipRecord(120*1000, now)).parse(ir) + var irCopy1 = (ipRecord(120 * 1000, now)).parse(ir) t.equal(irCopy1.shouldBlock(), false, 'copied object is not blocked') ir.block() t.equal(ir.shouldBlock(), true, 'original object is now blocked') - var irCopy2 = (ipRecord(120*1000, now)).parse(ir) + var irCopy2 = (ipRecord(120 * 1000, now)).parse(ir) t.equal(irCopy2.shouldBlock(), true, 'copied object is blocked') t.end() } diff --git a/test/remote/block_email_tests.js b/test/remote/block_email_tests.js index 84932af..6446d47 100644 --- a/test/remote/block_email_tests.js +++ b/test/remote/block_email_tests.js @@ -41,7 +41,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'missing email', diff --git a/test/remote/block_ip_tests.js b/test/remote/block_ip_tests.js index d34d66f..c6785e2 100644 --- a/test/remote/block_ip_tests.js +++ b/test/remote/block_ip_tests.js @@ -41,7 +41,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'missing ip', diff --git a/test/remote/check_tests.js b/test/remote/check_tests.js index b66daea..63bbbec 100644 --- a/test/remote/check_tests.js +++ b/test/remote/check_tests.js @@ -28,9 +28,10 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) -['accountCreate', 'accountLogin', 'passwordChange'].forEach(function (action) { +// NOTE: Leading semi-colon because ASI is funny. +; ['accountCreate', 'accountLogin', 'passwordChange'].forEach(function (action) { test( 'normal ' + action, function (t) { diff --git a/test/remote/email_normalization.js b/test/remote/email_normalization.js index eaf12be..9399bfa 100644 --- a/test/remote/email_normalization.js +++ b/test/remote/email_normalization.js @@ -42,7 +42,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'too many failed logins using different capitalizations', diff --git a/test/remote/failed_login_attempt_tests.js b/test/remote/failed_login_attempt_tests.js index 95252c1..d2d3d01 100644 --- a/test/remote/failed_login_attempt_tests.js +++ b/test/remote/failed_login_attempt_tests.js @@ -28,7 +28,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'well-formed request', diff --git a/test/remote/never_blocked.js b/test/remote/never_blocked.js index a3b8434..a6042c4 100644 --- a/test/remote/never_blocked.js +++ b/test/remote/never_blocked.js @@ -42,7 +42,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'maximum number of emails', diff --git a/test/remote/password_reset_clears_bad_logins.js b/test/remote/password_reset_clears_bad_logins.js index ca335aa..96f4c6a 100644 --- a/test/remote/password_reset_clears_bad_logins.js +++ b/test/remote/password_reset_clears_bad_logins.js @@ -42,7 +42,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'too many failed logins', diff --git a/test/remote/password_reset_tests.js b/test/remote/password_reset_tests.js index 1bb0d78..71674a0 100644 --- a/test/remote/password_reset_tests.js +++ b/test/remote/password_reset_tests.js @@ -27,7 +27,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'well-formed request', diff --git a/test/remote/root_tests.js b/test/remote/root_tests.js index f437f1c..67fb4dd 100644 --- a/test/remote/root_tests.js +++ b/test/remote/root_tests.js @@ -26,7 +26,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'version check', diff --git a/test/remote/too_many_bad_logins.js b/test/remote/too_many_bad_logins.js index 386e7ae..c9ef926 100644 --- a/test/remote/too_many_bad_logins.js +++ b/test/remote/too_many_bad_logins.js @@ -46,7 +46,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'too many failed logins from the same IP', diff --git a/test/remote/too_many_emails.js b/test/remote/too_many_emails.js index 330c545..1260ed7 100644 --- a/test/remote/too_many_emails.js +++ b/test/remote/too_many_emails.js @@ -45,7 +45,7 @@ test( var client = restify.createJsonClient({ url: 'http://127.0.0.1:' + config.listen.port -}); +}) test( 'too many sent emails',