Skip to content

Commit 8c2c76d

Browse files
authored
Adds liniting into the workflow (#3082)
* initial linting of src * fix indent to 2 spaces * Removes unnecessary rules * ignore spec folder for now * Spec linting * Fix spec indent * nits * nits * no no-empty rule
1 parent 6e2fba4 commit 8c2c76d

File tree

149 files changed

+3480
-3509
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+3480
-3509
lines changed

.eslintignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
lib/*
2+
coverage/*

.eslintrc.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"root": true,
3+
"extends": "eslint:recommended",
4+
"env": {
5+
"node": true,
6+
"es6": true
7+
},
8+
"parser": "babel-eslint",
9+
"plugins": [
10+
"flowtype"
11+
],
12+
"parserOptions": {
13+
"ecmaVersion": 6,
14+
"sourceType": "module"
15+
},
16+
"rules": {
17+
"indent": ["error", 2],
18+
"linebreak-style": ["error", "unix"]
19+
}
20+
}

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ before_script:
1515
- psql -c 'create database parse_server_postgres_adapter_test_database;' -U postgres
1616
- psql -c 'CREATE EXTENSION postgis;' -U postgres -d parse_server_postgres_adapter_test_database
1717
- psql -c 'CREATE EXTENSION postgis_topology;' -U postgres -d parse_server_postgres_adapter_test_database
18+
- npm run lint
1819
env:
1920
global:
2021
- COVERAGE_OPTION='./node_modules/.bin/istanbul cover'

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"devDependencies": {
4747
"babel-cli": "6.18.0",
4848
"babel-core": "6.18.2",
49+
"babel-eslint": "^7.1.1",
4950
"babel-plugin-syntax-flow": "6.13.0",
5051
"babel-plugin-transform-flow-strip-types": "6.18.0",
5152
"babel-preset-es2015": "6.14.0",
@@ -54,6 +55,8 @@
5455
"bcrypt-nodejs": "0.0.3",
5556
"cross-env": "3.1.3",
5657
"deep-diff": "0.3.4",
58+
"eslint": "^3.10.2",
59+
"eslint-plugin-flowtype": "^2.25.0",
5760
"gaze": "1.1.1",
5861
"istanbul": "1.0.0-alpha.1",
5962
"jasmine": "2.5.2",
@@ -64,6 +67,7 @@
6467
},
6568
"scripts": {
6669
"dev": "npm run build && node bin/dev",
70+
"lint": "eslint ./",
6771
"build": "babel src/ -d lib/",
6872
"test": "cross-env MONGODB_VERSION=${MONGODB_VERSION:=3.2.6} MONGODB_STORAGE_ENGINE=mmapv1 NODE_ENV=test TESTING=1 $COVERAGE_OPTION jasmine",
6973
"test:win": "npm run pretest && cross-env NODE_ENV=test TESTING=1 node ./node_modules/jasmine/bin/jasmine.js && npm run posttest",

spec/.eslintrc.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"extends": "eslint:recommended",
3+
"env": {
4+
"node": true,
5+
"es6": true,
6+
"jasmine": true
7+
},
8+
"globals": {
9+
"Parse": true,
10+
"reconfigureServer": true,
11+
"createTestUser": true,
12+
"jfail": true,
13+
"ok": true,
14+
"strictEqual": true,
15+
"TestObject": true,
16+
"Item": true,
17+
"Container": true,
18+
"equal": true,
19+
"notEqual": true,
20+
"it_exclude_dbs": true,
21+
"describe_only_db": true,
22+
"on_db": true,
23+
"defaultConfiguration": true,
24+
"expectSuccess": true,
25+
"range": true,
26+
"expectError": true,
27+
"jequal": true,
28+
"create": true,
29+
"arrayContains": true
30+
},
31+
"rules": {
32+
"no-console": [0],
33+
"indent": ["error", 2]
34+
}
35+
}

spec/AccountLockoutPolicy.spec.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const Config = require("../src/Config");
55
var loginWithWrongCredentialsShouldFail = function(username, password) {
66
return new Promise((resolve, reject) => {
77
Parse.User.logIn(username, password)
8-
.then(user => reject('login should have failed'))
8+
.then(() => reject('login should have failed'))
99
.catch(err => {
1010
if (err.message === 'Invalid username/password.') {
1111
resolve();
@@ -20,7 +20,7 @@ var isAccountLockoutError = function(username, password, duration, waitTime) {
2020
return new Promise((resolve, reject) => {
2121
setTimeout(() => {
2222
Parse.User.logIn(username, password)
23-
.then(user => reject('login should have failed'))
23+
.then(() => reject('login should have failed'))
2424
.catch(err => {
2525
if (err.message === 'Your account is locked due to multiple failed login attempts. Please try again after ' + duration + ' minute(s)') {
2626
resolve();
@@ -45,7 +45,7 @@ describe("Account Lockout Policy: ", () => {
4545
user.setPassword('password');
4646
return user.signUp(null);
4747
})
48-
.then(user => {
48+
.then(() => {
4949
return loginWithWrongCredentialsShouldFail('username1', 'incorrect password 1');
5050
})
5151
.then(() => {
@@ -71,7 +71,7 @@ describe("Account Lockout Policy: ", () => {
7171
publicServerURL: "https://my.public.server.com/1"
7272
})
7373
.then(() => {
74-
var config = new Config('test');
74+
new Config('test');
7575
fail('set duration to an invalid number test failed');
7676
done();
7777
})
@@ -95,7 +95,7 @@ describe("Account Lockout Policy: ", () => {
9595
publicServerURL: "https://my.public.server.com/1"
9696
})
9797
.then(() => {
98-
var config = new Config('test');
98+
new Config('test');
9999
fail('set threshold to an invalid number test failed');
100100
done();
101101
})
@@ -119,7 +119,7 @@ describe("Account Lockout Policy: ", () => {
119119
publicServerURL: "https://my.public.server.com/1"
120120
})
121121
.then(() => {
122-
var config = new Config('test');
122+
new Config('test');
123123
fail('threshold value < 1 is invalid test failed');
124124
done();
125125
})
@@ -143,7 +143,7 @@ describe("Account Lockout Policy: ", () => {
143143
publicServerURL: "https://my.public.server.com/1"
144144
})
145145
.then(() => {
146-
var config = new Config('test');
146+
new Config('test');
147147
fail('threshold value > 999 is invalid test failed');
148148
done();
149149
})
@@ -167,7 +167,7 @@ describe("Account Lockout Policy: ", () => {
167167
publicServerURL: "https://my.public.server.com/1"
168168
})
169169
.then(() => {
170-
var config = new Config('test');
170+
new Config('test');
171171
fail('duration value < 1 is invalid test failed');
172172
done();
173173
})
@@ -191,7 +191,7 @@ describe("Account Lockout Policy: ", () => {
191191
publicServerURL: "https://my.public.server.com/1"
192192
})
193193
.then(() => {
194-
var config = new Config('test');
194+
new Config('test');
195195
fail('duration value > 99999 is invalid test failed');
196196
done();
197197
})
@@ -230,7 +230,7 @@ describe("Account Lockout Policy: ", () => {
230230
return isAccountLockoutError('username2', 'wrong password', 1, 1);
231231
})
232232
.then(() => {
233-
done();
233+
done();
234234
})
235235
.catch(err => {
236236
fail('lock account after failed login attempts test failed: ' + JSON.stringify(err));
@@ -301,7 +301,7 @@ describe("Account Lockout Policy: ", () => {
301301
return new Promise((resolve, reject) => {
302302
setTimeout(() => {
303303
Parse.User.logIn('username4', 'correct password')
304-
.then(user => resolve())
304+
.then(() => resolve())
305305
.catch(err => reject(err));
306306
}, 3001);
307307
});

spec/AdaptableController.spec.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe("AdaptableController", ()=>{
3131
});
3232

3333
it("should fail setting the wrong adapter to the controller", (done) => {
34-
function WrongAdapter() {};
34+
function WrongAdapter() {}
3535
var adapter = new FilesAdapter();
3636
var controller = new FilesController(adapter);
3737
var otherAdapter = new WrongAdapter();
@@ -42,7 +42,7 @@ describe("AdaptableController", ()=>{
4242
});
4343

4444
it("should fail to instantiate a controller with wrong adapter", (done) => {
45-
function WrongAdapter() {};
45+
function WrongAdapter() {}
4646
var adapter = new WrongAdapter();
4747
expect(() => {
4848
new FilesController(adapter);
@@ -59,10 +59,10 @@ describe("AdaptableController", ()=>{
5959

6060
it("should accept an object adapter", (done) => {
6161
var adapter = {
62-
createFile: function(config, filename, data) { },
63-
deleteFile: function(config, filename) { },
64-
getFileData: function(config, filename) { },
65-
getFileLocation: function(config, filename) { },
62+
createFile: function() { },
63+
deleteFile: function() { },
64+
getFileData: function() { },
65+
getFileLocation: function() { },
6666
}
6767
expect(() => {
6868
new FilesController(adapter);
@@ -71,11 +71,11 @@ describe("AdaptableController", ()=>{
7171
});
7272

7373
it("should accept an object adapter", (done) => {
74-
function AGoodAdapter() {};
75-
AGoodAdapter.prototype.createFile = function(config, filename, data) { };
76-
AGoodAdapter.prototype.deleteFile = function(config, filename) { };
77-
AGoodAdapter.prototype.getFileData = function(config, filename) { };
78-
AGoodAdapter.prototype.getFileLocation = function(config, filename) { };
74+
function AGoodAdapter() {}
75+
AGoodAdapter.prototype.createFile = function() { };
76+
AGoodAdapter.prototype.deleteFile = function() { };
77+
AGoodAdapter.prototype.getFileData = function() { };
78+
AGoodAdapter.prototype.getFileLocation = function() { };
7979

8080
var adapter = new AGoodAdapter();
8181
expect(() => {

spec/Analytics.spec.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const analyticsAdapter = {
2-
appOpened: function(parameters, req) {},
3-
trackEvent: function(eventName, parameters, req) {}
2+
appOpened: function() {},
3+
trackEvent: function() {}
44
}
55

66
describe('AnalyticsController', () => {
@@ -9,7 +9,7 @@ describe('AnalyticsController', () => {
99
spyOn(analyticsAdapter, 'trackEvent').and.callThrough();
1010
reconfigureServer({
1111
analyticsAdapter
12-
}).then(() => {
12+
}).then(() => {
1313
return Parse.Analytics.track('MyEvent', {
1414
key: 'value',
1515
count: '0'
@@ -26,7 +26,7 @@ describe('AnalyticsController', () => {
2626
}
2727
});
2828
done();
29-
}, (err) => {
29+
}, (err) => {
3030
fail(JSON.stringify(err));
3131
done();
3232
})
@@ -37,7 +37,7 @@ describe('AnalyticsController', () => {
3737
spyOn(analyticsAdapter, 'appOpened').and.callThrough();
3838
reconfigureServer({
3939
analyticsAdapter
40-
}).then(() => {
40+
}).then(() => {
4141
return Parse.Analytics.track('AppOpened', {
4242
key: 'value',
4343
count: '0'
@@ -53,7 +53,7 @@ describe('AnalyticsController', () => {
5353
}
5454
});
5555
done();
56-
}, (err) => {
56+
}, (err) => {
5757
fail(JSON.stringify(err));
5858
done();
5959
})

spec/Auth.spec.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ describe('Auth', () => {
44
describe('getUserRoles', () => {
55
var auth;
66
var config;
7-
var cacheController;
87
var currentRoles = null;
98
var currentUserId = 'userId';
109

@@ -51,8 +50,8 @@ describe('Auth', () => {
5150
expect(roles).toEqual(currentRoles);
5251
return auth.getUserRoles()
5352
})
54-
.then((roles) => auth.getUserRoles())
55-
.then((roles) => auth.getUserRoles())
53+
.then(() => auth.getUserRoles())
54+
.then(() => auth.getUserRoles())
5655
.then((roles) => {
5756
// Should only call the cache adapter once.
5857
expect(config.cacheController.role.get.calls.count()).toEqual(1);
@@ -79,7 +78,7 @@ describe('Auth', () => {
7978
.then(() => done());
8079
});
8180

82-
it('should properly handle bcrypt upgrade', (done) => {
81+
it('should properly handle bcrypt upgrade', (done) => {
8382
var bcryptOriginal = require('bcrypt-nodejs');
8483
var bcryptNew = require('bcryptjs');
8584
bcryptOriginal.hash('my1Long:password', null, null, function(err, res) {

spec/CacheController.spec.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,13 @@ describe('CacheController', function() {
6262

6363
it('should handle cache rejections', (done) => {
6464

65-
FakeCacheAdapter.get = () => Promise.reject();
65+
FakeCacheAdapter.get = () => Promise.reject();
6666

67-
var cache = new CacheController(FakeCacheAdapter, FakeAppID);
67+
var cache = new CacheController(FakeCacheAdapter, FakeAppID);
6868

69-
cache.get('foo').then(done, () => {
70-
fail('Promise should not be rejected.');
71-
});
69+
cache.get('foo').then(done, () => {
70+
fail('Promise should not be rejected.');
71+
});
7272
});
7373

7474
});

spec/ClientSDK.spec.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
var ClientSDK = require('../src/ClientSDK');
22

3-
describe('ClientSDK', () => {
4-
it('should properly parse the SDK versions', () => {
5-
let clientSDKFromVersion = ClientSDK.fromString;
6-
expect(clientSDKFromVersion('i1.1.1')).toEqual({
7-
sdk: 'i',
8-
version: '1.1.1'
9-
});
10-
expect(clientSDKFromVersion('i1')).toEqual({
11-
sdk: 'i',
12-
version: '1'
13-
});
14-
expect(clientSDKFromVersion('apple-tv1.13.0')).toEqual({
15-
sdk: 'apple-tv',
16-
version: '1.13.0'
17-
});
18-
expect(clientSDKFromVersion('js1.9.0')).toEqual({
19-
sdk: 'js',
20-
version: '1.9.0'
21-
});
3+
describe('ClientSDK', () => {
4+
it('should properly parse the SDK versions', () => {
5+
let clientSDKFromVersion = ClientSDK.fromString;
6+
expect(clientSDKFromVersion('i1.1.1')).toEqual({
7+
sdk: 'i',
8+
version: '1.1.1'
9+
});
10+
expect(clientSDKFromVersion('i1')).toEqual({
11+
sdk: 'i',
12+
version: '1'
13+
});
14+
expect(clientSDKFromVersion('apple-tv1.13.0')).toEqual({
15+
sdk: 'apple-tv',
16+
version: '1.13.0'
17+
});
18+
expect(clientSDKFromVersion('js1.9.0')).toEqual({
19+
sdk: 'js',
20+
version: '1.9.0'
21+
});
2222
});
2323

24-
it('should properly sastisfy', () => {
24+
it('should properly sastisfy', () => {
2525
expect(ClientSDK.compatible({
2626
js: '>=1.9.0'
2727
})("js1.9.0")).toBe(true);

0 commit comments

Comments
 (0)