#!/usr/bin/env node "use strict"; const assert = require("node:assert"); const fs = require("node:fs"); const path = require("node:path"); const ROOT = process.cwd(); const OUTPUT_DIR = path.join(ROOT, "tmp", "task790-weknora-kb-page-experience-static-smoke"); const RESULT_PATH = path.join(OUTPUT_DIR, "result.json"); const SETTINGS_RUNTIME = "rust/crates/mnote-web/browser/sidebar-page-settings-runtime.js"; const MAIN_CSS = "rust/crates/mnote-web/src/ssr/styles/components/main.css"; function read(relativePath) { return fs.readFileSync(path.join(ROOT, relativePath), "utf8"); } function assertContains(content, needle, label) { assert(content.includes(needle), `${label} 缺少: ${needle}`); } function main() { fs.mkdirSync(OUTPUT_DIR, { recursive: true }); const runtime = read(SETTINGS_RUNTIME); const css = read(MAIN_CSS); for (const required of [ "data-mnote-weknora-page-replacement=\"true\"", "data-testid=\"mnote-weknora-kb-list-pane\"", "data-testid=\"mnote-weknora-kb-card-list\"", "data-testid=\"mnote-weknora-kb-breadcrumb\"", "data-testid=\"mnote-weknora-kb-detail-pane\"", "data-testid=\"mnote-weknora-tab-documents\"", "data-testid=\"mnote-weknora-tab-wiki\"", "data-testid=\"mnote-weknora-tab-graph\"", "data-testid=\"mnote-weknora-doc-source-sidebar\"", "data-testid=\"mnote-weknora-doc-source-tags\"", "data-testid=\"mnote-weknora-doc-tags\"", "data-testid=\"mnote-weknora-doc-filter-input\"", "data-testid=\"mnote-weknora-view-switch\"", "data-knowledge-rag-view=\"grid\"", "添加文件夹", "添加文档", "data-weknora-document-list-view=\"true\"", "data-knowledge-rag-processing-status", "data-knowledge-rag-action=\"open-source-reference\"", "data-knowledge-rag-open-reference-mode=\"source-registry-reference\"", "data-testid=\"mnote-weknora-wiki-panel\"", "data-testid=\"mnote-weknora-graph-panel\"", "MNote source registry / WeKnora KB chunk index", ]) { assertContains(runtime, required, SETTINGS_RUNTIME); } for (const required of [ ".mnote-weknora-kb-breadcrumb", ".mnote-weknora-doc-layout", ".mnote-weknora-doc-sidebar", ".mnote-weknora-doc-source-tags", ".mnote-weknora-view-switch", ".mnote-weknora-doc-table[data-weknora-document-view=\"grid\"]", ".mnote-weknora-placeholder-panel", ".mnote-weknora-source-aux", ]) { assertContains(css, required, MAIN_CSS); } const result = { ok: true, checkedFiles: [SETTINGS_RUNTIME, MAIN_CSS], assertions: { kbListPageVisible: true, kbDetailBreadcrumbVisible: true, documentsWikiGraphTabsVisible: true, sourceAndTagSidebarVisible: true, searchAndFilterVisible: true, addDocumentAndFolderEntrypointsVisible: true, gridListSwitchVisible: true, processingStatusVisible: true, sourceRowsKeepCitationOpenReference: true, mnoteWeKnoraBoundaryPreserved: true, }, }; fs.writeFileSync(RESULT_PATH, `${JSON.stringify(result, null, 2)}\n`, "utf8"); console.log(JSON.stringify(result, null, 2)); } main();