node.js - Connessione TypeORM non trovata durante il test
Sto studiando l'architettura pulita con TDD creando una semplice applicazione, e sto cercando di implementare il UserRepository nel mio layer di infrastruttura, ma sto ricevendo questo errore ConnectionNotFoundError: Connection "default" non trovata. anche dopo aver stabilito una connessione prima di eseguire il test stesso.
Questa è la mia classe UserEntity.
import { PrimaryColumn, Column, CreateDateColumn, UpdateDateColumn, Entity } from 'typeorm'
@Entity('users')
export class UserEntity {
@PrimaryColumn('uuid')
id: string
@Column()
name: string
@Column({ unique: true })
email: string
@Column()
password: string
@CreateDateColumn()
created_at: Date
@UpdateDateColumn()
updated_at: Date
}
In questo UserRepository, sto implementando un CreateUserRepository che ha i metodi create sottostanti. Per leggere il repository TypeORM sto usando il metodo getRepository di TypeORM
import { getRepository, Repository } from 'typeorm'
import { CreateUserRepositoryDTO, CreateUserRepository } from '../../../../data/protocols/db/user/CreateUserRepository'
import { UserModel } from '../../../../domain/models/UserModel'
import { UserEntity } from '../entities/UserEntity'
export class UserRepository implements CreateUserRepository {
private ormRepository: Repository<UserEntity>
constructor () {
this.ormRepository = getRepository(UserEntity)
}
async create (userData: CreateUserRepositoryDTO): Promise<UserModel> {
const user = await this.ormRepository.create(userData)
const result = await this.ormRepository.save(user)
return result
}
}
import { mockCreateUserRepositoryDTO } from '../../test/mockCreateUserRepositoryDTO'
import { createTestConnection } from '../helpers/TypeORMHelper'
import { UserRepository } from './UserRepository'
describe('UserRepository', () => {
it('Should return User on create Success', async () => {
await createTestConnection()
const userData = mockCreateUserRepositoryDTO()
const sut = new UserRepository()
const user = await sut.create(userData)
console.log(user)
})
})
import { createConnection, Connection, ConnectionOptions } from 'typeorm'
import { postgresCreds, schemaConfig } from '../../../../../ormconfig'
async function createDbConnection (options: ConnectionOptions): Promise<Connection> {
try {
const connection: Connection = await createConnection(options)
console.log(`TypeORM Connected to ${options.database}`)
return connection
} catch (err) {
console.log('Problem with TypeORM connection')
throw err.message
}
}
export async function createTestConnection () {
return createDbConnection({
name: 'testConnection',
type: 'postgres',
database: 'market-list-test',
synchronize: false,
...postgresCreds,
...schemaConfig,
logging: ['error']
})
}
