fix(backend): Fouten in isTransitionPossible en het opzetten van de testdata verbeterd.

This commit is contained in:
Gerald Schmittinger 2025-03-11 11:58:55 +01:00
parent b539c28d8c
commit fc46e79d05
10 changed files with 249 additions and 68 deletions

View file

@ -97,14 +97,26 @@ async function convertNodes(
learningobject_hruid: node.learningObjectHruid,
version: learningObject.version,
transitions: node.transitions
.filter((trans) => !personalizedFor || isTransitionPossible(trans, lastSubmission)) // If we want a personalized learning path, remove all transitions that aren't possible.
.map((trans, i) => convertTransition(trans, i, nodesToLearningObjects)), // Then convert all the transition
.filter((trans) =>
!personalizedFor || isTransitionPossible(trans, optionalJsonStringToObject(lastSubmission?.content)) // If we want a personalized learning path, remove all transitions that aren't possible.
).map((trans, i) => convertTransition(trans, i, nodesToLearningObjects)), // Then convert all the transition
};
})
.toArray();
return await Promise.all(nodesPromise);
}
/**
* Helper method to convert a json string to an object, or null if it is undefined.
*/
function optionalJsonStringToObject(jsonString?: string): object | null {
if (!jsonString) {
return null;
} else {
return JSON.parse(jsonString);
}
}
/**
* Helper function which converts a transition in the database representation to a transition in the representation
* the Dwengo API uses.

View file

@ -36,5 +36,6 @@ export function isTransitionPossible(transition: LearningPathTransition, submitt
if (submitted === null) {
return false; // If the transition is not unconditional and there was no submission, the transition is not possible.
}
return JSONPath({ path: transition.condition, json: submitted }).length === 0;
const match = JSONPath({ path: transition.condition, json: {submission: submitted} })
return match.length === 1;
}