+
Home
+
Docs
+
Examples
+
API Status
+
Support
+
Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/examples.html b/public/examples.html
index fb5a2a7..2445c09 100644
--- a/public/examples.html
+++ b/public/examples.html
@@ -408,6 +408,7 @@ $pdf = DocFast::html(view(
'invoice')->render());
Docs
Examples
API Status
+
Support
Change Email
Impressum
Privacy Policy
diff --git a/public/impressum.html b/public/impressum.html
index d76f919..beb51d6 100644
--- a/public/impressum.html
+++ b/public/impressum.html
@@ -110,6 +110,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
Docs
Examples
API Status
+
Support
Change Email
Impressum
Privacy Policy
diff --git a/public/partials/_footer.html b/public/partials/_footer.html
index b64c902..84adc84 100644
--- a/public/partials/_footer.html
+++ b/public/partials/_footer.html
@@ -6,6 +6,7 @@
Docs
Examples
API Status
+
Support
Change Email
Impressum
Privacy Policy
diff --git a/public/privacy.html b/public/privacy.html
index 47caaed..063eb5e 100644
--- a/public/privacy.html
+++ b/public/privacy.html
@@ -192,6 +192,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
Docs
Examples
API Status
+
Support
Change Email
Impressum
Privacy Policy
diff --git a/public/status.html b/public/status.html
index 1a79802..5915eeb 100644
--- a/public/status.html
+++ b/public/status.html
@@ -106,6 +106,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
Docs
Examples
API Status
+
Support
Change Email
Impressum
Privacy Policy
diff --git a/public/terms.html b/public/terms.html
index 203b61e..5c93f9e 100644
--- a/public/terms.html
+++ b/public/terms.html
@@ -264,6 +264,7 @@ footer .container { display: flex; justify-content: space-between; align-items:
Docs
Examples
API Status
+
Support
Change Email
Impressum
Privacy Policy
diff --git a/src/__tests__/app-routes.test.ts b/src/__tests__/app-routes.test.ts
index c551053..b4875fd 100644
--- a/src/__tests__/app-routes.test.ts
+++ b/src/__tests__/app-routes.test.ts
@@ -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");
+ });
+ });
+
+ 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}`);
+ }
+ expect(docs).toContain('class="open-email-change"');
+ });
+ });
});