След като надстроих Jest от версия 23 на версия 24, когато изпълнявам моите тестове, получавам предупредително съобщение като това за почти всеки тест:
Обратното извикване „describe“ не трябва да връща стойност. Връщането на стойност от „describe“ ще се провали на теста в бъдеща версия на Jest.
Придружаващото проследяване на стека сочи към този модул:
addSpecsToSuite (node_modules/jest-jasmine2/build/jasmine/Env.js:443:15)
Причината за това е, че обичам да използвам съкратената версия на функции със стрелки за моите тестове, като пропускам фигурни скоби, когато тялото на функцията съдържа само един израз, например:
describe('true', () =>
it('should be truthy', () =>
expect(true).toBeTruthy()));
Операторът it
очевидно връща нещо различно от undefined
, оттук и предупреждението.
Намерих два начина да поправя това:
① Не използвайте функции със стенографски стрелки
describe('true', () => {
it('should be truthy', () =>
expect(true).toBeTruthy());
});
② Използвайте void
за принудително връщане на недефинирано
describe('true', () =>
void it('should be truthy', () =>
expect(true).toBeTruthy()));
Не намирам нито една от тези опции за приемлива, не искам да преработвам хиляди тестове само за да направя Jest (или Jasmine) щастлива.
Та въпросът ми е:
Има ли начин за конфигуриране на Jest, така че тези предупреждения да не се издават при използване на функции със стенографски стрелки?
describe()
s използват функции със стенографски стрелки или не. Оказва се, че това е грешка в PhpStorm, която трябва да бъде разрешена във v2018.3.6. Заобиколно решение можете да намерите тук: intellij-support.jetbrains.com/hc/en-us/community/posts/ - person urig   schedule 21.03.2019