From 8193ee814dbacdbe470671b1a2508391fd47c985 Mon Sep 17 00:00:00 2001 From: NIYOMUGABO BERNARD <85235653+niyobern@users.noreply.github.com> Date: Mon, 27 May 2024 15:43:32 +0200 Subject: [PATCH] changed testsetup to make sure database is cleaned before running every test (#103) --- .github/workflows/workflow_for_ecomm.yml | 2 +- package.json | 4 +-- src/__test__/testSetup.ts | 32 ++---------------------- 3 files changed, 5 insertions(+), 33 deletions(-) diff --git a/.github/workflows/workflow_for_ecomm.yml b/.github/workflows/workflow_for_ecomm.yml index 7d9a84f9..73e8e63c 100644 --- a/.github/workflows/workflow_for_ecomm.yml +++ b/.github/workflows/workflow_for_ecomm.yml @@ -40,7 +40,7 @@ jobs: APP_URL: ${{ secrets.APP_URL }} ALL: ${{ secrets.ALL }} DOCS: ${{ secrets.DOCS }} - APP_PORT: ${{ secrets.APP_PORT }} + PORT: ${{ secrets.PORT }} JWT_SECRET: ${{ secrets.JWT_SECRET }} DB_PORT_TEST: ${{ secrets.DB_PORT_TEST }} DB_USER_TEST: ${{ secrets.DB_USER_TEST }} diff --git a/package.json b/package.json index 33be813c..6e193388 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,8 @@ "build": "tsc", "lint": "eslint --config .eslintrc.json .", "format": "prettier --write .", - "test": "cross-env NODE_ENV=test jest --no-cache --detectOpenHandles", - "test:ci": "cross-env NODE_ENV=test jest --coverage --detectOpenHandles" + "test": "cross-env NODE_ENV=test jest --runInBand --no-cache --detectOpenHandles", + "test:ci": "cross-env NODE_ENV=test jest --runInBand --coverage --detectOpenHandles" }, "repository": { "type": "git", diff --git a/src/__test__/testSetup.ts b/src/__test__/testSetup.ts index 6dd936e4..b672e9ab 100644 --- a/src/__test__/testSetup.ts +++ b/src/__test__/testSetup.ts @@ -1,26 +1,11 @@ -import { DbConnection } from '../database/index'; +import dbConnection, { DbConnection } from '../database/index'; import UserModel from '../database/models/userModel'; -import { Role } from '../database/models'; -import Category from '../database/models/categoryEntity'; -import Product from '../database/models/productEntity'; -import { Cart } from '../database/models'; import request from 'supertest'; import app from '../app'; export async function beforeAllHook() { await DbConnection.instance.initializeDb(); - - const userRepository = DbConnection.connection.getRepository(UserModel); - const roleRepository = DbConnection.connection.getRepository(Role); - const categoryRepository = DbConnection.connection.getRepository(Category); - const productRepository = DbConnection.connection.getRepository(Product); - const cartRepository = DbConnection.connection.getRepository(Cart); - - await userRepository.createQueryBuilder().delete().execute(); - await roleRepository.createQueryBuilder().delete().execute(); - await categoryRepository.createQueryBuilder().delete().execute(); - await productRepository.createQueryBuilder().delete().execute(); - await cartRepository.createQueryBuilder().delete().execute(); + await dbConnection.synchronize(true) // This will drop all tables } export async function getAdminToken() { const userRepository = await DbConnection.connection.getRepository(UserModel); @@ -143,18 +128,5 @@ export const getBuyerToken = async () => { }; export async function afterAllHook() { - await DbConnection.connection.transaction(async (transactionManager) => { - const userRepository = transactionManager.getRepository(UserModel); - const roleRepository = transactionManager.getRepository(Role); - const categoryRepository = transactionManager.getRepository(Category); - const productRepository = transactionManager.getRepository(Product); - const cartRepository = transactionManager.getRepository(Cart); - - await userRepository.createQueryBuilder().delete().execute(); - await roleRepository.createQueryBuilder().delete().execute(); - await categoryRepository.createQueryBuilder().delete().execute(); - await productRepository.createQueryBuilder().delete().execute(); - await cartRepository.createQueryBuilder().delete().execute(); - }); await DbConnection.instance.disconnectDb(); }