fix(BUG-092): add Change Email link to footer on landing and sub-pages
Some checks failed
Build & Deploy to Staging / Build & Deploy to Staging (push) Has been cancelled

This commit is contained in:
Hoid 2026-03-01 20:03:55 +01:00
parent bb0a17a6f3
commit 82946ffcf0
9 changed files with 29 additions and 0 deletions

View file

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

View file

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

View file

@ -586,6 +586,7 @@ html, body {
<a href="/examples">Examples</a> <a href="/examples">Examples</a>
<a href="/status">API Status</a> <a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</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="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a> <a href="/privacy">Privacy Policy</a>
<a href="/terms">Terms of Service</a> <a href="/terms">Terms of Service</a>

View file

@ -6,6 +6,7 @@
<a href="/docs">Docs</a> <a href="/docs">Docs</a>
<a href="/examples">Examples</a> <a href="/examples">Examples</a>
<a href="/status">API Status</a> <a href="/status">API Status</a>
<a href="/#change-email" class="open-email-change">Change Email</a>
<a href="/impressum">Impressum</a> <a href="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a> <a href="/privacy">Privacy Policy</a>
<a href="/terms">Terms of Service</a> <a href="/terms">Terms of Service</a>

View file

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

View file

@ -586,6 +586,7 @@ html, body {
<a href="/examples">Examples</a> <a href="/examples">Examples</a>
<a href="/status">API Status</a> <a href="/status">API Status</a>
<a href="mailto:support@docfast.dev">Support</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="/impressum">Impressum</a>
<a href="/privacy">Privacy Policy</a> <a href="/privacy">Privacy Policy</a>
<a href="/terms">Terms of Service</a> <a href="/terms">Terms of Service</a>

View file

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

View file

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

View file

@ -129,4 +129,25 @@ describe("App-level routes", () => {
expect(res.headers["permissions-policy"]).toContain("camera=()"); expect(res.headers["permissions-policy"]).toContain("camera=()");
}); });
}); });
describe("BUG-092: Footer Change Email link", () => {
it("landing page footer contains Change Email link", async () => {
const res = await request(app).get("/");
expect(res.status).toBe(200);
const html = res.text;
expect(html).toContain('class="open-email-change"');
expect(html).toMatch(/footer-links[\s\S]*open-email-change[\s\S]*Change Email/);
});
it("sub-page footer partial contains Change Email 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('class="open-email-change"');
expect(footer).toContain('href="/#change-email"');
});
});
}); });