Я использую NestJS фреймворк.При использовании @ nestjs / typeorm я создаю хранилище с пользователями.Используя этот подход к созданию репозитория, мои e2e тесты .При работе с базой данных все данные успешно сохраняются.Нет проблем со связью.Вот мои файлы:
app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import { AuthModule } from './modules/auth/auth.module';
@Module({
imports: [
TypeOrmModule.forRoot(),
AuthModule,
],
})
export class AppModule {
constructor(private readonly connection: Connection) { }
}
auth.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AuthService } from './auth.service';
import { AuthController } from './auth.controller';
import { Users } from '../../entity/Users';
@Module({
imports: [TypeOrmModule.forFeature([Users])],
controllers: [AuthController],
providers: [AuthService],
})
export class AuthModule {}
auth.service.ts
...
// my repo
constructor(
@InjectRepository(Users)
private readonly usersRepository: Repository<Users>,
) { }
...
app.e2e-spec.ts
import { INestApplication } from '@nestjs/common';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from './../src/app.module';
describe('AppController (e2e)', () => {
let app: INestApplication;
beforeAll(async () => {
const moduleFixture = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
});
it('/ (GET)', () => {
return request(app.getHttpServer())
.get('/')
.expect(404)
.expect('{"statusCode":404,"error":"Not Found","message":"Cannot GET /"}'); //todo fix me
});
});
Все написано в соответствии сдокументация.Когда вы запускаете npm run test: e2e , консоль выдает следующую ошибку:
> bcs-life-insurance@0.0.0 test:e2e /home/nikita/MyFiles/Work/bcs-backend
> jest --config ./test/jest-e2e.json
[Nest] 7206 - 2/2/2019, 5:06:52 PM [TypeOrmModule] Unable to connect to the database. Retrying (1)...
Error: getaddrinfo ENOTFOUND postgres postgres:5432
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
[Nest] 7206 - 2/2/2019, 5:06:55 PM [TypeOrmModule] Unable to connect to the database. Retrying (2)... +3234ms
Error: getaddrinfo ENOTFOUND postgres postgres:5432
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
FAIL test/app.e2e-spec.ts (6.198s)
AppController (e2e)
✕ / (GET) (6ms)
● AppController (e2e) › / (GET)
Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.
at mapper (../node_modules/jest-jasmine2/build/queue_runner.js:41:52)
● AppController (e2e) › / (GET)
TypeError: Cannot read property 'getHttpServer' of undefined
17 |
18 | it('/ (GET)', () => {
> 19 | return request(app.getHttpServer())
| ^
20 | .get('/')
21 | .expect(404)
22 | .expect('{"statusCode":404,"error":"Not Found","message":"Cannot GET /"}'); // todo fix me
at Object.<anonymous> (app.e2e-spec.ts:19:24)
Пожалуйста, помогите мне!