test(frontend): Backend in memory

This commit is contained in:
Tibo De Peuter 2025-04-20 20:27:04 +02:00
parent e4945fac66
commit 04ac71dbed
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
4 changed files with 53 additions and 23 deletions

View file

@ -11,3 +11,5 @@ DWENGO_PORT=3000
DWENGO_DB_NAME=":memory:"
DWENGO_DB_UPDATE=true
DWENGO_CORS_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000

View file

@ -15,13 +15,13 @@ import { makeTestStudents } from '../tests/test_assets/users/students.testdata.j
import { makeTestTeachers } from '../tests/test_assets/users/teachers.testdata.js';
import { getLogger, Logger } from '../src/logging/initalize.js';
import { Collection } from '@mikro-orm/core';
import { Group } from '../dist/entities/assignments/group.entity.js';
import { Group } from '../src/entities/assignments/group.entity.js';
const logger: Logger = getLogger();
export async function seedDatabase(): Promise<void> {
dotenv.config({ path: '.env.development.local' });
const orm = await initORM();
export async function seedDatabase(envFile = '.env.development.local', testMode = false): Promise<void> {
dotenv.config({ path: envFile });
const orm = await initORM(testMode);
await orm.schema.clearDatabase();
const em = forkEntityManager();

View file

@ -0,0 +1,33 @@
import express, { Express } from 'express';
import { initORM } from '../src/orm.js';
import apiRouter from '../src/routes/router.js';
import { errorHandler } from '../src/middleware/error-handling/error-handler.js';
import dotenv from 'dotenv';
import cors from '../src/middleware/cors';
import { authenticateUser } from '../src/middleware/auth/auth';
import { seedDatabase } from './seed';
const envFile = '../.env.test';
console.log(`Using env file: ${envFile}`);
dotenv.config({ path: envFile });
const app: Express = express();
app.use(express.json());
app.use(cors);
app.use(authenticateUser);
app.use('/api', apiRouter);
app.use(errorHandler);
async function startServer(): Promise<void> {
await seedDatabase(envFile, true);
await initORM(true);
app.listen(9876, () => {
console.log('Server is running on http://localhost:9876/api');
});
}
await startServer();