refactor(backend): Streamlining van de testdata voor leerpaden en leerobjecten + integratie in seed
Hierbij ook testdata functionaliteit toegevoegd om makkelijk nieuwe leerpaden aan te maken.
This commit is contained in:
parent
4092f1f617
commit
202cf4e33c
32 changed files with 691 additions and 493 deletions
|
@ -1,135 +1,252 @@
|
|||
import { EntityManager } 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 {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";
|
||||
|
||||
export function makeTestLearningObjects(em: EntityManager): LearningObject[] {
|
||||
const returnValue: ReturnValue = new ReturnValue();
|
||||
returnValue.callbackSchema = '';
|
||||
returnValue.callbackUrl = '';
|
||||
|
||||
const learningObject01 = em.create(LearningObject, {
|
||||
hruid: 'id01',
|
||||
language: Language.English,
|
||||
version: 1,
|
||||
admins: [],
|
||||
title: 'Undertow',
|
||||
description: 'debute',
|
||||
contentType: DwengoContentType.TEXT_MARKDOWN,
|
||||
keywords: [],
|
||||
teacherExclusive: false,
|
||||
skosConcepts: [],
|
||||
educationalGoals: [],
|
||||
copyright: '',
|
||||
license: '',
|
||||
estimatedTime: 45,
|
||||
returnValue: returnValue,
|
||||
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"),
|
||||
});
|
||||
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 learningObject02 = em.create(LearningObject, {
|
||||
hruid: '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: returnValue,
|
||||
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"
|
||||
),
|
||||
});
|
||||
const learningObjectMultipleChoice = em.create(LearningObject, testLearningObjectMultipleChoice);
|
||||
const learningObjectEssayQuestion= em.create(LearningObject, testLearningObjectEssayQuestion);
|
||||
|
||||
const learningObject03 = em.create(LearningObject, {
|
||||
hruid: '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: returnValue,
|
||||
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'
|
||||
),
|
||||
});
|
||||
const learningObjectPnNotebooks = em.create(LearningObject, testLearningObjectPnNotebooks);
|
||||
|
||||
const learningObject04 = em.create(LearningObject, {
|
||||
hruid: '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: returnValue,
|
||||
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'
|
||||
),
|
||||
});
|
||||
|
||||
const learningObject05 = em.create(LearningObject, {
|
||||
hruid: '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: returnValue,
|
||||
available: true,
|
||||
contentLocation: '',
|
||||
attachments: [],
|
||||
content: Buffer.from('calling Elvis, is anybody home, calling elvis, I am here all alone'),
|
||||
});
|
||||
|
||||
return [learningObject01, learningObject02, learningObject03, learningObject04, learningObject05];
|
||||
return [
|
||||
learningObject01, learningObject02, learningObject03, learningObject04, learningObject05,
|
||||
learningObjectMultipleChoice, learningObjectEssayQuestion, learningObjectPnNotebooks
|
||||
];
|
||||
}
|
||||
|
||||
export function createReturnValue(): ReturnValue {
|
||||
const returnValue: ReturnValue = new ReturnValue();
|
||||
returnValue.callbackSchema = '';
|
||||
returnValue.callbackUrl = '';
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
export const testLearningObject01: RequiredEntityData<LearningObject> = {
|
||||
hruid: 'id01',
|
||||
language: Language.English,
|
||||
version: 1,
|
||||
admins: [],
|
||||
title: 'Undertow',
|
||||
description: 'debute',
|
||||
contentType: DwengoContentType.TEXT_MARKDOWN,
|
||||
keywords: [],
|
||||
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: '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: '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: '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: '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/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: "[]"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue