You've already forked immich
mirror of
https://github.com/immich-app/immich.git
synced 2025-08-09 23:17:29 +02:00
Fix test instance cannot clear database after each test" (#354)
* Update test * Fixed test cannot initialize database * Added a separate network to test containers group to run test while in development mode
This commit is contained in:
@@ -10,6 +10,7 @@ import { ImmichJwtModule } from '../src/modules/immich-jwt/immich-jwt.module';
|
||||
import { AuthUserDto } from '../src/decorators/auth-user.decorator';
|
||||
import { UserService } from '../src/api-v1/user/user.service';
|
||||
import { UserModule } from '../src/api-v1/user/user.module';
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
function _createAlbum(app: INestApplication, data: CreateAlbumDto) {
|
||||
return request(app.getHttpServer()).post('/album').send(data);
|
||||
@@ -17,9 +18,10 @@ function _createAlbum(app: INestApplication, data: CreateAlbumDto) {
|
||||
|
||||
describe('Album', () => {
|
||||
let app: INestApplication;
|
||||
let database: DataSource;
|
||||
|
||||
afterAll(async () => {
|
||||
await clearDb();
|
||||
await clearDb(database);
|
||||
await app.close();
|
||||
});
|
||||
|
||||
@@ -30,6 +32,7 @@ describe('Album', () => {
|
||||
}).compile();
|
||||
|
||||
app = moduleFixture.createNestApplication();
|
||||
database = app.get(DataSource);
|
||||
await app.init();
|
||||
});
|
||||
|
||||
@@ -56,12 +59,14 @@ describe('Album', () => {
|
||||
|
||||
app = moduleFixture.createNestApplication();
|
||||
userService = app.get(UserService);
|
||||
database = app.get(DataSource);
|
||||
|
||||
await app.init();
|
||||
});
|
||||
|
||||
describe('with empty DB', () => {
|
||||
afterEach(async () => {
|
||||
await clearDb();
|
||||
await clearDb(database);
|
||||
});
|
||||
|
||||
it('creates an album', async () => {
|
||||
@@ -91,13 +96,13 @@ describe('Album', () => {
|
||||
// setup users
|
||||
const result = await Promise.all([
|
||||
userService.createUser({
|
||||
email: 'one1@test.com',
|
||||
email: 'one@test.com',
|
||||
password: '1234',
|
||||
firstName: 'one',
|
||||
lastName: 'test',
|
||||
}),
|
||||
userService.createUser({
|
||||
email: 'two2@test.com',
|
||||
email: 'two@test.com',
|
||||
password: '1234',
|
||||
firstName: 'two',
|
||||
lastName: 'test',
|
||||
|
@@ -3,13 +3,10 @@ import { CanActivate, ExecutionContext } from '@nestjs/common';
|
||||
import { TestingModuleBuilder } from '@nestjs/testing';
|
||||
import { AuthUserDto } from '../src/decorators/auth-user.decorator';
|
||||
import { JwtAuthGuard } from '../src/modules/immich-jwt/guards/jwt-auth.guard';
|
||||
import { databaseConfig } from '@app/database/config/database.config';
|
||||
|
||||
type CustomAuthCallback = () => AuthUserDto;
|
||||
|
||||
export async function clearDb() {
|
||||
const db = new DataSource(databaseConfig);
|
||||
|
||||
export async function clearDb(db: DataSource) {
|
||||
const entities = db.entityMetadatas;
|
||||
for (const entity of entities) {
|
||||
const repository = db.getRepository(entity.name);
|
||||
|
@@ -9,6 +9,7 @@ import { ImmichJwtModule } from '../src/modules/immich-jwt/immich-jwt.module';
|
||||
import { UserService } from '../src/api-v1/user/user.service';
|
||||
import { CreateUserDto } from '../src/api-v1/user/dto/create-user.dto';
|
||||
import { UserResponseDto } from '../src/api-v1/user/response-dto/user-response.dto';
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
function _createUser(userService: UserService, data: CreateUserDto) {
|
||||
return userService.createUser(data);
|
||||
@@ -16,9 +17,10 @@ function _createUser(userService: UserService, data: CreateUserDto) {
|
||||
|
||||
describe('User', () => {
|
||||
let app: INestApplication;
|
||||
let database: DataSource;
|
||||
|
||||
afterAll(async () => {
|
||||
await clearDb();
|
||||
await clearDb(database);
|
||||
await app.close();
|
||||
});
|
||||
|
||||
@@ -29,6 +31,7 @@ describe('User', () => {
|
||||
}).compile();
|
||||
|
||||
app = moduleFixture.createNestApplication();
|
||||
database = app.get(DataSource);
|
||||
await app.init();
|
||||
});
|
||||
|
||||
@@ -54,6 +57,7 @@ describe('User', () => {
|
||||
|
||||
app = moduleFixture.createNestApplication();
|
||||
userService = app.get(UserService);
|
||||
database = app.get(DataSource);
|
||||
await app.init();
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user