Estoy tratando de escribir pruebas, pero recibo un error. Creo que tengo un problema con la conexión. "No se puede ejecutar la operación en la conexión "predeterminada" porque la conexión aún no se ha establecido".
tengo la carpeta de pruebas, y en ella tengo user.spec.ts y testhelper.ts
testhelper.ts
// import { Connection, createConnection } from "typeorm"; import { DataSource, DataSourceOptions } from "typeorm"; import Database from "better-sqlite3"; export class TestHelper { private static _instance: TestHelper; private constructor() {} public static get instance(): TestHelper { if (!this._instance) this._instance = new TestHelper(); return this._instance; } private dbConnect!: DataSource; private testdb!: any; async setupTestDB() { this.testdb = new Database(":memory:", { verbose: console.log }); this.dbConnect = new DataSource({ name: "default", type: "better-sqlite3", database: ":memory:", entities: ["src/entity/**/*.ts"], synchronize: true, } as DataSourceOptions); } teardownTestDB() { this.dbConnect.destroy(); this.testdb.close(); } }usuario.spec.ts
import { createUser } from "../src/controllers/user.controller"; //@ts-ignore import { TestHelper } from "./testhelper"; beforeAll(async () => { await TestHelper.instance.setupTestDB(); }); afterAll(() => { TestHelper.instance.teardownTestDB(); }); describe("User Tests", () => { test("should create user", async () => { const body = { firstname: "John", lastname: "Brut", email: "john@examle.com", password: "password123", }; const res = {}; //@ts-ignore const user = await createUser(body, res); //@ts-ignore expect(user.firstname).toBe("John"); //@ts-ignore expect(user.lastname).toBe("Brut"); }); });Estoy haciendo esto por primera vez. y estoy atascado en eso por mucho tiempo... alguien puede ayudarme con esto... :(
prueba de esta manera, testhelper.ts
async setupTestDB() { this.testdb = new Database(":memory:", { verbose: console.log }); this.dbConnect = new DataSource({ name: "default", type: "better-sqlite3", database: ":memory:", entities: ["src/entity/**/*.ts"], synchronize: true, } as DataSourceOptions); await this.dbConnect.initialize() }