javascript - Hur använder man chai-as-promised med Typescript?
Jag försöker använda chai-as-promised-paketet med TypeScript. Först och främst fungerar följande kod bra i enkel JavaScript.
import * as chai from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
chai.use(chaiAsPromised);
const expect = chai.expect;
import * as sinon from 'sinon';
import { MyClass } from '.';
describe('Test my class', () => {
let myClass: MyClass;
beforeEach(() => {
myClass = new MyClass();
});
it('Should render home', () => {
const req = new RequestMock();
const res = new ResponseMock();
return expect(myClass.getHomePage(req, res)).to.be.fulfilled()
.then((returnedValue) => {
chai.expect(returnedValue).to.not.be.equal([]);
});
});
});
Jag har följande fel med denna kod:
... och det pekade på detta :
interface PromisedTypeComparison {
(type: string, message?: string): PromisedAssertion; // <<--
instanceof: PromisedInstanceOf;
instanceOf: PromisedInstanceOf;
}
Jag testade många möjligheter och det är den där jag verkar vara närmast lösningen.
Jag skulle vilja använda funktioner från chai-as-promise som fulfilled, rejected... osv.
Hur kan jag göra det?
Svar #1
Jag tror att detta svar är vad du behöver:
Lägg till typerna för
chai-as-promisedoch det borde ta hand om TypeScript-felen:npm install --save-dev @types/chai-as-promised
Fungerade för mig. Före det fick jag "Property 'eventually' finns inte på typen 'Assertion'."; efter att ha lagt till detta var alla nöjda :-)
Jag var tvungen att ändra min import till en require.
Före :
import chaiAsPromised from 'chai-as-promised';
Efter :
import chaiAsPromised = require('chai-as-promised');
Svar #2
Importera bara standarden av chai-as-promised så kommer allt att fungera:
import * as chai from 'chai'
import chaiAsPromised from 'chai-as-promised'
chai.use(chaiAsPromised)
