34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import "../../plug-api/lib/syscall_mock.ts";
|
|
import { parseMarkdown } from "$common/markdown_parser/parser.ts";
|
|
import { extractItems } from "./item.ts";
|
|
import { assertEquals } from "@std/assert";
|
|
|
|
const itemsMd = `
|
|
* Item 1 #tag1 #tag2 [age: 100]
|
|
* Item 1.1 #tag3 #tag1
|
|
* Item 1.1.1
|
|
`;
|
|
|
|
Deno.test("Test item extraction", async () => {
|
|
const t = parseMarkdown(itemsMd);
|
|
const items = await extractItems("test", t);
|
|
|
|
assertEquals(items[0].name, "Item 1");
|
|
assertEquals(items[0].age, 100);
|
|
assertEquals(items[0].page, "test");
|
|
assertEquals(items[0].parent, undefined);
|
|
assertEquals(items[0].text, "Item 1 #tag1 #tag2 [age: 100]");
|
|
assertEquals(new Set(items[0].tags), new Set(["tag1", "tag2"]));
|
|
assertEquals(new Set(items[0].itags), new Set(["item", "tag1", "tag2"]));
|
|
|
|
assertEquals(items[1].name, "Item 1.1");
|
|
assertEquals(new Set(items[1].tags), new Set(["tag3", "tag1"]));
|
|
assertEquals(
|
|
new Set(items[1].itags),
|
|
new Set(["tag3", "tag2", "tag1", "item"]),
|
|
);
|
|
assertEquals(items[1].parent, items[0].ref);
|
|
|
|
assertEquals(items[2].parent, items[1].ref);
|
|
});
|