Link contextual guidance to Docs
This commit is contained in:
@@ -28,6 +28,7 @@ const localizedMarkup = renderToStaticMarkup(
|
||||
target: "i18n:target",
|
||||
technicalDetails: "i18n:technical-details"
|
||||
}}
|
||||
documentation={{ topicId: "docs.pattern.blocked-action" }}
|
||||
reason={{
|
||||
summary: "i18n:summary",
|
||||
requiredAction: "i18n:action-copy",
|
||||
@@ -47,3 +48,7 @@ for (const token of [
|
||||
assert(localizedMarkup.includes(token), `${token} is rendered through the shared blocker contract`);
|
||||
}
|
||||
assert(localizedMarkup.includes("tone-danger"), "the consequence tone remains explicit");
|
||||
assert(
|
||||
localizedMarkup.includes("topic=docs.pattern.blocked-action"),
|
||||
"a blocker can link to a stable configured-system documentation topic"
|
||||
);
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
function assert(condition: unknown, message = "assertion failed"): void {
|
||||
if (!condition) throw new Error(message);
|
||||
}
|
||||
|
||||
import { renderToStaticMarkup } from "react-dom/server";
|
||||
import DocumentationHelpLink, { DocumentationHelpProvider } from "../src/components/help/DocumentationHelpLink";
|
||||
import FieldLabel from "../src/components/help/FieldLabel";
|
||||
import { documentationHelpHref } from "../src/components/help/documentationHelp";
|
||||
|
||||
assert(
|
||||
documentationHelpHref({ topicId: "campaigns.workflow.complete-review" }) ===
|
||||
"/docs?type=user&topic=campaigns.workflow.complete-review",
|
||||
"topic references use the stable Help Center query contract"
|
||||
);
|
||||
assert(
|
||||
documentationHelpHref({ contextId: "campaign.review-send", documentationType: "admin" }) ===
|
||||
"/docs?type=admin&context=campaign.review-send",
|
||||
"context references retain the requested audience projection"
|
||||
);
|
||||
assert(
|
||||
documentationHelpHref({ topicId: "topic", anchorId: "details" }) ===
|
||||
"/docs?type=user&topic=topic#details",
|
||||
"optional stable anchors are preserved"
|
||||
);
|
||||
assert(documentationHelpHref({}) === null, "an empty reference does not create a misleading link");
|
||||
|
||||
const hostedMarkup = renderToStaticMarkup(
|
||||
<DocumentationHelpLink reference={{ contextId: "files.list" }} />
|
||||
);
|
||||
assert(hostedMarkup.includes("https://govoplan.add-ideas.de/?type=user&context=files.list"), "the link falls back to hosted documentation when Docs is absent");
|
||||
assert(hostedMarkup.includes('target="_blank"'), "hosted documentation is clearly external");
|
||||
|
||||
const localMarkup = renderToStaticMarkup(
|
||||
<DocumentationHelpProvider localDocsAvailable>
|
||||
<DocumentationHelpLink reference={{ topicId: "docs.pattern.field-help" }} />
|
||||
</DocumentationHelpProvider>
|
||||
);
|
||||
assert(localMarkup.includes("/docs?type=user&topic=docs.pattern.field-help"), "an enabled Docs module uses the local Help Center");
|
||||
assert(!localMarkup.includes('target="_blank"'), "local documentation stays in the application");
|
||||
|
||||
const fieldMarkup = renderToStaticMarkup(
|
||||
<DocumentationHelpProvider localDocsAvailable>
|
||||
<FieldLabel documentation={{ topicId: "access.reference.admin-access-fields" }}>Role</FieldLabel>
|
||||
</DocumentationHelpProvider>
|
||||
);
|
||||
assert(fieldMarkup.includes("topic=access.reference.admin-access-fields"), "field labels can link to stable reference topics");
|
||||
Reference in New Issue
Block a user