261 lines
8.8 KiB
TypeScript
261 lines
8.8 KiB
TypeScript
import { EntityManager, RequiredEntityData } from '@mikro-orm/core';
|
|
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
|
import { Language } from '@dwengo-1/common/util/language';
|
|
import { DwengoContentType } from '../../../src/services/learning-objects/processing/content-type';
|
|
import { ReturnValue } from '../../../src/entities/content/return-value.entity';
|
|
import { envVars, getEnvVar } from '../../../src/util/envVars';
|
|
import { loadTestAsset } from '../../test-utils/load-test-asset';
|
|
import { v4 } from 'uuid';
|
|
|
|
export function makeTestLearningObjects(em: EntityManager): LearningObject[] {
|
|
const returnValue: ReturnValue = new ReturnValue();
|
|
returnValue.callbackSchema = '';
|
|
returnValue.callbackUrl = '';
|
|
|
|
const learningObject01 = em.create(LearningObject, testLearningObject01);
|
|
const learningObject02 = em.create(LearningObject, testLearningObject02);
|
|
const learningObject03 = em.create(LearningObject, testLearningObject03);
|
|
const learningObject04 = em.create(LearningObject, testLearningObject04);
|
|
const learningObject05 = em.create(LearningObject, testLearningObject05);
|
|
|
|
const learningObjectMultipleChoice = em.create(LearningObject, testLearningObjectMultipleChoice);
|
|
const learningObjectEssayQuestion = em.create(LearningObject, testLearningObjectEssayQuestion);
|
|
|
|
const learningObjectPnNotebooks = em.create(LearningObject, testLearningObjectPnNotebooks);
|
|
|
|
return [
|
|
learningObject01,
|
|
learningObject02,
|
|
learningObject03,
|
|
learningObject04,
|
|
learningObject05,
|
|
learningObjectMultipleChoice,
|
|
learningObjectEssayQuestion,
|
|
learningObjectPnNotebooks,
|
|
];
|
|
}
|
|
|
|
export function createReturnValue(): ReturnValue {
|
|
const returnValue: ReturnValue = new ReturnValue();
|
|
returnValue.callbackSchema = '[]';
|
|
returnValue.callbackUrl = '%SUBMISSION%';
|
|
return returnValue;
|
|
}
|
|
|
|
export const testLearningObject01: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}id01`,
|
|
language: Language.English,
|
|
version: 1,
|
|
admins: [],
|
|
title: 'Undertow',
|
|
description: 'debute',
|
|
contentType: DwengoContentType.TEXT_MARKDOWN,
|
|
keywords: [],
|
|
uuid: v4(),
|
|
targetAges: [16, 17, 18],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: '',
|
|
license: '',
|
|
estimatedTime: 45,
|
|
returnValue: createReturnValue(),
|
|
available: true,
|
|
contentLocation: '',
|
|
attachments: [],
|
|
content: Buffer.from("there's a shadow just behind me, shrouding every step i take, making every promise empty pointing every finger at me"),
|
|
};
|
|
|
|
export const testLearningObject02: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}id02`,
|
|
language: Language.English,
|
|
version: 1,
|
|
admins: [],
|
|
title: 'Aenema',
|
|
description: 'second album',
|
|
contentType: DwengoContentType.TEXT_MARKDOWN,
|
|
keywords: [],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: '',
|
|
license: '',
|
|
estimatedTime: 80,
|
|
returnValue: createReturnValue(),
|
|
available: true,
|
|
contentLocation: '',
|
|
attachments: [],
|
|
content: Buffer.from(
|
|
"I've been crawling on my belly clearing out what could've been I've been wallowing in my own confused and insecure delusions"
|
|
),
|
|
};
|
|
|
|
export const testLearningObject03: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}id03`,
|
|
language: Language.English,
|
|
version: 1,
|
|
admins: [],
|
|
title: 'love over gold',
|
|
description: 'third album',
|
|
contentType: DwengoContentType.TEXT_MARKDOWN,
|
|
keywords: [],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: '',
|
|
license: '',
|
|
estimatedTime: 55,
|
|
returnValue: createReturnValue(),
|
|
available: true,
|
|
contentLocation: '',
|
|
attachments: [],
|
|
content: Buffer.from(
|
|
'he wrote me a prescription, he said you are depressed, \
|
|
but I am glad you came to see me to get this off your chest, \
|
|
come back and see me later next patient please \
|
|
send in another victim of industrial disease'
|
|
),
|
|
};
|
|
|
|
export const testLearningObject04: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}id04`,
|
|
language: Language.English,
|
|
version: 1,
|
|
admins: [],
|
|
title: 'making movies',
|
|
description: 'fifth album',
|
|
contentType: DwengoContentType.TEXT_MARKDOWN,
|
|
keywords: [],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: '',
|
|
license: '',
|
|
estimatedTime: 55,
|
|
returnValue: createReturnValue(),
|
|
available: true,
|
|
contentLocation: '',
|
|
attachments: [],
|
|
content: Buffer.from(
|
|
'I put my hand upon the lever \
|
|
Said let it rock and let it roll \
|
|
I had the one-arm bandit fever \
|
|
There was an arrow through my heart and my soul'
|
|
),
|
|
};
|
|
|
|
export const testLearningObject05: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}id05`,
|
|
language: Language.English,
|
|
version: 1,
|
|
admins: [],
|
|
title: 'on every street',
|
|
description: 'sixth album',
|
|
contentType: DwengoContentType.TEXT_MARKDOWN,
|
|
keywords: [],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: '',
|
|
license: '',
|
|
estimatedTime: 55,
|
|
returnValue: createReturnValue(),
|
|
available: true,
|
|
contentLocation: '',
|
|
attachments: [],
|
|
content: Buffer.from('calling Elvis, is anybody home, calling elvis, I am here all alone'),
|
|
};
|
|
|
|
export const testLearningObjectMultipleChoice: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}test_multiple_choice`,
|
|
language: Language.English,
|
|
version: 1,
|
|
title: 'Self-evaluation',
|
|
description: "Time to evaluate how well you understand what you've learned so far.",
|
|
keywords: ['test'],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: 'Groep 1 SEL-2 2025',
|
|
license: 'CC0',
|
|
difficulty: 1,
|
|
estimatedTime: 1,
|
|
attachments: [],
|
|
available: true,
|
|
targetAges: [10, 11, 12, 13, 14, 15, 16, 17, 18],
|
|
admins: [],
|
|
contentType: DwengoContentType.GIFT,
|
|
content: loadTestAsset('content/learning-object-resources/test_multiple_choice/content.txt'),
|
|
returnValue: {
|
|
callbackUrl: `%SUBMISSION%`,
|
|
callbackSchema: '["antwoord vraag 1"]',
|
|
},
|
|
};
|
|
|
|
export const testLearningObjectEssayQuestion: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}test_essay_question`,
|
|
language: Language.English,
|
|
version: 1,
|
|
title: 'Reflection',
|
|
description: 'Reflect on your learning progress.',
|
|
keywords: ['test'],
|
|
teacherExclusive: false,
|
|
skosConcepts: [],
|
|
educationalGoals: [],
|
|
copyright: 'Groep 1 SEL-2 2025',
|
|
license: 'CC0',
|
|
difficulty: 1,
|
|
estimatedTime: 1,
|
|
attachments: [],
|
|
available: true,
|
|
targetAges: [10, 11, 12, 13, 14, 15, 16, 17, 18],
|
|
admins: [],
|
|
contentType: DwengoContentType.GIFT,
|
|
content: loadTestAsset('content/learning-object-resources/test_essay_question/content.txt'),
|
|
returnValue: {
|
|
callbackUrl: `%SUBMISSION%`,
|
|
callbackSchema: '["antwoord vraag 1"]',
|
|
},
|
|
};
|
|
|
|
export const testLearningObjectPnNotebooks: RequiredEntityData<LearningObject> = {
|
|
hruid: `${getEnvVar(envVars.UserContentPrefix)}pn_werkingnotebooks`,
|
|
version: 3,
|
|
language: Language.Dutch,
|
|
title: 'Werken met notebooks',
|
|
description: 'Leren werken met notebooks',
|
|
keywords: ['Python', 'KIKS', 'Wiskunde', 'STEM', 'AI'],
|
|
targetAges: [14, 15, 16, 17, 18],
|
|
admins: [],
|
|
copyright: 'dwengo',
|
|
educationalGoals: [],
|
|
license: 'dwengo',
|
|
contentType: DwengoContentType.TEXT_MARKDOWN,
|
|
difficulty: 3,
|
|
estimatedTime: 10,
|
|
uuid: '2adf9929-b424-4650-bf60-186f730d38ab',
|
|
teacherExclusive: false,
|
|
skosConcepts: [
|
|
'http://ilearn.ilabt.imec.be/vocab/curr1/s-vaktaal',
|
|
'http://ilearn.ilabt.imec.be/vocab/curr1/s-digitale-media-en-toepassingen',
|
|
'http://ilearn.ilabt.imec.be/vocab/curr1/s-computers-en-systemen',
|
|
],
|
|
attachments: [
|
|
{
|
|
name: 'dwengo.png',
|
|
mimeType: 'image/png',
|
|
content: loadTestAsset('/content/learning-object-resources/pn_werkingnotebooks/dwengo.png'),
|
|
},
|
|
{
|
|
name: 'Knop.png',
|
|
mimeType: 'image/png',
|
|
content: loadTestAsset('/content/learning-object-resources/pn_werkingnotebooks/Knop.png'),
|
|
},
|
|
],
|
|
available: false,
|
|
content: loadTestAsset('/content/learning-object-resources/pn_werkingnotebooks/content.md'),
|
|
returnValue: {
|
|
callbackUrl: '%SUBMISSION%',
|
|
callbackSchema: '[]',
|
|
},
|
|
};
|