Проблемы с остальными случаями блока Typescript Express - PullRequest
0 голосов
/ 04 февраля 2019

Я использую машинопись с экспресс в моем проекте.Я использую мокко и чай для модульного тестирования.Мой package.json выглядит следующим образом:

{
  "name": "node_ts",
  "version": "1.0.0",
  "description": "",
  "main": "dist/server.js",
  "scripts": {
    "lint": "./node_modules/.bin/tslint --project \".\"",
    "build": "babel src --out-dir lib --extensions \".ts,.tsx\"",
    "serve": "npm run build && tsc && node lib/server.js",
    "compile": "tsc && node lib/server.js",
    "start": "nodemon -e ts --exec \"npm run build && npm run compile\"",
    "test": "mocha --compilers babel-register-ts src/**/*.spec.ts"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.2.3",
    "@babel/core": "^7.2.2",
    "@babel/plugin-proposal-object-rest-spread": "^7.3.1",
    "@babel/preset-env": "^7.3.1",
    "@babel/preset-typescript": "^7.1.0",
    "@types/chai": "^4.1.7",
    "@types/mocha": "^5.2.5",
    "babel-register": "^6.26.0",
    "chai": "^4.2.0",
    "mocha": "^5.2.0",
    "nodemon": "^1.18.9",
    "ts-node": "^8.0.2",
    "tslint": "^5.12.1",
    "typescript": "^3.3.1"
  },
  "dependencies": {
    "@babel/plugin-proposal-class-properties": "^7.3.0",
    "@babel/register": "^7.0.0",
    "@types/chai-http": "^3.0.5",
    "@types/express": "^4.16.1",
    "babel-register-ts": "^7.0.0",
    "chai-http": "^4.2.1",
    "express": "^4.16.4"
  }
}

, когда я запускаю свой сервер, используя

npm run start

У меня возникают следующие проблемы.

node_modules/chai-http/types/index.d.ts:51:19 - error TS2430: Interface 'ChaiHttp.Response' incorrectly extends interface 'import("/home/anshu/projects/node_ts/node_modules/@types/superagent/index").Response'.
  Types of property 'setEncoding' are incompatible.
    Type '(encoding: string) => void' is not assignable to type '(encoding: string) => this'.
      Type 'void' is not assignable to type 'this'.

51         interface Response extends request.Response {}
                     ~~~~~~~~

node_modules/chai-http/types/index.d.ts:52:19 - error TS2430: Interface 'Agent' incorrectly extends interface 'SuperAgentStatic'.
  Types of property 'del' are incompatible.
    Type '(url: string, callback?: (err: any, res: Response) => void) => Request' is not assignable to type '(url: string, callback?: CallbackHandler) => SuperAgentRequest'.
      Types of parameters 'callback' and 'callback' are incompatible.
        Types of parameters 'res' and 'res' are incompatible.
          Type 'ChaiHttp.Response' is not assignable to type 'import("/home/anshu/projects/node_ts/node_modules/@types/superagent/index").Response'.
            Types of property 'setEncoding' are incompatible.
              Type '(encoding: string) => void' is not assignable to type '(encoding: string) => Response'.
                Type 'void' is not assignable to type 'Response'.

52         interface Agent extends request.SuperAgentStatic {
                     ~~~~~


Found 2 errors.

Такжекогда я пытаюсь запустить свой тестовый набор, используя

mocha --compilers babel-register-ts src/**/*.spec.ts

Я получаю сообщение об ошибке: TypeError: chai.request не является функцией

Мой тестовый файл выглядит следующим образом:

#hello.ts    
    import app from "../app";
    import * as chai from "chai";
    import chaiHttp from "chai-http";
    import "mocha";

    chai.use(chaiHttp);
    const expect = chai.expect;

    describe("Hello API Request", () => {
      it("should return response on call", () => {
        return chai.request(app).get("/")
          .then(res => {
            expect(res).to.eql("lee");
          });
      });
    });

Я думаю, это из-за chai-http.Может ли кто-нибудь помочь решить эту проблему или предложить альтернативное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...