fix tests

This commit is contained in:
Jacky Zhao 2025-03-08 20:48:03 -08:00
parent 08717394ff
commit 51790b3926
3 changed files with 14 additions and 11 deletions

View File

@ -16,7 +16,7 @@
"docs": "npx quartz build --serve -d docs",
"check": "tsc --noEmit && npx prettier . --check",
"format": "npx prettier . --write",
"test": "for f in $(find ./quartz -name '*.test.ts'); do tsx $f; done",
"test": "tsx --test \"./quartz/**/*.test.ts\"",
"profile": "0x -D prof ./quartz/bootstrap-cli.mjs build --concurrency=1"
},
"engines": {

View File

@ -127,19 +127,20 @@ describe("FileTrie", () => {
describe("entries", () => {
test("should return all entries", () => {
const data1 = { title: "Test1", slug: "test1" }
const data2 = { title: "Test2", slug: "test2" }
const data2 = { title: "Test2", slug: "a/b/test2" }
trie.add(data1)
trie.add(data2)
const entries = trie.entries()
assert.strictEqual(entries.length, 3)
assert.deepStrictEqual(
entries.map(([path, node]) => [path, node.data]),
[
["", trie.data],
["test1/index", data1],
["test2/index", data2],
["test1", data1],
["a/index", null],
["a/b/index", null],
["a/b/test2", data2],
],
)
})
@ -165,7 +166,7 @@ describe("FileTrie", () => {
trie.add(data3)
const paths = trie.getFolderPaths()
assert.deepStrictEqual(paths, ["folder", "folder/subfolder", "abc"])
assert.deepStrictEqual(paths, ["folder/index", "folder/subfolder/index", "abc/index"])
})
})

View File

@ -103,12 +103,14 @@ export class FileTrieNode<T extends FileTrieData = ContentDetails> {
currentPath: string,
): [FullSlug, FileTrieNode<T>][] => {
const segments = [currentPath, node.slugSegment]
if (node.isFolder && node.depth > 0) {
segments.push("index")
}
const fullPath = joinSegments(...segments) as FullSlug
const result: [FullSlug, FileTrieNode<T>][] = [[fullPath, node]]
const indexQualifiedPath = node.isFolder && node.depth > 0 ?
joinSegments(fullPath, "index") as FullSlug :
fullPath
const result: [FullSlug, FileTrieNode<T>][] = [[indexQualifiedPath, node]]
return result.concat(...node.children.map((child) => traverse(child, fullPath)))
}