TypeScript и Chai-as-Promsied: в конечном итоге это недопустимое свойство - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь написать свои тесты 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);
});

Однако, транспортир жалуется:

Ошибка: недопустимое свойство Chai: в конечном итоге

Как я могу импортировать это?Я пытался:

import { eventual } from 'chai-as-promised';

, но это не работает.Как я могу сделать это?Я также попытался переписать вызов Then, используя await, но компилятор жалуется, что нельзя смешивать обратные вызовы с асинхронными функциями.Aargh!

1 Ответ

0 голосов
/ 03 октября 2018

В вашей конфигурации транспортира добавьте следующие строки в конце функции 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);
});
...