fix(backend): Fouten in isTransitionPossible en het opzetten van de testdata verbeterd.
This commit is contained in:
		
							parent
							
								
									b539c28d8c
								
							
						
					
					
						commit
						fc46e79d05
					
				
					 10 changed files with 249 additions and 68 deletions
				
			
		|  | @ -3,66 +3,84 @@ 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'; | ||||
| import {LearningObject} from "../../../src/entities/content/learning-object.entity"; | ||||
| import {EnvVars, getEnvVar} from "../../../src/util/envvars"; | ||||
| 
 | ||||
| export type ConditionTestLearningPathAndLearningObjects = { | ||||
|     branchingObject: LearningObject, | ||||
|     extraExerciseObject: LearningObject, | ||||
|     finalObject: LearningObject, | ||||
|     learningPath: LearningPath | ||||
| }; | ||||
| 
 | ||||
| export function createConditionTestLearningPathAndLearningObjects(){ | ||||
|     const learningPath = new LearningPath(); | ||||
|     learningPath.hruid = `${getEnvVar(EnvVars.UserContentPrefix)}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 { | ||||
|         branchingObject: branchingLearningObject, | ||||
|         finalObject: finalLearningObject, | ||||
|         extraExerciseObject: extraExerciseLearningObject, | ||||
|         learningPath: learningPath, | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| 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; | ||||
|         return createConditionTestLearningPathAndLearningObjects().learningPath; | ||||
|     }, | ||||
| }; | ||||
|  |  | |||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger