feat(backend): Repositories toegevoegd, databank unit-testbaar gemaakt.

This commit is contained in:
Gerald Schmittinger 2025-02-24 01:13:20 +01:00
parent 2657e49ad6
commit 374de3b21a
15 changed files with 1672 additions and 45 deletions

View file

@ -1,17 +1,35 @@
import {Options} from '@mikro-orm/core';
import {PostgreSqlDriver} from "@mikro-orm/postgresql";
import {EnvVars, getEnvVar, getNumericEnvVar} from "./util/envvars";
import {SqliteDriver} from "@mikro-orm/sqlite";
const config: Options = {
driver: PostgreSqlDriver,
host: getEnvVar(EnvVars.DbHost, {required: true}),
port: getNumericEnvVar(EnvVars.DbPort, {defaultValue: 5432}),
dbName: getEnvVar(EnvVars.DbName, {defaultValue: "dwengo"}),
user: getEnvVar(EnvVars.DbUsername, {required: true}),
password: getEnvVar(EnvVars.DbPassword, {required: true}),
entities: ['dist/**/*.entity.js'],
entitiesTs: ['src/**/*.entity.ts'],
debug: true,
};
const entities = ['dist/**/*.entity.js'];
const entitiesTs = ['src/**/*.entity.ts'];
function config(testingMode: boolean = false): Options {
if (testingMode) {
return {
driver: SqliteDriver,
dbName: getEnvVar(EnvVars.DbName),
entities: entities,
entitiesTs: entitiesTs,
// Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION)
// (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint)
dynamicImportProvider: id => import(id)
};
} else {
return {
driver: PostgreSqlDriver,
host: getEnvVar(EnvVars.DbHost),
port: getNumericEnvVar(EnvVars.DbPort),
dbName: getEnvVar(EnvVars.DbName),
user: getEnvVar(EnvVars.DbUsername),
password: getEnvVar(EnvVars.DbPassword),
entities: entities,
entitiesTs: entitiesTs,
debug: true
};
}
}
export default config;