// Simple test to verify the indexer works
import { Indexer } from "./indexer.js";
console.log("Testing WikiMCP Indexer...\n");
const indexer = new Indexer();
// Test reindex
console.log("=== Test: Reindex ===");
const count = indexer.reindex();
console.log(`Indexed ${count} pages\n`);
// Test list
console.log("=== Test: List Pages ===");
const pages = indexer.listPages();
console.log("All pages:");
pages.forEach((p) => console.log(` - ${p.path} (${p.type})`));
console.log();
// Test list with filter
console.log("=== Test: List Characters ===");
const characters = indexer.listPages({ type: "characters" });
console.log("Character pages:");
characters.forEach((p) => console.log(` - ${p.path}: ${p.title}`));
console.log();
// Test get_page
console.log("=== Test: Get Page ===");
const kazalt = indexer.getPage("/characters/kazalt");
if (kazalt) {
console.log(`Title: ${kazalt.title}`);
console.log(`Type: ${kazalt.type}`);
console.log(`Tags: ${kazalt.tags.join(", ")}`);
console.log(`Body preview: ${kazalt.body_md.substring(0, 100)}...`);
} else {
console.log("ERROR: Page not found!");
}
console.log();
// Test search
console.log("=== Test: Search 'Aetherwood' ===");
const results = indexer.search("Aetherwood");
console.log(`Found ${results.length} results:`);
results.forEach((r) => {
console.log(` - ${r.path} (score: ${r.score.toFixed(2)})`);
console.log(` Snippet: ${r.snippet.substring(0, 80)}...`);
});
console.log();
// Test quote
console.log("=== Test: Quote Lines 1-5 from Kazalt ===");
const quote = indexer.quote("/characters/kazalt", 1, 5);
if (quote) {
console.log("Quote:");
console.log(quote.text);
console.log("\nCitation:", JSON.stringify(quote.citation));
} else {
console.log("ERROR: Quote failed!");
}
indexer.close();
console.log("\n=== All tests complete ===");