Skip to content

Commit

Permalink
changed testsetup to make sure database is cleaned before running eve…
Browse files Browse the repository at this point in the history
…ry test (#103)
  • Loading branch information
niyobern authored May 27, 2024
1 parent d468193 commit 8193ee8
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 33 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/workflow_for_ecomm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
32 changes: 2 additions & 30 deletions src/__test__/testSetup.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down Expand Up @@ -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();
}

0 comments on commit 8193ee8

Please sign in to comment.