UNPKG

gherkin-lint

Version:

A Gherkin linter/validator written in javascript

51 lines (40 loc) 1.09 kB
"use strict"; const path = require('path'); const _ = require('lodash'); const rule = 'file-name'; const availableConfigs = { 'style': 'PascalCase' }; const checkers = { 'PascalCase': filename => _.startCase(filename).replace(/ /g, ''), 'Title Case': filename => _.startCase(filename), 'camelCase': filename => _.camelCase(filename), 'kebab-case': filename => _.kebabCase(filename), 'snake_case': filename => _.snakeCase(filename) }; function run(feature, file, configuration) { if (!file) { return []; } const { style } = _.merge(availableConfigs, configuration); const filename = path.basename(file.relativePath, '.feature'); if (!checkers[style]) { throw new Error('style "' + style + '" not supported for file-name rule'); } const expected = checkers[style](filename); if (filename === expected) { return []; } return [{ message: `File names should be written in ${style} e.g. "${expected}.feature"`, rule: rule, line: 0 }]; } module.exports = { name: rule, run: run, availableConfigs: availableConfigs };