Тестовый модуль Jest 'Function' возвращает SyntaxError: неожиданный идентификатор в Function (<anonymous>) - PullRequest
0 голосов
/ 21 декабря 2018

У нас есть приложение трафарета, которое вызывает листок обертки, функция стиля должна принять функцию в качестве параметра метода, stencil не может этого сделать, поэтому мы передаем объект и затем анализируем его в функции, в любом случае это работаетно попытка проверить это с помощью Jest вызывает у нас проблемы.

code

public onStylesChange(newVal) {
        this.geoJSONstyles = Function('return ('+newVal+')')(); //      
        if (this.geoJSON) {
            this.geoJSON.setStyle(this.geoJSONstyles);
        }
    }
}

test

it('Should accept a function parameter', () => {
    cut.onObjChange({test:'object'});
    // expect the cut.geoJSONStyles property to be of type Function.
    expect(typeof cut.geoJSONstyles).toBe('Function');
})

return

SyntaxError: Unexpected identifier
    at Function (<anonymous>)

Как можноЯ разрешаю это?

1 Ответ

0 голосов
/ 08 января 2019

Не знаю, где моя голова была в прошлом году, но перерыв прояснил мое мышление.

Что мне нужно было сделать, что было указано мне в комментариях, так что спасибо, что,должен был проверить типы, также я мог вернуть функцию в виде строки и проверить это.(игнорируйте то, что делает функция, это только для проверки назначения), так что

it('Should accept a string function and eval to a function', () => {
    const testString = 'function () {return 0 }'  
    cut.onObjChangetest(String);
    expect(typeof cut.onEachFeature === 'function').toBeTruthy();
    expect(cut.geoJSONstyles.toString()).toBe(testString);
})

Работает отлично, и тест проходит, уууууууууу!Спасибо

...