Initial Commit

This commit is contained in:
Constantin Simonis
2025-06-10 08:39:11 +02:00
commit b8fd37f3e0
48 changed files with 30268 additions and 0 deletions

0
backend/test/.gitkeep Normal file
View File

View File

@ -0,0 +1,69 @@
import supertest = require('supertest');
import { Task } from '../../../api/entities/Task';
import app from '../../../api/server';
import { initConnection, stopConnection } from '../../helper';
describe('/api/tasks', () => {
let task: Task;
beforeAll(async () => {
task = {
id: 1,
title: 'Buy a new NodeJS book',
dueDate: new Date('Januar 29, 2019 00:00:00'),
done: false,
} as Task;
await initConnection();
});
it('should return a 200 response for /api/tasks', () => {
return supertest(app).get('/api/tasks')
.set('Content-Type', 'application/json')
.set('Accept', 'application/json')
.expect(200);
});
it('should return a 404 response for /api/lorem', () => {
return supertest(app).get('/api/lorem').then((response) => {
expect(response.status).toBe(404);
});
});
it('should return a 200 response for POST /api/tasks and delete the entry', (done) => {
return supertest(app)
.post('/api/tasks')
.send(task)
.set('Content-Type', 'application/json')
.set('Accept', 'application/json')
.expect(200)
.end((err, res) => {
if (err) {
throw err;
}
expect(res.body.message).toBe('Task successfully created');
done();
});
});
it('should UPDATE /api/tasks/1 correctly', (done) => {
return supertest(app)
.put('/api/tasks/1')
.send({
dueDate: new Date('Februar 1, 2019 00:00:00'),
})
.set('Content-Type', 'application/json')
.set('Accept', 'application/json')
.expect(200)
.end((err, res) => {
if (err) {
throw err;
}
expect(res.body.message).toBe('Task successfully updated');
done();
});
});
afterAll(async () => {
await stopConnection();
});
});

31
backend/test/helper.ts Normal file
View File

@ -0,0 +1,31 @@
import { Connection, ConnectionOptions, createConnection } from 'typeorm';
let connection: Connection;
let initPromise: Promise<void>;
const dbConfig = {
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '',
database: '',
synchronise: false,
entities: [''],
} as ConnectionOptions;
export function initConnection() {
if (initPromise) {
return initPromise;
}
initPromise = createConnection(dbConfig).then((con) => {
connection = con;
}).catch((error) => { throw error; });
return initPromise;
}
export function stopConnection(): Promise<void> {
return connection.close();
}

View File

@ -0,0 +1,8 @@
import 'jest';
describe('Jest Tests', () => {
test('Verify Tests Works', () => {
expect(true).toBeTruthy();
});
});