mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 15:18:32 -06:00
169 lines
5.4 KiB
TypeScript
169 lines
5.4 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { LocalAssignment } from "../assignment/localAssignment";
|
|
import { AssignmentSubmissionType } from "../assignment/assignmentSubmissionType";
|
|
import { assignmentMarkdownSerializer } from "../assignment/utils/assignmentMarkdownSerializer";
|
|
import { assignmentMarkdownParser } from "../assignment/utils/assignmentMarkdownParser";
|
|
|
|
describe("AssignmentMarkdownTests", () => {
|
|
it("can parse assignment settings", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "here is the description",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: "08/21/2023 23:59:00",
|
|
submissionTypes: [AssignmentSubmissionType.ONLINE_UPLOAD],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [
|
|
{ points: 4, label: "do task 1" },
|
|
{ points: 2, label: "do task 2" },
|
|
],
|
|
allowedFileUploadExtensions: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment = assignmentMarkdownParser.parseMarkdown(
|
|
assignmentMarkdown,
|
|
name
|
|
);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
|
|
it("assignment with empty rubric can be parsed", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "here is the description",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: "08/21/2023 23:59:00",
|
|
submissionTypes: [AssignmentSubmissionType.ONLINE_UPLOAD],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [],
|
|
allowedFileUploadExtensions: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment =
|
|
assignmentMarkdownParser.parseMarkdown(assignmentMarkdown, name);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
|
|
it("assignment with empty submission types can be parsed", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "here is the description",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: "08/21/2023 23:59:00",
|
|
submissionTypes: [],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [
|
|
{ points: 4, label: "do task 1" },
|
|
{ points: 2, label: "do task 2" },
|
|
],
|
|
allowedFileUploadExtensions: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment =
|
|
assignmentMarkdownParser.parseMarkdown(assignmentMarkdown, name);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
|
|
it("assignment without lockAt date can be parsed", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "here is the description",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: undefined,
|
|
submissionTypes: [],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [
|
|
{ points: 4, label: "do task 1" },
|
|
{ points: 2, label: "do task 2" },
|
|
],
|
|
allowedFileUploadExtensions: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment =
|
|
assignmentMarkdownParser.parseMarkdown(assignmentMarkdown, name);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
|
|
it("assignment without description can be parsed", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: "08/21/2023 23:59:00",
|
|
submissionTypes: [],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [
|
|
{ points: 4, label: "do task 1" },
|
|
{ points: 2, label: "do task 2" },
|
|
],
|
|
allowedFileUploadExtensions: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment =
|
|
assignmentMarkdownParser.parseMarkdown(assignmentMarkdown, name);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
|
|
it("assignments can have three dashes", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "test assignment\n---\nsomestuff",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: "08/21/2023 23:59:00",
|
|
submissionTypes: [],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [],
|
|
allowedFileUploadExtensions: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment =
|
|
assignmentMarkdownParser.parseMarkdown(assignmentMarkdown, name);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
|
|
it("assignments can restrict upload types", () => {
|
|
const name = "test assignment";
|
|
const assignment: LocalAssignment = {
|
|
name,
|
|
description: "here is the description",
|
|
dueAt: "08/21/2023 23:59:00",
|
|
lockAt: "08/21/2023 23:59:00",
|
|
submissionTypes: [AssignmentSubmissionType.ONLINE_UPLOAD],
|
|
allowedFileUploadExtensions: ["pdf", "txt"],
|
|
localAssignmentGroupName: "Final Project",
|
|
rubric: [],
|
|
};
|
|
|
|
const assignmentMarkdown =
|
|
assignmentMarkdownSerializer.toMarkdown(assignment);
|
|
const parsedAssignment =
|
|
assignmentMarkdownParser.parseMarkdown(assignmentMarkdown, name);
|
|
|
|
expect(parsedAssignment).toEqual(assignment);
|
|
});
|
|
});
|