blob: b05a0dd249e55374adc050d9bc5b3b6a089df689 [file] [edit]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const path = require('path');
const rulesDirPlugin = require('eslint-plugin-rulesdir');
rulesDirPlugin.RULES_DIR = path.join(__dirname, '..', 'scripts', 'eslint_rules', 'lib');
module.exports = {
'rules' : {
// errors on it('test') with no body
'mocha/no-pending-tests' : 2,
// errors on {describe, it}.only
'rulesdir/no_only' : 2,
'rulesdir/check_test_definitions' : 2,
'rulesdir/avoid_assert_equal' : 2,
'rulesdir/no_repeated_tests' : 2,
'rulesdir/compare_arrays_with_assert_deepequal' : 2,
},
'overrides' : [{
'files' : ['*.ts'],
'rules' : {
'@typescript-eslint/naming-convention' :
[
'error',
{
'selector' : ['function', 'accessor', 'method', 'property', 'parameterProperty'],
'format' : ['camelCase'],
},
{
// Allow PascalCase as well as it is used for dynamic module imports.
'selector' : 'variable',
'format' : ['camelCase', 'PascalCase', 'UPPER_CASE'],
},
{
'selector' : 'classProperty',
'modifiers' : ['static', 'readonly'],
'format' : ['UPPER_CASE'],
},
{
'selector' : 'enumMember',
'format' : ['PascalCase', 'UPPER_CASE'],
},
{
'selector' : ['typeLike'],
'format' : ['PascalCase'],
},
{
// Also allow UPPER_CASE so argument function to evaluate can take constants as arguments without renaming.
'selector' : 'parameter',
'format' : ['camelCase', 'UPPER_CASE'],
'leadingUnderscore' : 'allow',
},
{
// Object literals may be constructed as arguments to external libraries which follow different styles.
'selector' : ['objectLiteralMethod', 'objectLiteralProperty'],
'modifiers' : ['public'],
'format' : null,
},
]
}
}]
};