UNPKG

eslint-plugin-folder-name-convention

Version:

ESLint plugin to enforce folder naming conventions (kebab-case, camelCase, etc.)

53 lines (48 loc) 1.54 kB
const path = require('path'); const fs = require('fs'); const os = require('os'); const { RuleTester } = require('eslint'); const rule = require('../lib/rules/enforce'); // Setup for valid test const validTmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'eslint-folder-test-valid-')); fs.mkdirSync(path.join(validTmpDir, 'valid-folder')); fs.mkdirSync(path.join(validTmpDir, 'another-folder')); const validDummyFile = path.join(validTmpDir, 'index.js'); fs.writeFileSync(validDummyFile, '// dummy'); // Setup for invalid test const invalidTmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'eslint-folder-test-invalid-')); fs.mkdirSync(path.join(invalidTmpDir, 'InvalidFolderName')); const invalidDummyFile = path.join(invalidTmpDir, 'index.js'); fs.writeFileSync(invalidDummyFile, '// dummy'); const ruleTester = new RuleTester({ languageOptions: { ecmaVersion: 2020 } }); ruleTester.run('folder-name-convention/enforce', rule, { valid: [ { filename: validDummyFile, code: '// valid folder structure', options: [ { pattern: 'kebab-case', rootDir: validTmpDir, }, ], }, ], invalid: [ { filename: invalidDummyFile, code: '// contains invalid folder name', options: [ { pattern: 'kebab-case', rootDir: invalidTmpDir, }, ], errors: [ { message: `Folder name "${path.join(invalidTmpDir, 'InvalidFolderName')}" does not match pattern "kebab-case".`, }, ], }, ], });