diff --git a/public/examples.html b/public/examples.html
index 595559c..fb5a2a7 100644
--- a/public/examples.html
+++ b/public/examples.html
@@ -408,6 +408,7 @@ $pdf = DocFast::html(view('invoice')->render());
Docs
Examples
API Status
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/impressum.html b/public/impressum.html
index 310ab15..d76f919 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
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/index.html b/public/index.html
index 9f776a0..629c9d3 100644
--- a/public/index.html
+++ b/public/index.html
@@ -586,6 +586,7 @@ html, body {
Examples
API Status
Support
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/partials/_footer.html b/public/partials/_footer.html
index 9585632..b64c902 100644
--- a/public/partials/_footer.html
+++ b/public/partials/_footer.html
@@ -6,6 +6,7 @@
Docs
Examples
API Status
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/privacy.html b/public/privacy.html
index ba5d1ee..47caaed 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
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/src/index.html b/public/src/index.html
index 9f776a0..629c9d3 100644
--- a/public/src/index.html
+++ b/public/src/index.html
@@ -586,6 +586,7 @@ html, body {
Examples
API Status
Support
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/status.html b/public/status.html
index 996f100..1a79802 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
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/public/terms.html b/public/terms.html
index f240aff..203b61e 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
+ Change Email
Impressum
Privacy Policy
Terms of Service
diff --git a/src/__tests__/app-routes.test.ts b/src/__tests__/app-routes.test.ts
index 27b7c96..c551053 100644
--- a/src/__tests__/app-routes.test.ts
+++ b/src/__tests__/app-routes.test.ts
@@ -129,4 +129,25 @@ describe("App-level routes", () => {
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"');
+ });
+ });
});