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,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