test(backend): Testdata voor voorwaardelijke overgangen toegevoegd
This commit is contained in:
		
							parent
							
								
									050c83ca33
								
							
						
					
					
						commit
						164a547dd1
					
				
					 4 changed files with 104 additions and 0 deletions
				
			
		|  | @ -0,0 +1,5 @@ | ||||||
|  | const learningPathPersonalizingService = { | ||||||
|  | 
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | export default learningPathPersonalizingService; | ||||||
|  | @ -0,0 +1,25 @@ | ||||||
|  | import {LearningObjectExample} from "../learning-object-example"; | ||||||
|  | import {LearningObject} from "../../../../src/entities/content/learning-object.entity"; | ||||||
|  | import {Language} from "../../../../src/entities/content/language"; | ||||||
|  | import {loadTestAsset} from "../../../test-utils/load-test-asset"; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Create a dummy learning object to be used in tests where multiple learning objects are needed (for example for use | ||||||
|  |  * on a path), but where the precise contents of the learning object are not important. | ||||||
|  |  */ | ||||||
|  | export function dummyLearningObject(hruid: string, language: Language, title: string): LearningObjectExample { | ||||||
|  |     return { | ||||||
|  |         createLearningObject: () => { | ||||||
|  |             const learningObject = new LearningObject(); | ||||||
|  |             learningObject.hruid = hruid; | ||||||
|  |             learningObject.language = language; | ||||||
|  |             learningObject.version = 1; | ||||||
|  |             learningObject.title = title; | ||||||
|  |             learningObject.description = "Just a dummy learning object for testing purposes"; | ||||||
|  |             learningObject.content = Buffer.from("Dummy content"); | ||||||
|  |             return learningObject; | ||||||
|  |         }, | ||||||
|  |         createAttachment: {}, | ||||||
|  |         getHTMLRendering: () => loadTestAsset("learning-objects/dummy/rendering.html").toString() | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,74 @@ | ||||||
|  | import {LearningPath} from "../../../src/entities/content/learning-path.entity"; | ||||||
|  | import {Language} from "../../../src/entities/content/language"; | ||||||
|  | import testMultipleChoiceExample from "../learning-objects/test-multiple-choice/test-multiple-choice-example"; | ||||||
|  | import {dummyLearningObject} from "../learning-objects/dummy/dummy-learning-object-example"; | ||||||
|  | import {createLearningPathNode, createLearningPathTransition} from "./learning-path-utils"; | ||||||
|  | 
 | ||||||
|  | const example: LearningPathExample = { | ||||||
|  |     createLearningPath: () => { | ||||||
|  |         const learningPath = new LearningPath(); | ||||||
|  |         learningPath.hruid = "test_conditions"; | ||||||
|  |         learningPath.language = Language.English; | ||||||
|  |         learningPath.title = "Example learning path with conditional transitions"; | ||||||
|  |         learningPath.description = "This learning path was made for the purpose of testing conditional transitions"; | ||||||
|  | 
 | ||||||
|  |         const branchingLearningObject = testMultipleChoiceExample.createLearningObject(); | ||||||
|  |         const extraExerciseLearningObject = dummyLearningObject( | ||||||
|  |             "test_extra_exercise", Language.English, "Extra exercise (for students with difficulties)" | ||||||
|  |         ).createLearningObject(); | ||||||
|  |         const finalLearningObject = dummyLearningObject( | ||||||
|  |             "test_final_learning_object", Language.English, "Final exercise (for everyone)" | ||||||
|  |         ).createLearningObject(); | ||||||
|  | 
 | ||||||
|  |         const branchingNode = createLearningPathNode( | ||||||
|  |             learningPath, | ||||||
|  |             0, | ||||||
|  |             branchingLearningObject.hruid, | ||||||
|  |             branchingLearningObject.version, | ||||||
|  |             branchingLearningObject.language, | ||||||
|  |             true | ||||||
|  |         ); | ||||||
|  |         const extraExerciseNode = createLearningPathNode( | ||||||
|  |             learningPath, | ||||||
|  |             1, | ||||||
|  |             extraExerciseLearningObject.hruid, | ||||||
|  |             extraExerciseLearningObject.version, | ||||||
|  |             extraExerciseLearningObject.language, | ||||||
|  |             false | ||||||
|  |         ); | ||||||
|  |         const finalNode = createLearningPathNode( | ||||||
|  |             learningPath, | ||||||
|  |             2, | ||||||
|  |             finalLearningObject.hruid, | ||||||
|  |             finalLearningObject.version, | ||||||
|  |             finalLearningObject.language, | ||||||
|  |             false | ||||||
|  |         ); | ||||||
|  | 
 | ||||||
|  |         const transitionToExtraExercise = createLearningPathTransition( | ||||||
|  |             branchingNode, | ||||||
|  |             0, | ||||||
|  |             "$[?(@[0] == 0)]", // The answer to the first question was the first one, which says that it is difficult for the student to follow along.
 | ||||||
|  |             extraExerciseNode | ||||||
|  |         ); | ||||||
|  |         const directTransitionToFinal = createLearningPathTransition( | ||||||
|  |             branchingNode, | ||||||
|  |             1, | ||||||
|  |             "$[?(@[0] == 1)]", | ||||||
|  |             finalNode | ||||||
|  |         ); | ||||||
|  |         const transitionExtraExerciseToFinal = createLearningPathTransition( | ||||||
|  |             extraExerciseNode, | ||||||
|  |             0, | ||||||
|  |             "true", | ||||||
|  |             finalNode | ||||||
|  |         ); | ||||||
|  | 
 | ||||||
|  |         branchingNode.transitions = [transitionToExtraExercise, directTransitionToFinal]; | ||||||
|  |         extraExerciseNode.transitions = [transitionExtraExerciseToFinal]; | ||||||
|  | 
 | ||||||
|  |         learningPath.nodes = [branchingNode, extraExerciseNode, finalNode]; | ||||||
|  | 
 | ||||||
|  |         return learningPath; | ||||||
|  |     } | ||||||
|  | }; | ||||||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger