





















@@ -414,6 +414,98 @@ describe("dreaming view", () => {
414414setDreamSubTab("scene");
415415});
416416417+it("keeps non-report memory palace card clicks on details", () => {
418+setDreamSubTab("diary");
419+setDreamDiarySubTab("palace");
420+const container = document.createElement("div");
421+let props: DreamingProps;
422+const rerender = () => render(renderDreaming(props), container);
423+props = buildProps({ onRequestUpdate: rerender });
424+rerender();
425+426+const card = expectElement(container, "[data-palace-page='syntheses/travel-system.md']");
427+card.dispatchEvent(new MouseEvent("click", { bubbles: true }));
428+429+expect(textItems(container, ".dreams-diary__insight-list strong")).toContain("Page details");
430+setDreamDiarySubTab("dreams");
431+setDreamSubTab("scene");
432+});
433+434+it("opens report memory palace cards on primary click", async () => {
435+setDreamSubTab("diary");
436+setDreamDiarySubTab("palace");
437+const onOpenWikiPage = vi.fn().mockResolvedValue({
438+title: "Weekly stock report",
439+path: "reports/weekly-stock.md",
440+content: "# Weekly stock report\n\nSummary content.",
441+totalLines: 2,
442+truncated: false,
443+});
444+const container = document.createElement("div");
445+let props: DreamingProps;
446+const rerender = () => render(renderDreaming(props), container);
447+props = buildProps({
448+ onOpenWikiPage,
449+onRequestUpdate: rerender,
450+wikiMemoryPalace: {
451+totalItems: 1,
452+totalClaims: 0,
453+totalQuestions: 0,
454+totalContradictions: 0,
455+clusters: [
456+{
457+key: "report",
458+label: "Reports",
459+itemCount: 1,
460+claimCount: 0,
461+questionCount: 0,
462+contradictionCount: 0,
463+items: [
464+{
465+pagePath: "reports/weekly-stock.md",
466+title: "Weekly stock report",
467+kind: "report",
468+claimCount: 0,
469+questionCount: 0,
470+contradictionCount: 0,
471+claims: [],
472+questions: [],
473+contradictions: [],
474+snippet: "Weekly stock summary.",
475+updatedAt: "2026-04-12T10:00:00.000Z",
476+},
477+],
478+},
479+],
480+},
481+});
482+rerender();
483+484+const card = expectElement(container, "[data-palace-page='reports/weekly-stock.md']");
485+card.dispatchEvent(new MouseEvent("click", { bubbles: true }));
486+await Promise.resolve();
487+await Promise.resolve();
488+489+expect(onOpenWikiPage).toHaveBeenCalledWith("reports/weekly-stock.md");
490+expect(textItems(container, ".dreams-diary__insight-list strong")).not.toContain(
491+"Page details",
492+);
493+expect(compactText(container.querySelector(".dreams-diary__preview-title"))).toBe(
494+"Weekly stock report",
495+);
496+expect(compactText(container.querySelector(".dreams-diary__preview-body"))).toBe(
497+"# Weekly stock report Summary content.",
498+);
499+500+const closePreviewButton = container.querySelector<HTMLButtonElement>(
501+".dreams-diary__preview-header .btn",
502+);
503+expect(closePreviewButton).toBeInstanceOf(HTMLButtonElement);
504+closePreviewButton!.dispatchEvent(new MouseEvent("click", { bubbles: true }));
505+setDreamDiarySubTab("dreams");
506+setDreamSubTab("scene");
507+});
508+417509it("shows a memory-wiki enablement CTA when wiki subtabs are selected but the plugin is disabled", () => {
418510setDreamSubTab("diary");
419511setDreamDiarySubTab("palace");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。