test: learning object repository is getest
This commit is contained in:
parent
714a3dab10
commit
6338ad249a
2 changed files with 88 additions and 0 deletions
32
backend/tests/data/learning-objects.test.ts
Normal file
32
backend/tests/data/learning-objects.test.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { beforeAll, describe, expect, it } from "vitest";
|
||||
import { LearningObjectRepository } from "../../src/data/content/learning-object-repository";
|
||||
import { getLearningObjectRepository } from "../../src/data/repositories";
|
||||
import { setupTestApp } from "../setup-tests";
|
||||
import { LearningObjectIdentifier } from "../../src/entities/content/learning-object-identifier";
|
||||
import { Language } from "../../src/entities/content/language";
|
||||
|
||||
describe('LearningObjectRepository', () => {
|
||||
let LearningObjectRepository: LearningObjectRepository;
|
||||
|
||||
beforeAll(async () => {
|
||||
await setupTestApp();
|
||||
LearningObjectRepository = getLearningObjectRepository();
|
||||
});
|
||||
|
||||
const id01 = new LearningObjectIdentifier('hruid_object01', Language.English, '1');
|
||||
const id02 = new LearningObjectIdentifier('hruid_object06', Language.English, '1');
|
||||
|
||||
it('should return the learning object that matches identifier 1', async() => {
|
||||
const learningObject = await LearningObjectRepository.findByIdentifier(id01);
|
||||
|
||||
expect(learningObject).toBeTruthy();
|
||||
expect(learningObject?.title).toBe('Undertow');
|
||||
expect(learningObject?.description).toBe('debute');
|
||||
});
|
||||
|
||||
it('should return nothing because the identifier does not exist in the database', async() => {
|
||||
const learningObject = await LearningObjectRepository.findByIdentifier(id02);
|
||||
|
||||
expect(learningObject).toBeNull();
|
||||
});
|
||||
});
|
|
@ -1,3 +1,5 @@
|
|||
import { Language } from '../src/entities/content/language.js';
|
||||
import { ContentType, LearningObject, ReturnValue } from '../src/entities/content/learning-object.entity.js';
|
||||
import { Student } from '../src/entities/users/student.entity.js';
|
||||
import { Teacher } from '../src/entities/users/teacher.entity.js';
|
||||
import { forkEntityManager, initORM } from '../src/orm.js';
|
||||
|
@ -20,4 +22,58 @@ export async function setupTestApp() {
|
|||
const teacher03 = em.create(Teacher, { username: 'TheDoors', firstName: 'Jim', lastName: 'Morrison'});
|
||||
|
||||
await em.persistAndFlush([teacher01, teacher02, teacher03]);
|
||||
|
||||
const admins01 = [teacher01];
|
||||
const returnValue = new ReturnValue();
|
||||
returnValue.callbackSchema = '';
|
||||
returnValue.callbackUrl = '';
|
||||
const buffer01 = new Buffer("there's a shadow just behind me, shrouding every step i take, making every promise empty pointing every finger at me");
|
||||
const learningObject01 = em.create(LearningObject, {
|
||||
hruid: 'hruid_object01',
|
||||
language: Language.English,
|
||||
version: '1',
|
||||
admins: admins01,
|
||||
title: 'Undertow',
|
||||
description: 'debute',
|
||||
contentType: ContentType.Markdown,
|
||||
keywords: [],
|
||||
teacherExclusive: false,
|
||||
skosConcepts: [],
|
||||
educationalGoals: [],
|
||||
copyright: '',
|
||||
license: '',
|
||||
estimatedTime: 45,
|
||||
returnValue: returnValue,
|
||||
available: true,
|
||||
contentLocation: '',
|
||||
attachments: [],
|
||||
content: buffer01
|
||||
});
|
||||
|
||||
const admins02 = [teacher02];
|
||||
const buffer02 = new Buffer("cause it's always raining in my head, forget all the things I should have had said so I speak to you in riddles, because my words get in my way")
|
||||
const learningObject02 = em.create(LearningObject, {
|
||||
hruid: 'hruid_object02',
|
||||
language: Language.English,
|
||||
version: '1',
|
||||
admins: admins02,
|
||||
title: 'Break the cycle',
|
||||
description: 'second album',
|
||||
contentType: ContentType.Markdown,
|
||||
keywords: ["music"],
|
||||
teacherExclusive: false,
|
||||
skosConcepts: [],
|
||||
educationalGoals: [],
|
||||
copyright: '',
|
||||
license: '',
|
||||
estimatedTime: 55,
|
||||
returnValue: returnValue,
|
||||
available: true,
|
||||
contentLocation: '',
|
||||
attachments: [],
|
||||
content: buffer02
|
||||
});
|
||||
|
||||
await em.persistAndFlush([learningObject01, learningObject02]);
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue