Wallaby.js не работает с жасмином callFake(...)?
проблема
wallaby.js
похоже не работает с жасмином callFake
, Я хочу использовать аргументы, переданные исходной функции внутри функции "fake". Но я всегда получаю undefined
с wallaby
,
Тест ниже работает при запуске jasmine
напрямую, но ломается при запуске через wallaby
,
Это случилось с кем-то еще? Есть идеи как это исправить?
Тестовое задание
it('test callFake and wallaby', async () => {
// Arrange
const myObj = {
myFunc: (a) => a + 1,
};
spyOn(myObj, 'myFunc')
.and.callFake(arg => arg);
// Act
const result = myObj.myFunc(1);
// Assert
expect(result).toBe(1);
});
Связанная информация
Файл конфигурации Wallaby.js
module.exports = (wallaby) => {
return {
files: [
'src/**/*.js',
'migrations/*',
'test/_helpers/*',
'seeds/*',
'config/*',
{ pattern: '.env', instrument: false },
],
tests: [
'test/**/*.spec.js',
],
compilers: {
'**/*.js': wallaby.compilers.babel(),
},
testFramework: 'jasmine',
env: {
type: 'node',
params: {
env: 'NODE_ENV=test;MONGODB_CONQUERY=mongodb://localhost:27017/athena-test',
},
},
workers: {
initial: 1,
regular: 1,
restart: true,
},
setup: (/* wallaby */) => {
require('dotenv').load({ path: '.env' }); // eslint-disable-line
require('./test/_helpers/dropDatabase'); // eslint-disable-line
},
teardown: (/* wallaby */) => {
},
};
};
Редактор кода или IDE имя и версия
Visual Studio Code v1.21.1
Название и версия ОС
OSX 10.13.3
2 ответа
Решение
Это была ошибка в поддержке Jasmine 2.x в валлаби, она исправлена нет w.
Я нашел обходной путь:
Я использовал ссылку на шпиона внутри callFake
функция. Смотрите код ниже:
it('test callFake and wallaby', async () => {
// Arrange
const myObj = {
myFunc: (a) => a + 1,
};
const spy = spyOn(myObj, 'myFunc')
.and.callFake(
() => spy.calls.argsFor(0)[0]
);
// Act
const result = myObj.myFunc(1);
// Assert
expect(result).toBe(1);
});
Но я все еще думаю, что это не правильное поведение.