From cc459ce6bb4571f926edb30740ec3d0359610f2d Mon Sep 17 00:00:00 2001 From: Laure Jablonski Date: Fri, 7 Mar 2025 12:02:32 +0100 Subject: [PATCH] fix: teacher entity had geen constructor --- backend/tests/data/teachers.test.ts | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/backend/tests/data/teachers.test.ts b/backend/tests/data/teachers.test.ts index e69de29b..5a9e8c87 100644 --- a/backend/tests/data/teachers.test.ts +++ b/backend/tests/data/teachers.test.ts @@ -0,0 +1,51 @@ +import { setupTestApp } from '../setup-tests.js'; +import { describe, it, expect, beforeAll } from 'vitest'; +import { TeacherRepository } from '../../src/data/users/teacher-repository.js'; +import { Teacher } from '../../src/entities/users/teacher.entity.js'; +import { getTeacherRepository } from '../../src/data/repositories.js'; + +const username = 'testteacher'; +const firstName = 'John'; +const lastName = 'Doe'; +describe('TeacherRepository', () => { + let TeacherRepository: TeacherRepository; + + beforeAll(async () => { + await setupTestApp(); + TeacherRepository = getTeacherRepository(); + }); + + it('should not return a teacher because username does not exist', async() => { + const student = await TeacherRepository.findByUsername('test'); + + expect(student).toBeNull(); + }); + + it('should return teacher from the datbase', async() => { + const student = await TeacherRepository.findByUsername('Tool'); + + expect(student).toBeTruthy(); + expect(student?.firstName).toBe('Maynard'); + expect(student?.lastName).toBe('Keenan'); + }) + + it('should return the queried teacher after he was added', async () => { + await TeacherRepository.insert( + new Teacher(username, firstName, lastName) + ); + + const retrievedStudent = + await TeacherRepository.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 TeacherRepository.deleteByUsername(username); + + const retrievedStudent = + await TeacherRepository.findByUsername(username); + expect(retrievedStudent).toBeNull(); + }); +});