Не запускаются тесты при срабатывании pre-commit hook

Если руками запускать тесты через команду yarn test:unit, тесты отрабатывают правильно, находят ошибки и падают.

Если тесты запускать через lint-staged, который в свою очередь запускается husky, тогда она просто начинает выполнят команду и тесты проходят в любом случае и показывает зеленую галку, что команда выполнена успешно.

Не могу разобраться, почему при git commit не отрабатывают тесты.

lint-staged.config.js

module.exports = {
  '*.{js,jsx,ts,tsx,vue}': ['yarn lint --fix'],
  // Note: when change extensions list, should change in package.json `lint:css` too
  '*.{vue,htm,html,css,sss,less,scss,sass}': ['yarn lint:css'],
  '*.[tj]s': ['vue-cli-service'],
};

husky.config.js

module.exports = {
  hooks: {
    'pre-commit': 'lint-staged',
    'commit-msg': 'commitlint -e $HUSKY_GIT_PARAMS',
  },
};

jest.config.js

// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/24.x/configuration

module.exports = {
  preset: '@vue/cli-plugin-unit-jest',

  // The paths to modules that run some code to configure or set up the testing
  // environment before each test
  // setupFiles: [],
  setupFiles: [
    './tests/setup.vue.js',
  ],
  // collectCoverage: true,
  // collectCoverageFrom: [
  //   './src/**/*.{js,vue}',
  //   '!**/node_modules/**',
  //   '!./src/plugins/**',
  //   '!./src/services/backend/**',
  //   '!./src/services/index.js',
  // ],
  // coverageReporters: ['html', 'text-summary'],
};

package.json

{
  "scripts": {
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "test:coverage": "vue-cli-service test:unit --coverage ",
    "lint": "vue-cli-service lint",
    "dev": "vue-cli-service serve",
    "server": "node ./script/server/index.js",
    "docs:build": "vuepress build docs",
    "docs:dev": "vuepress dev docs",
    "lint:css": "stylelint 'src/**/*.(vue|htm|html|css|sss|less|scss|sass)'"
  },
  "dependencies": {
    "axios": "^0.19.2",
    "core-js": "^3.6.4",
    "localforage": "^1.7.3",
    "lodash": "^4.17.15",
    "vue": "^2.6.11",
    "vue-router": "^3.1.6",
    "vuetify": "^2.2.15",
    "vuex": "^3.1.2"
  },
  "devDependencies": {
    "@commitlint/cli": "^8.3.5",
    "@commitlint/config-conventional": "^8.3.4",
    "@vue/cli-plugin-babel": "^4.2.3",
    "@vue/cli-plugin-eslint": "^4.2.3",
    "@vue/cli-plugin-router": "^4.2.3",
    "@vue/cli-plugin-unit-jest": "^4.2.3",
    "@vue/cli-plugin-vuex": "^4.2.3",
    "@vue/cli-service": "^4.2.3",
    "@vue/eslint-config-airbnb": "^4.0.0",
    "@vue/test-utils": "1.0.0-beta.31",
    "babel-eslint": "^10.1.0",
    "deepmerge": "^4.2.2",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^6.2.1",
    "fibers": "^4.0.2",
    "husky": "^4.2.3",
    "json-server": "^0.15.1",
    "lint-staged": "^10.0.8",
    "sass": "^1.26.2",
    "sass-loader": "^8.0.2",
    "stylelint": "^13.2.0",
    "stylelint-config-recommended": "^3.0.0",
    "stylelint-processor-html": "^1.0.0",
    "stylelint-webpack-plugin": "^1.2.3",
    "vue-template-compiler": "^2.6.11",
    "vuepress": "^1.3.1"
  }
}

Ответы (1 шт):

Автор решения: Dissarion

Проблема решена.

При поиске в интернете наткнулся на советы снести папку .git/hooks. Это помогло.

Пошагово:

  1. Устанавливаем пакеты для тестирования и git hooks.
  2. Сносим папку .git/hooks в проекте.
  3. Выполняем git commit -m '...'.
  4. Profit!
→ Ссылка