add tests
Some checks failed
Contract Testing / contract-tests (push) Failing after 6m7s
Contract Testing / contract-snapshot (push) Failing after 4m46s

This commit is contained in:
2026-01-22 11:52:42 +01:00
parent 40bc15ff61
commit fb1221701d
112 changed files with 30625 additions and 1059 deletions

View File

@@ -0,0 +1,89 @@
import { Test, TestingModule } from '@nestjs/testing';
import { DatabaseModule } from './DatabaseModule';
describe('DatabaseModule', () => {
let module: TestingModule;
beforeEach(async () => {
// Clear environment variables to ensure consistent test behavior
delete process.env.DATABASE_URL;
delete process.env.DATABASE_HOST;
delete process.env.DATABASE_PORT;
delete process.env.DATABASE_USER;
delete process.env.DATABASE_PASSWORD;
delete process.env.DATABASE_NAME;
delete process.env.NODE_ENV;
module = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
});
it('should compile the module', () => {
expect(module).toBeDefined();
});
it('should configure TypeORM with DATABASE_URL when provided', async () => {
process.env.DATABASE_URL = 'postgres://user:pass@localhost:5432/testdb';
process.env.NODE_ENV = 'production';
const testModule = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
expect(testModule).toBeDefined();
});
it('should configure TypeORM with individual connection parameters when DATABASE_URL is not provided', async () => {
process.env.DATABASE_HOST = 'localhost';
process.env.DATABASE_PORT = '5432';
process.env.DATABASE_USER = 'testuser';
process.env.DATABASE_PASSWORD = 'testpass';
process.env.DATABASE_NAME = 'testdb';
process.env.NODE_ENV = 'development';
const testModule = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
expect(testModule).toBeDefined();
});
it('should use default values when connection parameters are not provided', async () => {
process.env.NODE_ENV = 'test';
const testModule = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
expect(testModule).toBeDefined();
});
it('should enable synchronization in non-production environments', async () => {
process.env.NODE_ENV = 'development';
const testModule = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
expect(testModule).toBeDefined();
});
it('should disable synchronization in production environment', async () => {
process.env.NODE_ENV = 'production';
const testModule = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
expect(testModule).toBeDefined();
});
it('should auto load entities', async () => {
const testModule = await Test.createTestingModule({
imports: [DatabaseModule],
}).compile();
expect(testModule).toBeDefined();
});
});