VS Code Jest и Cypress intellisense не работают должным образом с Chai - PullRequest
1 голос
/ 19 апреля 2019

Я использую Jest в качестве основы для модульного тестирования, и ниже приведено правильное значение:

enter image description here

Однако, когда я устанавливаю Cypress "cypress": "^3.2.0", тот же код теперь отображает ошибку Property 'toMatch' does not exist on type 'Assertion'. Did you mean 'match'?. Причиной для этого IMO является установка Cypress под node_modules/cypress/types/chai/index.d.ts, а VS Code выбирает их для intellisense. И Jest, и Cypress зависят от библиотеки утверждений Chai. Intellisense после установки Cypress:

enter image description here

Есть ли способ сообщить VS Code, какой Chai intellisense использовать в определенной папке? Или есть какой-то способ указать это в jsconfig.json файле?

1 Ответ

2 голосов
/ 21 апреля 2019

Решением было создать псевдонимы для глобальных переменных, представленных в Jest и украсить эти переменные с помощью @type в JSDoc. Итак, я создал файл jestGlobals.js в той же директории, где находятся мои тесты.

jestGlobals.js file: (я для простоты включил только одну глобальную переменную, но вы бы сделали то же самое для всех глобальных переменных):

/** @type {jest.Expect} */
// @ts-ignore
let expect = global.expect

export { expect }

Затем я просто импортирую эти переменные в мои *.spec.js файлы:

import { expect } from './jestGlobals'

Теперь, когда я использую эти псевдонимы, я получил правильный intellisense, как это: enter image description here

...