Michael Krotscheck d67ab88e21 Added test for new rules
This patch adds unit tests that ensure new rules - added by an eslint
upgrade perhaps - are not missed. The patch also adds those rules
that have already fallen through the cracks.

Change-Id: Idf84af253995690bd7043813a8c891c96f443e0f
2015-09-21 15:44:51 +00:00

59 lines
1.8 KiB
JavaScript

describe("Unit: eslint-config-openstack", function() {
it("should set espree as the default parser.", function() {
var config = require('../index');
expect(config.parser).toEqual('espree');
});
it("should disable all ecma6 features.", function() {
var config = require('../index');
var keys = Object.keys(config.ecmaFeatures);
keys.forEach(function(key) {
expect(config.ecmaFeatures[key]).toBeFalsy();
});
});
it("should disable all environments.", function() {
var config = require('../index');
expect(config.env).toBeFalsy();
});
it("should alert on rule replacements.", function() {
var eslintReplacements = require('eslint/conf/replacements.json');
var rules = require('../index').rules;
/*eslint-disable guard-for-in */
for (var ruleName in eslintReplacements) {
expect(rules.hasOwnProperty(ruleName))
.toBeFalsy("Rule " + ruleName + " has been replaced:", eslintReplacements[ruleName]);
}
/*eslint-enable guard-for-in */
});
it("should have an opinion on every eslint default rule.", function() {
var eslintDefaults = require('eslint/conf/eslint.json');
var rules = require('../index').rules;
/*eslint-disable guard-for-in */
for (var ruleName in eslintDefaults.rules) {
expect(rules.hasOwnProperty(ruleName))
.toBeTruthy("Rule " + ruleName + " must be defined.");
}
/*eslint-enable guard-for-in */
});
it("should only have opinions on rules that exist (no zombies).", function() {
var eslintRules = require('eslint/conf/eslint.json').rules;
var openstackRules = require('../index').rules;
/*eslint-disable guard-for-in */
for (var ruleName in openstackRules) {
expect(eslintRules.hasOwnProperty(ruleName))
.toBeTruthy("Rule " + ruleName + " is a zombie.");
}
/*eslint-enable guard-for-in */
});
});