Как я могу проверить шаблон ejs файла машинописи с помощью typcript-eslint - PullRequest
0 голосов
/ 01 июня 2019

У меня есть шаблон ejs для файла машинописного текста, мне нужно написать модульный тест с #jest для проверки вывода обработанного машинописного текста моего шаблона с помощью # typescript-eslint (не tslint, потому что он скоро будет устаревшим: https://medium.com/palantir/tslint-in-2019-1a144c2317a9)

Итак, мне нужно потребовать модуль typcript-eslint в моем spec-файле и запустить проверку моих отрисованных ejs по коду:

it('should be valid typescript file', () => {
        return ejs.renderFile('my-ejs-template.ts.ejs', {}).then(async (view) => {
            const eslint = require('@typescript-eslint/eslint-plugin');
            // what is next ???
        });
    });

Любая помощь будет очень ценится

1 Ответ

0 голосов
/ 30 июня 2019

Сначала установите следующие модули в devDependencies:

  • @ typescript-eslint / eslint-plugin
  • @ машинопись-eslint / анализатор

Во-вторых, импортируйте модуль eslint в ваш spec-файл следующим образом:

const eslint = require('eslint');

В-третьих, создайте файл конфигурации .eslintrc.js для разбора файлов машинописного текста, например:

module.exports = {
  env: {
    node: true,
    es6: true,
  },
  extends: ['plugin:@typescript-eslint/recommended'],
  parser: '@typescript-eslint/parser',
  parserOptions: {
    sourceType: 'module',
    typescript: true,
    modules: true,
    ecmaVersion: 6,
    ecmaFeatures: {
      experimentalObjectRestSpread: true,
    },
  },
  plugins: ['@typescript-eslint'],
  rules: {
    indent: ['error', 4],
    'linebreak-style': ['error', 'unix'],
    quotes: ['error', 'single'],
    semi: ['error', 'always'],
  },
};

Затем импортируйте указанный выше файл конфигурации в ваш spec-файл и создайте функцию для получения линтера:

const configTsEslint = require('.eslintrc-typescript');
const tsLinter = () => {
    const Linter = eslint.Linter;
    return new Linter();
};

Наконец, проверьте ваш файл машинописи следующим образом:

it('should be valid typescript file', () => {
        return ejs.renderFile('my-ejs-template.ts.ejs', {}).then(async (view) => {
            const result = tsLinter().verifyAndFix(view);
            expect(result.messages).toStrictEqual([]);
            expect(result.fixed).toBe(true);
        });
    });

Вы можете добавить правила, которые поддерживаются [typescript-eslint] [1]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...