deterministic lecture stringification

This commit is contained in:
2024-11-01 16:32:19 -06:00
parent 859c9033f0
commit dcecf3172e
4 changed files with 70 additions and 18 deletions

View File

@@ -0,0 +1,40 @@
import { describe, expect, it } from "vitest";
import {
lectureToString,
parseLecture,
} from "../fileStorage/lectureFileStorageService";
import { Lecture } from "@/models/local/lecture";
describe("can parse and stringify lectures", () => {
it("can parse lecture", () => {
const rawLecture = `
Name: some name
Date: 6/22/2024
---
this is the lecture
content`;
const parsed = parseLecture(rawLecture);
expect(parsed.name).toBe("some name");
expect(parsed.date).toBe("6/22/2024");
expect(parsed.content).toBe(`this is the lecture
content`);
});
it("parsing and stringification is deterministic", () => {
const lecture: Lecture = {
name: "test lecture",
date: "06/*22/2024",
content: `some content
- with
- a
- list`,
};
const rawLecture = lectureToString(lecture);
const parsedLecture = parseLecture(rawLecture);
expect(parsedLecture).toStrictEqual(lecture);
});
});