test: student repository is getest
This commit is contained in:
parent
3cd7496989
commit
5502c6c58e
5 changed files with 2520 additions and 393 deletions
51
backend/tests/data/students.test.ts
Normal file
51
backend/tests/data/students.test.ts
Normal file
|
@ -0,0 +1,51 @@
|
|||
import { setupTestApp } from '../setup-tests.js';
|
||||
import { Student } from '../../src/entities/users/student.entity.js';
|
||||
import { describe, it, expect, beforeAll } from 'vitest';
|
||||
import { StudentRepository } from '../../src/data/users/student-repository.js';
|
||||
import { getStudentRepository } from '../../src/data/repositories.js';
|
||||
|
||||
const username = 'teststudent';
|
||||
const firstName = 'John';
|
||||
const lastName = 'Doe';
|
||||
describe('StudentRepository', () => {
|
||||
let studentRepository: StudentRepository;
|
||||
|
||||
beforeAll(async () => {
|
||||
await setupTestApp();
|
||||
studentRepository = getStudentRepository();
|
||||
});
|
||||
|
||||
it('should not return a student because username does not exist', async() => {
|
||||
const student = await studentRepository.findByUsername('test');
|
||||
|
||||
expect(student).toBeNull();
|
||||
});
|
||||
|
||||
it('should return student from the datbase', async() => {
|
||||
const student = await studentRepository.findByUsername('DireStraits');
|
||||
|
||||
expect(student).toBeTruthy();
|
||||
expect(student?.firstName).toBe('Mark');
|
||||
expect(student?.lastName).toBe('Knopfler');
|
||||
})
|
||||
|
||||
it('should return the queried student after he was added', async () => {
|
||||
await studentRepository.insert(
|
||||
new Student(username, firstName, lastName)
|
||||
);
|
||||
|
||||
const retrievedStudent =
|
||||
await studentRepository.findByUsername(username);
|
||||
expect(retrievedStudent).toBeTruthy();
|
||||
expect(retrievedStudent?.firstName).toBe(firstName);
|
||||
expect(retrievedStudent?.lastName).toBe(lastName);
|
||||
});
|
||||
|
||||
it('should no longer return the queried student after he was removed again', async () => {
|
||||
await studentRepository.deleteByUsername(username);
|
||||
|
||||
const retrievedStudent =
|
||||
await studentRepository.findByUsername(username);
|
||||
expect(retrievedStudent).toBeNull();
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue