parent
d24eb9832b
commit
61f3afd9ae
48 changed files with 56 additions and 65 deletions
|
@ -2,11 +2,11 @@ import { Request, Response } from 'express';
|
||||||
import { FALLBACK_LANG } from '../config.js';
|
import { FALLBACK_LANG } from '../config.js';
|
||||||
import learningObjectService from '../services/learning-objects/learning-object-service.js';
|
import learningObjectService from '../services/learning-objects/learning-object-service.js';
|
||||||
import { envVars, getEnvVar } from '../util/envVars.js';
|
import { envVars, getEnvVar } from '../util/envVars.js';
|
||||||
|
import { Language } from '../entities/content/language.js';
|
||||||
import attachmentService from '../services/learning-objects/attachment-service.js';
|
import attachmentService from '../services/learning-objects/attachment-service.js';
|
||||||
import { NotFoundError } from '@mikro-orm/core';
|
import { NotFoundError } from '@mikro-orm/core';
|
||||||
import { BadRequestException } from '../exceptions/bad-request-exception.js';
|
import { BadRequestException } from '../exceptions/bad-request-exception.js';
|
||||||
import { FilteredLearningObject, LearningObjectIdentifier, LearningPathIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
import { FilteredLearningObject, LearningObjectIdentifier, LearningPathIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIdentifier {
|
function getLearningObjectIdentifierFromRequest(req: Request): LearningObjectIdentifier {
|
||||||
if (!req.params.hruid) {
|
if (!req.params.hruid) {
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { Request, Response } from 'express';
|
||||||
import { themes } from '../data/themes.js';
|
import { themes } from '../data/themes.js';
|
||||||
import { FALLBACK_LANG } from '../config.js';
|
import { FALLBACK_LANG } from '../config.js';
|
||||||
import learningPathService from '../services/learning-paths/learning-path-service.js';
|
import learningPathService from '../services/learning-paths/learning-path-service.js';
|
||||||
|
import { Language } from '../entities/content/language.js';
|
||||||
import {
|
import {
|
||||||
PersonalizationTarget,
|
PersonalizationTarget,
|
||||||
personalizedForGroup,
|
personalizedForGroup,
|
||||||
|
@ -9,7 +10,6 @@ import {
|
||||||
} from '../services/learning-paths/learning-path-personalization-util.js';
|
} from '../services/learning-paths/learning-path-personalization-util.js';
|
||||||
import { BadRequestException } from '../exceptions/bad-request-exception.js';
|
import { BadRequestException } from '../exceptions/bad-request-exception.js';
|
||||||
import { NotFoundException } from '../exceptions/not-found-exception.js';
|
import { NotFoundException } from '../exceptions/not-found-exception.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch learning paths based on query parameters.
|
* Fetch learning paths based on query parameters.
|
||||||
|
|
|
@ -2,8 +2,8 @@ import { Request, Response } from 'express';
|
||||||
import { createQuestion, deleteQuestion, getAllQuestions, getAnswersByQuestion, getQuestion } from '../services/questions.js';
|
import { createQuestion, deleteQuestion, getAllQuestions, getAnswersByQuestion, getQuestion } from '../services/questions.js';
|
||||||
import { FALLBACK_LANG, FALLBACK_SEQ_NUM } from '../config.js';
|
import { FALLBACK_LANG, FALLBACK_SEQ_NUM } from '../config.js';
|
||||||
import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js';
|
import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js';
|
||||||
|
import { Language } from '../entities/content/language.js';
|
||||||
import { QuestionDTO, QuestionId } from 'dwengo-1-common/src/interfaces/question';
|
import { QuestionDTO, QuestionId } from 'dwengo-1-common/src/interfaces/question';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
function getObjectId(req: Request, res: Response): LearningObjectIdentifier | null {
|
function getObjectId(req: Request, res: Response): LearningObjectIdentifier | null {
|
||||||
const { hruid, version } = req.params;
|
const { hruid, version } = req.params;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { Request, Response } from 'express';
|
import { Request, Response } from 'express';
|
||||||
import { createSubmission, deleteSubmission, getSubmission } from '../services/submissions.js';
|
import { createSubmission, deleteSubmission, getSubmission } from '../services/submissions.js';
|
||||||
|
import { Language, languageMap } from '../entities/content/language.js';
|
||||||
|
|
||||||
import { SubmissionDTO } from 'dwengo-1-common/src/interfaces/submission';
|
import { SubmissionDTO } from 'dwengo-1-common/src/interfaces/submission';
|
||||||
import { Language, languageMap } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
interface SubmissionParams {
|
interface SubmissionParams {
|
||||||
hruid: string;
|
hruid: string;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
|
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
|
||||||
import { Attachment } from '../../entities/content/attachment.entity.js';
|
import { Attachment } from '../../entities/content/attachment.entity.js';
|
||||||
|
import { Language } from '../../entities/content/language';
|
||||||
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier';
|
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
export class AttachmentRepository extends DwengoEntityRepository<Attachment> {
|
export class AttachmentRepository extends DwengoEntityRepository<Attachment> {
|
||||||
public async findByLearningObjectIdAndName(learningObjectId: LearningObjectIdentifier, name: string): Promise<Attachment | null> {
|
public async findByLearningObjectIdAndName(learningObjectId: LearningObjectIdentifier, name: string): Promise<Attachment | null> {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
|
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
|
||||||
import { LearningObject } from '../../entities/content/learning-object.entity.js';
|
import { LearningObject } from '../../entities/content/learning-object.entity.js';
|
||||||
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier.js';
|
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier.js';
|
||||||
|
import { Language } from '../../entities/content/language.js';
|
||||||
import { Teacher } from '../../entities/users/teacher.entity.js';
|
import { Teacher } from '../../entities/users/teacher.entity.js';
|
||||||
|
|
||||||
export class LearningObjectRepository extends DwengoEntityRepository<LearningObject> {
|
export class LearningObjectRepository extends DwengoEntityRepository<LearningObject> {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
|
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
|
||||||
import { LearningPath } from '../../entities/content/learning-path.entity.js';
|
import { LearningPath } from '../../entities/content/learning-path.entity.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
import { Language } from '../../entities/content/language.js';
|
||||||
|
|
||||||
export class LearningPathRepository extends DwengoEntityRepository<LearningPath> {
|
export class LearningPathRepository extends DwengoEntityRepository<LearningPath> {
|
||||||
public async findByHruidAndLanguage(hruid: string, language: Language): Promise<LearningPath | null> {
|
public async findByHruidAndLanguage(hruid: string, language: Language): Promise<LearningPath | null> {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
import { Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
||||||
import { Class } from '../classes/class.entity.js';
|
import { Class } from '../classes/class.entity.js';
|
||||||
import { Group } from './group.entity.js';
|
import { Group } from './group.entity.js';
|
||||||
|
import { Language } from '../content/language.js';
|
||||||
import { AssignmentRepository } from '../../data/assignments/assignment-repository.js';
|
import { AssignmentRepository } from '../../data/assignments/assignment-repository.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
@Entity({
|
@Entity({
|
||||||
repository: () => AssignmentRepository,
|
repository: () => AssignmentRepository,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { Student } from '../users/student.entity.js';
|
import { Student } from '../users/student.entity.js';
|
||||||
import { Group } from './group.entity.js';
|
import { Group } from './group.entity.js';
|
||||||
import { Entity, Enum, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
|
import { Entity, Enum, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
|
||||||
|
import { Language } from '../content/language.js';
|
||||||
import { SubmissionRepository } from '../../data/assignments/submission-repository.js';
|
import { SubmissionRepository } from '../../data/assignments/submission-repository.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
@Entity({ repository: () => SubmissionRepository })
|
@Entity({ repository: () => SubmissionRepository })
|
||||||
export class Submission {
|
export class Submission {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from './language.js';
|
||||||
|
|
||||||
export class LearningObjectIdentifier {
|
export class LearningObjectIdentifier {
|
||||||
constructor(
|
constructor(
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import { Embedded, Entity, Enum, ManyToMany, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
import { Embedded, Entity, Enum, ManyToMany, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
import { Attachment } from './attachment.entity.js';
|
import { Attachment } from './attachment.entity.js';
|
||||||
import { Teacher } from '../users/teacher.entity.js';
|
import { Teacher } from '../users/teacher.entity.js';
|
||||||
import { DwengoContentType } from '../../services/learning-objects/processing/content-type.js';
|
import { DwengoContentType } from '../../services/learning-objects/processing/content-type.js';
|
||||||
import { v4 } from 'uuid';
|
import { v4 } from 'uuid';
|
||||||
import { LearningObjectRepository } from '../../data/content/learning-object-repository.js';
|
import { LearningObjectRepository } from '../../data/content/learning-object-repository.js';
|
||||||
import { EducationalGoal } from './educational-goal.entity.js';
|
import { EducationalGoal } from './educational-goal.entity.js';
|
||||||
|
import { Language } from './language.js';
|
||||||
import { ReturnValue } from './return-value.entity.js';
|
import { ReturnValue } from './return-value.entity.js';
|
||||||
|
|
||||||
@Entity({ repository: () => LearningObjectRepository })
|
@Entity({ repository: () => LearningObjectRepository })
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property, Rel } from '@mikro-orm/core';
|
import { Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property, Rel } from '@mikro-orm/core';
|
||||||
|
import { Language } from './language.js';
|
||||||
import { LearningPath } from './learning-path.entity.js';
|
import { LearningPath } from './learning-path.entity.js';
|
||||||
import { LearningPathTransition } from './learning-path-transition.entity.js';
|
import { LearningPathTransition } from './learning-path-transition.entity.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class LearningPathNode {
|
export class LearningPathNode {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { Entity, Enum, ManyToMany, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
import { Entity, Enum, ManyToMany, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
||||||
|
import { Language } from './language.js';
|
||||||
import { Teacher } from '../users/teacher.entity.js';
|
import { Teacher } from '../users/teacher.entity.js';
|
||||||
import { LearningPathRepository } from '../../data/content/learning-path-repository.js';
|
import { LearningPathRepository } from '../../data/content/learning-path-repository.js';
|
||||||
import { LearningPathNode } from './learning-path-node.entity.js';
|
import { LearningPathNode } from './learning-path-node.entity.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
@Entity({ repository: () => LearningPathRepository })
|
@Entity({ repository: () => LearningPathRepository })
|
||||||
export class LearningPath {
|
export class LearningPath {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Entity, Enum, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
|
import { Entity, Enum, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
|
||||||
|
import { Language } from '../content/language.js';
|
||||||
import { Student } from '../users/student.entity.js';
|
import { Student } from '../users/student.entity.js';
|
||||||
import { QuestionRepository } from '../../data/questions/question-repository.js';
|
import { QuestionRepository } from '../../data/questions/question-repository.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
@Entity({ repository: () => QuestionRepository })
|
@Entity({ repository: () => QuestionRepository })
|
||||||
export class Question {
|
export class Question {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { languageMap } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
import { FALLBACK_LANG } from '../config.js';
|
import { FALLBACK_LANG } from '../config.js';
|
||||||
import { Assignment } from '../entities/assignments/assignment.entity.js';
|
import { Assignment } from '../entities/assignments/assignment.entity.js';
|
||||||
import { Class } from '../entities/classes/class.entity.js';
|
import { Class } from '../entities/classes/class.entity.js';
|
||||||
import { getLogger } from '../logging/initalize.js';
|
import { getLogger } from '../logging/initalize.js';
|
||||||
|
import { languageMap } from '../entities/content/language.js';
|
||||||
import { AssignmentDTO } from 'dwengo-1-common/src/interfaces/assignment';
|
import { AssignmentDTO } from 'dwengo-1-common/src/interfaces/assignment';
|
||||||
|
|
||||||
export function mapToAssignmentDTOId(assignment: Assignment): AssignmentDTO {
|
export function mapToAssignmentDTOId(assignment: Assignment): AssignmentDTO {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { LearningObjectProvider } from './learning-object-provider.js';
|
import { LearningObjectProvider } from './learning-object-provider.js';
|
||||||
import { getLearningObjectRepository, getLearningPathRepository } from '../../data/repositories.js';
|
import { getLearningObjectRepository, getLearningPathRepository } from '../../data/repositories.js';
|
||||||
|
import { Language } from '../../entities/content/language.js';
|
||||||
import { LearningObject } from '../../entities/content/learning-object.entity.js';
|
import { LearningObject } from '../../entities/content/learning-object.entity.js';
|
||||||
import { getUrlStringForLearningObject } from '../../util/links.js';
|
import { getUrlStringForLearningObject } from '../../util/links.js';
|
||||||
import processingService from './processing/processing-service.js';
|
import processingService from './processing/processing-service.js';
|
||||||
|
@ -7,7 +8,6 @@ import { NotFoundError } from '@mikro-orm/core';
|
||||||
import learningObjectService from './learning-object-service.js';
|
import learningObjectService from './learning-object-service.js';
|
||||||
import { getLogger, Logger } from '../../logging/initalize.js';
|
import { getLogger, Logger } from '../../logging/initalize.js';
|
||||||
import { FilteredLearningObject, LearningObjectIdentifier, LearningPathIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
import { FilteredLearningObject, LearningObjectIdentifier, LearningPathIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
const logger: Logger = getLogger();
|
const logger: Logger = getLogger();
|
||||||
|
|
||||||
|
|
|
@ -8,13 +8,13 @@ import InlineImageProcessor from '../image/inline-image-processor.js';
|
||||||
import * as marked from 'marked';
|
import * as marked from 'marked';
|
||||||
import { getUrlStringForLearningObjectHTML, isValidHttpUrl } from '../../../../util/links.js';
|
import { getUrlStringForLearningObjectHTML, isValidHttpUrl } from '../../../../util/links.js';
|
||||||
import { ProcessingError } from '../processing-error.js';
|
import { ProcessingError } from '../processing-error.js';
|
||||||
|
import { Language } from '../../../../entities/content/language.js';
|
||||||
|
|
||||||
import Image = marked.Tokens.Image;
|
import Image = marked.Tokens.Image;
|
||||||
import Heading = marked.Tokens.Heading;
|
import Heading = marked.Tokens.Heading;
|
||||||
import Link = marked.Tokens.Link;
|
import Link = marked.Tokens.Link;
|
||||||
import RendererObject = marked.RendererObject;
|
import RendererObject = marked.RendererObject;
|
||||||
import { LearningObjectIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
import { LearningObjectIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
const prefixes = {
|
const prefixes = {
|
||||||
learningObject: '@learning-object',
|
learningObject: '@learning-object',
|
||||||
|
|
|
@ -13,9 +13,9 @@ import GiftProcessor from './gift/gift-processor.js';
|
||||||
import { LearningObject } from '../../../entities/content/learning-object.entity.js';
|
import { LearningObject } from '../../../entities/content/learning-object.entity.js';
|
||||||
import Processor from './processor.js';
|
import Processor from './processor.js';
|
||||||
import { DwengoContentType } from './content-type.js';
|
import { DwengoContentType } from './content-type.js';
|
||||||
|
import { Language } from '../../../entities/content/language.js';
|
||||||
import { replaceAsync } from '../../../util/async.js';
|
import { replaceAsync } from '../../../util/async.js';
|
||||||
import { LearningObjectIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
import { LearningObjectIdentifier } from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
const EMBEDDED_LEARNING_OBJECT_PLACEHOLDER = /<learning-object hruid="([^"]+)" language="([^"]+)" version="([^"]+)"\/>/g;
|
const EMBEDDED_LEARNING_OBJECT_PLACEHOLDER = /<learning-object hruid="([^"]+)" language="([^"]+)" version="([^"]+)"\/>/g;
|
||||||
const LEARNING_OBJECT_DOES_NOT_EXIST = "<div class='non-existing-learning-object' />";
|
const LEARNING_OBJECT_DOES_NOT_EXIST = "<div class='non-existing-learning-object' />";
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { LearningPathProvider } from './learning-path-provider.js';
|
import { LearningPathProvider } from './learning-path-provider.js';
|
||||||
import { LearningPath as LearningPathEntity } from '../../entities/content/learning-path.entity.js';
|
import { LearningPath as LearningPathEntity } from '../../entities/content/learning-path.entity.js';
|
||||||
import { getLearningPathRepository } from '../../data/repositories.js';
|
import { getLearningPathRepository } from '../../data/repositories.js';
|
||||||
|
import { Language } from '../../entities/content/language.js';
|
||||||
import learningObjectService from '../learning-objects/learning-object-service.js';
|
import learningObjectService from '../learning-objects/learning-object-service.js';
|
||||||
import { LearningPathNode } from '../../entities/content/learning-path-node.entity.js';
|
import { LearningPathNode } from '../../entities/content/learning-path-node.entity.js';
|
||||||
import { LearningPathTransition } from '../../entities/content/learning-path-transition.entity.js';
|
import { LearningPathTransition } from '../../entities/content/learning-path-transition.entity.js';
|
||||||
|
@ -12,7 +13,6 @@ import {
|
||||||
LearningPathResponse,
|
LearningPathResponse,
|
||||||
Transition,
|
Transition,
|
||||||
} from 'dwengo-1-common/src/interfaces/learning-content';
|
} from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the corresponding learning object for each of the nodes and creates a map that maps each node to its
|
* Fetches the corresponding learning object for each of the nodes and creates a map that maps each node to its
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
import { Language } from '../../entities/content/language.js';
|
||||||
import { PersonalizationTarget } from './learning-path-personalization-util.js';
|
import { PersonalizationTarget } from './learning-path-personalization-util.js';
|
||||||
import { LearningPath, LearningPathResponse } from 'dwengo-1-common/src/interfaces/learning-content';
|
import { LearningPath, LearningPathResponse } from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import dwengoApiLearningPathProvider from './dwengo-api-learning-path-provider.js';
|
import dwengoApiLearningPathProvider from './dwengo-api-learning-path-provider.js';
|
||||||
import databaseLearningPathProvider from './database-learning-path-provider.js';
|
import databaseLearningPathProvider from './database-learning-path-provider.js';
|
||||||
import { envVars, getEnvVar } from '../../util/envVars.js';
|
import { envVars, getEnvVar } from '../../util/envVars.js';
|
||||||
|
import { Language } from '../../entities/content/language.js';
|
||||||
import { PersonalizationTarget } from './learning-path-personalization-util.js';
|
import { PersonalizationTarget } from './learning-path-personalization-util.js';
|
||||||
import { LearningPath, LearningPathResponse } from 'dwengo-1-common/src/interfaces/learning-content';
|
import { LearningPath, LearningPathResponse } from 'dwengo-1-common/src/interfaces/learning-content';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
|
||||||
|
|
||||||
const userContentPrefix = getEnvVar(envVars.UserContentPrefix);
|
const userContentPrefix = getEnvVar(envVars.UserContentPrefix);
|
||||||
const allProviders = [dwengoApiLearningPathProvider, databaseLearningPathProvider];
|
const allProviders = [dwengoApiLearningPathProvider, databaseLearningPathProvider];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
import { getGroupRepository, getSubmissionRepository } from '../data/repositories.js';
|
||||||
import { getSubmissionRepository } from '../data/repositories.js';
|
import { Language } from '../entities/content/language.js';
|
||||||
import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js';
|
import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js';
|
||||||
import { mapToSubmission, mapToSubmissionDTO } from '../interfaces/submission.js';
|
import { mapToSubmission, mapToSubmissionDTO } from '../interfaces/submission.js';
|
||||||
import { SubmissionDTO } from 'dwengo-1-common/src/interfaces/submission';
|
import { SubmissionDTO } from 'dwengo-1-common/src/interfaces/submission';
|
||||||
|
|
|
@ -9,11 +9,11 @@ import {
|
||||||
getSubmissionRepository,
|
getSubmissionRepository,
|
||||||
} from '../../../src/data/repositories';
|
} from '../../../src/data/repositories';
|
||||||
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { StudentRepository } from '../../../src/data/users/student-repository';
|
import { StudentRepository } from '../../../src/data/users/student-repository';
|
||||||
import { GroupRepository } from '../../../src/data/assignments/group-repository';
|
import { GroupRepository } from '../../../src/data/assignments/group-repository';
|
||||||
import { AssignmentRepository } from '../../../src/data/assignments/assignment-repository';
|
import { AssignmentRepository } from '../../../src/data/assignments/assignment-repository';
|
||||||
import { ClassRepository } from '../../../src/data/classes/class-repository';
|
import { ClassRepository } from '../../../src/data/classes/class-repository';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
|
|
||||||
describe('SubmissionRepository', () => {
|
describe('SubmissionRepository', () => {
|
||||||
let submissionRepository: SubmissionRepository;
|
let submissionRepository: SubmissionRepository;
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { getAttachmentRepository, getLearningObjectRepository } from '../../../s
|
||||||
import { AttachmentRepository } from '../../../src/data/content/attachment-repository.js';
|
import { AttachmentRepository } from '../../../src/data/content/attachment-repository.js';
|
||||||
import { LearningObjectRepository } from '../../../src/data/content/learning-object-repository.js';
|
import { LearningObjectRepository } from '../../../src/data/content/learning-object-repository.js';
|
||||||
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier.js';
|
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language.js';
|
import { Language } from '../../../src/entities/content/language.js';
|
||||||
|
|
||||||
describe('AttachmentRepository', () => {
|
describe('AttachmentRepository', () => {
|
||||||
let attachmentRepository: AttachmentRepository;
|
let attachmentRepository: AttachmentRepository;
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { LearningObjectRepository } from '../../../src/data/content/learning-obj
|
||||||
import { getLearningObjectRepository } from '../../../src/data/repositories';
|
import { getLearningObjectRepository } from '../../../src/data/repositories';
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../src/entities/content/language';
|
||||||
|
|
||||||
describe('LearningObjectRepository', () => {
|
describe('LearningObjectRepository', () => {
|
||||||
let learningObjectRepository: LearningObjectRepository;
|
let learningObjectRepository: LearningObjectRepository;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { LearningPathRepository } from '../../../src/data/content/learning-path-
|
||||||
import example from '../../test-assets/learning-paths/pn-werking-example.js';
|
import example from '../../test-assets/learning-paths/pn-werking-example.js';
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity.js';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity.js';
|
||||||
import { expectToBeCorrectEntity } from '../../test-utils/expectations.js';
|
import { expectToBeCorrectEntity } from '../../test-utils/expectations.js';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../src/entities/content/language.js';
|
||||||
|
|
||||||
function expectToHaveFoundPrecisely(expected: LearningPath, result: LearningPath[]): void {
|
function expectToHaveFoundPrecisely(expected: LearningPath, result: LearningPath[]): void {
|
||||||
expect(result).toHaveProperty('length');
|
expect(result).toHaveProperty('length');
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { getLearningPathRepository } from '../../../src/data/repositories';
|
import { getLearningPathRepository } from '../../../src/data/repositories';
|
||||||
import { LearningPathRepository } from '../../../src/data/content/learning-path-repository';
|
import { LearningPathRepository } from '../../../src/data/content/learning-path-repository';
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../src/entities/content/language';
|
||||||
|
|
||||||
describe('LearningPathRepository', () => {
|
describe('LearningPathRepository', () => {
|
||||||
let learningPathRepository: LearningPathRepository;
|
let learningPathRepository: LearningPathRepository;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import { beforeAll, describe, expect, it } from 'vitest';
|
import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { AnswerRepository } from '../../../src/data/questions/answer-repository';
|
import { AnswerRepository } from '../../../src/data/questions/answer-repository';
|
||||||
import { getAnswerRepository, getQuestionRepository, getTeacherRepository } from '../../../src/data/repositories';
|
import { getAnswerRepository, getQuestionRepository, getTeacherRepository } from '../../../src/data/repositories';
|
||||||
import { QuestionRepository } from '../../../src/data/questions/question-repository';
|
import { QuestionRepository } from '../../../src/data/questions/question-repository';
|
||||||
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { TeacherRepository } from '../../../src/data/users/teacher-repository';
|
import { TeacherRepository } from '../../../src/data/users/teacher-repository';
|
||||||
|
|
||||||
describe('AnswerRepository', () => {
|
describe('AnswerRepository', () => {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import { beforeAll, describe, expect, it } from 'vitest';
|
import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { QuestionRepository } from '../../../src/data/questions/question-repository';
|
import { QuestionRepository } from '../../../src/data/questions/question-repository';
|
||||||
import { getQuestionRepository, getStudentRepository } from '../../../src/data/repositories';
|
import { getQuestionRepository, getStudentRepository } from '../../../src/data/repositories';
|
||||||
import { StudentRepository } from '../../../src/data/users/student-repository';
|
import { StudentRepository } from '../../../src/data/users/student-repository';
|
||||||
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
|
|
||||||
describe('QuestionRepository', () => {
|
describe('QuestionRepository', () => {
|
||||||
let questionRepository: QuestionRepository;
|
let questionRepository: QuestionRepository;
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
import { beforeAll, describe, expect, it } from 'vitest';
|
import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { getLearningObjectRepository, getLearningPathRepository } from '../../../src/data/repositories';
|
import { getLearningObjectRepository, getLearningPathRepository } from '../../../src/data/repositories';
|
||||||
import example from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
import example from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
||||||
import learningObjectExample from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
|
||||||
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
||||||
import databaseLearningObjectProvider from '../../../src/services/learning-objects/database-learning-object-provider';
|
import databaseLearningObjectProvider from '../../../src/services/learning-objects/database-learning-object-provider';
|
||||||
import { expectToBeCorrectFilteredLearningObject } from '../../test-utils/expectations';
|
import { expectToBeCorrectFilteredLearningObject } from '../../test-utils/expectations';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
|
import learningObjectExample from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
||||||
import learningPathExample from '../../test-assets/learning-paths/pn-werking-example';
|
import learningPathExample from '../../test-assets/learning-paths/pn-werking-example';
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
import { FilteredLearningObject } from 'dwengo-1-common/src/interfaces/learning-content';
|
import {FilteredLearningObject} from "dwengo-1-common/src/interfaces/learning-content";
|
||||||
|
|
||||||
async function initExampleData(): Promise<{ learningObject: LearningObject; learningPath: LearningPath }> {
|
async function initExampleData(): Promise<{ learningObject: LearningObject; learningPath: LearningPath }> {
|
||||||
const learningObjectRepo = getLearningObjectRepository();
|
const learningObjectRepo = getLearningObjectRepository();
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import { beforeAll, describe, expect, it } from 'vitest';
|
import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
||||||
import { getLearningObjectRepository, getLearningPathRepository } from '../../../src/data/repositories';
|
import { getLearningObjectRepository, getLearningPathRepository } from '../../../src/data/repositories';
|
||||||
import learningObjectExample from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
import learningObjectExample from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
||||||
import learningObjectService from '../../../src/services/learning-objects/learning-object-service';
|
import learningObjectService from '../../../src/services/learning-objects/learning-object-service';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { envVars, getEnvVar } from '../../../src/util/envVars';
|
import { envVars, getEnvVar } from '../../../src/util/envVars';
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
import learningPathExample from '../../test-assets/learning-paths/pn-werking-example';
|
import learningPathExample from '../../test-assets/learning-paths/pn-werking-example';
|
||||||
|
@ -73,18 +73,18 @@ describe('LearningObjectService', () => {
|
||||||
});
|
});
|
||||||
it(
|
it(
|
||||||
'returns the same HTML as the Dwengo API when queried with the identifier of a learning object that does ' +
|
'returns the same HTML as the Dwengo API when queried with the identifier of a learning object that does ' +
|
||||||
'not start with the user content prefix',
|
'not start with the user content prefix',
|
||||||
async () => {
|
async () => {
|
||||||
const result = await learningObjectService.getLearningObjectHTML(DWENGO_TEST_LEARNING_OBJECT_ID);
|
const result = await learningObjectService.getLearningObjectHTML(DWENGO_TEST_LEARNING_OBJECT_ID);
|
||||||
expect(result).not.toBeNull();
|
expect(result).not.toBeNull();
|
||||||
|
|
||||||
const responseFromDwengoApi = await fetch(
|
const responseFromDwengoApi = await fetch(
|
||||||
getEnvVar(envVars.LearningContentRepoApiBaseUrl) +
|
getEnvVar(envVars.LearningContentRepoApiBaseUrl) +
|
||||||
`/learningObject/getRaw?hruid=${DWENGO_TEST_LEARNING_OBJECT_ID.hruid}&language=${DWENGO_TEST_LEARNING_OBJECT_ID.language}&version=${DWENGO_TEST_LEARNING_OBJECT_ID.version}`
|
`/learningObject/getRaw?hruid=${DWENGO_TEST_LEARNING_OBJECT_ID.hruid}&language=${DWENGO_TEST_LEARNING_OBJECT_ID.language}&version=${DWENGO_TEST_LEARNING_OBJECT_ID.version}`,
|
||||||
);
|
);
|
||||||
const responseHtml = await responseFromDwengoApi.text();
|
const responseHtml = await responseFromDwengoApi.text();
|
||||||
expect(result).toEqual(responseHtml);
|
expect(result).toEqual(responseHtml);
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
it('returns null when queried with a non-existing identifier', async () => {
|
it('returns null when queried with a non-existing identifier', async () => {
|
||||||
const result = await learningObjectService.getLearningObjectHTML({
|
const result = await learningObjectService.getLearningObjectHTML({
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { beforeAll, describe, expect, it } from 'vitest';
|
import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { LearningObject } from '../../../src/entities/content/learning-object.entity.js';
|
import { LearningObject } from '../../../src/entities/content/learning-object.entity.js';
|
||||||
import { setupTestApp } from '../../setup-tests.js';
|
import { setupTestApp } from '../../setup-tests.js';
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity.js';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity.js';
|
||||||
|
@ -14,13 +13,14 @@ import learningPathExample from '../../test-assets/learning-paths/pn-werking-exa
|
||||||
import databaseLearningPathProvider from '../../../src/services/learning-paths/database-learning-path-provider.js';
|
import databaseLearningPathProvider from '../../../src/services/learning-paths/database-learning-path-provider.js';
|
||||||
import { expectToBeCorrectLearningPath } from '../../test-utils/expectations.js';
|
import { expectToBeCorrectLearningPath } from '../../test-utils/expectations.js';
|
||||||
import learningObjectService from '../../../src/services/learning-objects/learning-object-service.js';
|
import learningObjectService from '../../../src/services/learning-objects/learning-object-service.js';
|
||||||
|
import { Language } from '../../../src/entities/content/language.js';
|
||||||
import {
|
import {
|
||||||
ConditionTestLearningPathAndLearningObjects,
|
ConditionTestLearningPathAndLearningObjects,
|
||||||
createConditionTestLearningPathAndLearningObjects,
|
createConditionTestLearningPathAndLearningObjects,
|
||||||
} from '../../test-assets/learning-paths/test-conditions-example.js';
|
} from '../../test-assets/learning-paths/test-conditions-example.js';
|
||||||
import { Student } from '../../../src/entities/users/student.entity.js';
|
import { Student } from '../../../src/entities/users/student.entity.js';
|
||||||
|
|
||||||
import { LearningObjectNode, LearningPathResponse } from 'dwengo-1-common/src/interfaces/learning-content';
|
import {LearningObjectNode, LearningPathResponse} from "dwengo-1-common/src/interfaces/learning-content";
|
||||||
|
|
||||||
async function initExampleData(): Promise<{ learningObject: LearningObject; learningPath: LearningPath }> {
|
async function initExampleData(): Promise<{ learningObject: LearningObject; learningPath: LearningPath }> {
|
||||||
const learningObjectRepo = getLearningObjectRepository();
|
const learningObjectRepo = getLearningObjectRepository();
|
||||||
|
@ -103,11 +103,7 @@ function expectBranchingObjectNode(
|
||||||
|
|
||||||
describe('DatabaseLearningPathProvider', () => {
|
describe('DatabaseLearningPathProvider', () => {
|
||||||
let example: { learningObject: LearningObject; learningPath: LearningPath };
|
let example: { learningObject: LearningObject; learningPath: LearningPath };
|
||||||
let persTestData: {
|
let persTestData: { learningContent: ConditionTestLearningPathAndLearningObjects; studentA: Student; studentB: Student };
|
||||||
learningContent: ConditionTestLearningPathAndLearningObjects;
|
|
||||||
studentA: Student;
|
|
||||||
studentB: Student;
|
|
||||||
};
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await setupTestApp();
|
await setupTestApp();
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import { beforeAll, describe, expect, it } from 'vitest';
|
import { beforeAll, describe, expect, it } from 'vitest';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { setupTestApp } from '../../setup-tests';
|
import { setupTestApp } from '../../setup-tests';
|
||||||
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
import { getLearningObjectRepository, getLearningPathRepository } from '../../../src/data/repositories';
|
import { getLearningObjectRepository, getLearningPathRepository } from '../../../src/data/repositories';
|
||||||
import learningObjectExample from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
import learningObjectExample from '../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example';
|
||||||
import learningPathExample from '../../test-assets/learning-paths/pn-werking-example';
|
import learningPathExample from '../../test-assets/learning-paths/pn-werking-example';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import learningPathService from '../../../src/services/learning-paths/learning-path-service';
|
import learningPathService from '../../../src/services/learning-paths/learning-path-service';
|
||||||
|
|
||||||
async function initExampleData(): Promise<{ learningObject: LearningObject; learningPath: LearningPath }> {
|
async function initExampleData(): Promise<{ learningObject: LearningObject; learningPath: LearningPath }> {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { LearningObjectExample } from '../learning-object-example';
|
import { LearningObjectExample } from '../learning-object-example';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
||||||
|
import { Language } from '../../../../src/entities/content/language';
|
||||||
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
||||||
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
||||||
import { envVars, getEnvVar } from '../../../../src/util/envVars';
|
import { envVars, getEnvVar } from '../../../../src/util/envVars';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { LearningObjectExample } from '../learning-object-example';
|
import { LearningObjectExample } from '../learning-object-example';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../../src/entities/content/language';
|
||||||
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
||||||
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
||||||
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { LearningObjectExample } from '../learning-object-example';
|
import { LearningObjectExample } from '../learning-object-example';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
||||||
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
||||||
import { envVars, getEnvVar } from '../../../../src/util/envVars';
|
import { envVars, getEnvVar } from '../../../../src/util/envVars';
|
||||||
|
import { Language } from '../../../../src/entities/content/language';
|
||||||
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
||||||
|
|
||||||
const example: LearningObjectExample = {
|
const example: LearningObjectExample = {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { LearningObjectExample } from '../learning-object-example';
|
import { LearningObjectExample } from '../learning-object-example';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../../src/entities/content/learning-object.entity';
|
||||||
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
import { loadTestAsset } from '../../../test-utils/load-test-asset';
|
||||||
import { envVars, getEnvVar } from '../../../../src/util/envVars';
|
import { envVars, getEnvVar } from '../../../../src/util/envVars';
|
||||||
|
import { Language } from '../../../../src/entities/content/language';
|
||||||
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
import { DwengoContentType } from '../../../../src/services/learning-objects/processing/content-type';
|
||||||
|
|
||||||
const example: LearningObjectExample = {
|
const example: LearningObjectExample = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { LearningPathTransition } from '../../../src/entities/content/learning-path-transition.entity';
|
import { LearningPathTransition } from '../../../src/entities/content/learning-path-transition.entity';
|
||||||
import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity';
|
import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity';
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { envVars, getEnvVar } from '../../../src/util/envVars';
|
import { envVars, getEnvVar } from '../../../src/util/envVars';
|
||||||
import { createLearningPathNode, createLearningPathTransition } from './learning-path-utils';
|
import { createLearningPathNode, createLearningPathTransition } from './learning-path-utils';
|
||||||
import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity';
|
import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import testMultipleChoiceExample from '../learning-objects/test-multiple-choice/test-multiple-choice-example';
|
import testMultipleChoiceExample from '../learning-objects/test-multiple-choice/test-multiple-choice-example';
|
||||||
import { dummyLearningObject } from '../learning-objects/dummy/dummy-learning-object-example';
|
import { dummyLearningObject } from '../learning-objects/dummy/dummy-learning-object-example';
|
||||||
import { createLearningPathNode, createLearningPathTransition } from './learning-path-utils';
|
import { createLearningPathNode, createLearningPathTransition } from './learning-path-utils';
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { AssertionError } from 'node:assert';
|
||||||
import { LearningObject } from '../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../src/entities/content/learning-object.entity';
|
||||||
import { LearningPath as LearningPathEntity } from '../../src/entities/content/learning-path.entity';
|
import { LearningPath as LearningPathEntity } from '../../src/entities/content/learning-path.entity';
|
||||||
import { expect } from 'vitest';
|
import { expect } from 'vitest';
|
||||||
import { FilteredLearningObject, LearningPath } from 'dwengo-1-common/src/interfaces/learning-content';
|
import {FilteredLearningObject, LearningPath} from "dwengo-1-common/src/interfaces/learning-content";
|
||||||
|
|
||||||
// Ignored properties because they belang for example to the class, not to the entity itself.
|
// Ignored properties because they belang for example to the class, not to the entity itself.
|
||||||
const IGNORE_PROPERTIES = ['parent'];
|
const IGNORE_PROPERTIES = ['parent'];
|
||||||
|
@ -12,13 +12,7 @@ const IGNORE_PROPERTIES = ['parent'];
|
||||||
* @param actual The actual entity retrieved from the database
|
* @param actual The actual entity retrieved from the database
|
||||||
* @param expected The (previously added) entity we would expect to retrieve
|
* @param expected The (previously added) entity we would expect to retrieve
|
||||||
*/
|
*/
|
||||||
export function expectToBeCorrectEntity<T extends object>(
|
export function expectToBeCorrectEntity<T extends object>(actual: { entity: T; name?: string }, expected: { entity: T; name?: string }): void {
|
||||||
actual: { entity: T; name?: string },
|
|
||||||
expected: {
|
|
||||||
entity: T;
|
|
||||||
name?: string;
|
|
||||||
}
|
|
||||||
): void {
|
|
||||||
if (!actual.name) {
|
if (!actual.name) {
|
||||||
actual.name = 'actual';
|
actual.name = 'actual';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { EntityManager } from '@mikro-orm/core';
|
import { EntityManager } from '@mikro-orm/core';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { Assignment } from '../../../src/entities/assignments/assignment.entity';
|
import { Assignment } from '../../../src/entities/assignments/assignment.entity';
|
||||||
import { Class } from '../../../src/entities/classes/class.entity';
|
import { Class } from '../../../src/entities/classes/class.entity';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
|
|
||||||
export function makeTestAssignemnts(em: EntityManager, classes: Class[]): Assignment[] {
|
export function makeTestAssignemnts(em: EntityManager, classes: Class[]): Assignment[] {
|
||||||
const assignment01 = em.create(Assignment, {
|
const assignment01 = em.create(Assignment, {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { EntityManager } from '@mikro-orm/core';
|
import { EntityManager } from '@mikro-orm/core';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { Submission } from '../../../src/entities/assignments/submission.entity';
|
import { Submission } from '../../../src/entities/assignments/submission.entity';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { Student } from '../../../src/entities/users/student.entity';
|
import { Student } from '../../../src/entities/users/student.entity';
|
||||||
import { Group } from '../../../src/entities/assignments/group.entity';
|
import { Group } from '../../../src/entities/assignments/group.entity';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { EntityManager } from '@mikro-orm/core';
|
import { EntityManager } from '@mikro-orm/core';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
import { LearningObject } from '../../../src/entities/content/learning-object.entity';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { DwengoContentType } from '../../../src/services/learning-objects/processing/content-type';
|
import { DwengoContentType } from '../../../src/services/learning-objects/processing/content-type';
|
||||||
import { ReturnValue } from '../../../src/entities/content/return-value.entity';
|
import { ReturnValue } from '../../../src/entities/content/return-value.entity';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { EntityManager } from '@mikro-orm/core';
|
import { EntityManager } from '@mikro-orm/core';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
import { LearningPath } from '../../../src/entities/content/learning-path.entity';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { LearningPathTransition } from '../../../src/entities/content/learning-path-transition.entity';
|
import { LearningPathTransition } from '../../../src/entities/content/learning-path-transition.entity';
|
||||||
import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity';
|
import { LearningPathNode } from '../../../src/entities/content/learning-path-node.entity';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { EntityManager } from '@mikro-orm/core';
|
import { EntityManager } from '@mikro-orm/core';
|
||||||
import { Language } from 'dwengo-1-common/src/util/language';
|
|
||||||
import { Question } from '../../../src/entities/questions/question.entity';
|
import { Question } from '../../../src/entities/questions/question.entity';
|
||||||
|
import { Language } from '../../../src/entities/content/language';
|
||||||
import { Student } from '../../../src/entities/users/student.entity';
|
import { Student } from '../../../src/entities/users/student.entity';
|
||||||
|
|
||||||
export function makeTestQuestions(em: EntityManager, students: Student[]): Question[] {
|
export function makeTestQuestions(em: EntityManager, students: Student[]): Question[] {
|
||||||
|
|
2
common/src/interfaces/learning-content.d.ts
vendored
2
common/src/interfaces/learning-content.d.ts
vendored
|
@ -1,4 +1,4 @@
|
||||||
import { Language } from '../util/language';
|
import { Language } from 'dwengo-1-backend/src/entities/content/language.js'
|
||||||
|
|
||||||
export interface Transition {
|
export interface Transition {
|
||||||
default: boolean;
|
default: boolean;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue