TypeScript и Chai-as-Promsied: в конечном итоге это недопустимое свойство
Я пытаюсь написать свои тесты Cucumber, используя TypScript, например так:
import { browser, $$ } from 'protractor';
import { Given, Then } from 'cucumber'
import { expect } from 'chai';
Given('I navigate to the homepage', function (callback) {
browser.get('http://localhost:4200');
callback();
});
Then('I want to see the welcome message {string}', function (message, callback) {
expect($$('h1').first().getText()).to.eventually.equal(message).and.notify(callback);
});
Однако транспортир жалуется:
Ошибка: неверное свойство Чай: в конце концов
Как я могу импортировать это? Я пытался:
import { eventual } from 'chai-as-promised';
но это не работает Как я могу сделать это? Я также попытался переписать Then
звоните используя await
, но компилятор жалуется, что нельзя смешивать обратные вызовы с асинхронными функциями. Aargh!
1 ответ
Решение
В конфигурации транспортира добавьте следующие строки в конце onPrepare
функция:
onPrepare: function() {
...
// Load chai assertions
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
// Load chai-as-promised support
chai.use(chaiAsPromised);
// Initialise should API (attaches as a property on Object)
chai.should();
}
При использовании асинхронной функции вы должны удалить обратный вызов из сигнатуры функции.
Then('I want to see the welcome message {string}',
async function (message) {
await chai.expect($$('h1').first().getText())
.to.eventually.equal(message);
});