NestJS С supertest не компилируется с «Невозможно вызвать выражение, тип которого не имеет подписи вызова» - PullRequest
0 голосов
/ 02 мая 2019

При попытке запустить тесты e2e из примеров NestJS мой тест не компилируется с «Невозможно вызвать выражение, тип которого не имеет сигнатуры вызова» для строки

request(app.getHttpServer())

Код взят из примеров тестирования NestJS.

Возможно, это связано с моим tsconfig?

import * as request from "supertest";
import { Test } from "@nestjs/testing";
import { INestApplication } from "@nestjs/common";

describe("App", () => {
  let app: INestApplication;

  beforeAll(async () => {
    const module = await Test.createTestingModule({
      imports: []
    }).compile();

    app = module.createNestApplication();
    await app.init();
  });

  it(`/GET`, () => {
    return request(app.getHttpServer())
      .get("/")
      .expect(200);
  });

  afterAll(async () => {
    await app.close();
  });
});

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Это исправлено

import request from "supertest";
0 голосов
/ 02 мая 2019

Вы должны импортировать модуль.

import * as request from "supertest";
import { Test } from "@nestjs/testing";
import { INestApplication } from "@nestjs/common";
import { AppModule } from '../src/app.module';

describe("App", () => {
  let app: INestApplication;

  beforeAll(async () => {
    const module = await Test.createTestingModule({
      imports: [AppModule] // <- this
    }).compile();

    app = module.createNestApplication();
    await app.init();
  });

  it(`/GET`, () => {
    return request(app.getHttpServer())
      .get("/")
      .expect(200);
  });

  afterAll(async () => {
    await app.close();
  });
});
...