Устранение ошибки линтера - «мелкий» не определен no-undef - PullRequest
0 голосов
/ 01 октября 2018

Я использую JEST и Enzyme.В моем файле eslint я добавил шутку как истину в env.Но я получаю ошибку lint для мелкого, поскольку я включил это глобально. Ошибка is- ошибка 'мелкая' не определена no-undef

setupTests.js

//as we are accessing our application with a http://localhost prefix, we need to update our jest configuration

import { shallow, render, mount, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
// React 16 Enzyme adapter
configure({ adapter: new Adapter() });
// Make Enzyme functions available in all test files without importing
global.shallow = shallow;
global.render = render;
global.mount = mount;

.eslintrc

{
  parser: "babel-eslint",
  "extends": ["airbnb"],
  "env": {
    "browser": true,
    "jest": true
  },
  "rules": {
    "max-len": [1, 200, 2, {ignoreComments: true}],
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    "no-underscore-dangle": [0, { "allow": [] }],
    "jsx-a11y/label-has-associated-control": [
      "error", {
        "required": {
          "every": [ "id" ]
        }
      }
    ],
    "jsx-a11y/label-has-for": [
      "error", {
        "required": {
          "every": [ "id" ]
        }
      }
    ]
  }
}

app.test.js

import React from 'react';

import { LoginFormComponent } from '../../components';

describe('LoginForm', () => {
  const loginform = shallow(<LoginFormComponent />);

  it('renders correctly', () => {
    expect(loginform).toMatchSnapshot();
  });
});

package.json

 "scripts": {
    "dev": "webpack-dev-server --historyApiFallback true --port 8888 --content-base build/",
    "test": "jest",
    "lint": "eslint ./src",
    "lintfix": "eslint ./src --fix"
  },
  "jest": {
    "verbose": true,
    "testURL": "http://localhost/",
    "transform": {
      "^.+\\.js$": "babel-jest"
    },
    "setupFiles": [
      "./setupTests.js"
    ],
    "snapshotSerializers": [
      "enzyme-to-json/serializer"
    ]
  },

Ошибкаприходит в мой app.test.js, где я пытаюсь использовать мелкие.Должен ли я добавить что-то в мой конфиг eslint для энзима так, как я сделал jest как истину?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Обновлено .eslintrc

{
  parser: "babel-eslint",
  "extends": ["airbnb"],
  "env": {
    "browser": true,
    "jest": true
  },
  "globals": {
    "shallow": true
  },
  "rules": {
    "max-len": [1, 200, 2, {ignoreComments: true}],
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    "no-underscore-dangle": [0, { "allow": [] }],
    "jsx-a11y/label-has-associated-control": [
      "error", {
        "required": {
          "every": [ "id" ]
        }
      }
    ],
    "jsx-a11y/label-has-for": [
      "error", {
        "required": {
          "every": [ "id" ]
        }
      }
    ]
  }
}
0 голосов
/ 01 октября 2018

Как насчет добавления глобального оператора? eslint no-undef docs

/*global someFunction b:true*/
/*eslint no-undef: "error"*/

var a = someFunction();
b = 10;

или глобальное значение .eslintrc ( eslint global )

{
    "globals": {
        "shallow": true,
        "render": true,
        "mount": true
    }
}
...