fix(BUG-095,BUG-097): add Support link to footer partial, expand docs.html footer
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 13m44s

This commit is contained in:
OpenClaw 2026-03-02 14:11:13 +01:00
parent cf1a589a47
commit 6290c3eb97
8 changed files with 52 additions and 0 deletions

View file

@ -120,6 +120,12 @@
</main>
<footer style="padding:24px 0;border-top:1px solid #1e2433;text-align:center;">
<div style="max-width:1200px;margin:0 auto;padding:0 24px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;">
<a href="/" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Home</a>
<a href="/docs" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Docs</a>
<a href="/examples" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Examples</a>
<a href="/status" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">API Status</a>
<a href="mailto:support@docfast.dev" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Support</a>
<a href="/#change-email" class="open-email-change" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Change Email</a>
<a href="/impressum" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Impressum</a>
<a href="/privacy" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Privacy Policy</a>
<a href="/terms" style="color:#7a8194;font-size:0.85rem;text-decoration:none;font-family:'Inter',system-ui,sans-serif;">Terms of Service</a>

View file

@ -408,6 +408,7 @@ $pdf = DocFast::html(view(<span class="str">'invoice'</span>)-&gt;render());
<a href="/docs">Docs</a>
<a href="/examples">Examples</a>
<a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a>

View file

@ -110,6 +110,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
<a href="/docs">Docs</a>
<a href="/examples">Examples</a>
<a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a>

View file

@ -6,6 +6,7 @@
<a href="/docs">Docs</a>
<a href="/examples">Examples</a>
<a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a>

View file

@ -192,6 +192,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
<a href="/docs">Docs</a>
<a href="/examples">Examples</a>
<a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a>

View file

@ -106,6 +106,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
<a href="/docs">Docs</a>
<a href="/examples">Examples</a>
<a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a>

View file

@ -264,6 +264,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
<a href="/docs">Docs</a>
<a href="/examples">Examples</a>
<a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a>

View file

@ -150,4 +150,44 @@ describe("App-level routes", () => {
expect(footer).toContain('href="/#change-email"');
});
});
describe("BUG-097: Footer Support link in partial", () => {
it("shared footer partial contains Support mailto link", async () => {
const fs = await import("fs");
const path = await import("path");
const footer = fs.readFileSync(
path.join(__dirname, "../../public/partials/_footer.html"),
"utf-8"
);
expect(footer).toContain('href="mailto:support@docfast.dev"');
expect(footer).toContain(">Support</a>");
});
});
describe("BUG-095: docs.html footer has all links", () => {
it("docs footer contains all expected links", async () => {
const fs = await import("fs");
const path = await import("path");
const docs = fs.readFileSync(
path.join(__dirname, "../../public/docs.html"),
"utf-8"
);
const expectedLinks = [
{ href: "/", text: "Home" },
{ href: "/docs", text: "Docs" },
{ href: "/examples", text: "Examples" },
{ href: "/status", text: "API Status" },
{ href: "mailto:support@docfast.dev", text: "Support" },
{ href: "/#change-email", text: "Change Email" },
{ href: "/impressum", text: "Impressum" },
{ href: "/privacy", text: "Privacy Policy" },
{ href: "/terms", text: "Terms of Service" },
];
for (const link of expectedLinks) {
expect(docs).toContain(`href="${link.href}"`);
expect(docs).toContain(`${link.text}</a>`);
}
expect(docs).toContain('class="open-email-change"');
});
});
});