eslint-plugin-mocha
Version:
Eslint rules for mocha.
40 lines • 1.55 kB
JavaScript
import { createMochaVisitors } from '../ast/mocha-visitors.js';
import { isRecord } from '../record.js';
export const consistentInterfaceRule = {
meta: {
type: 'problem',
docs: {
description: 'Enforces consistent use of mocha interfaces',
url: 'https://github.com/lo1tuma/eslint-plugin-mocha/blob/main/docs/rules/consistent-interface.md'
},
schema: [
{
type: 'object',
properties: {
interface: {
type: 'string',
enum: ['BDD', 'TDD'],
default: 'BDD'
}
},
additionalProperties: false
}
]
},
create(context) {
const options = isRecord(context.options[0]) ? context.options[0] : {};
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- we know that this is a string because of the schema validation
const interfaceToUse = options.interface;
return createMochaVisitors(context, {
anyTestEntity(visitorContext) {
if (visitorContext.interface !== interfaceToUse) {
context.report({
node: visitorContext.node,
message: `Unexpected use of ${visitorContext.interface} interface instead of ${interfaceToUse}`
});
}
}
});
}
};
//# sourceMappingURL=consistent-interface.js.map