From 057b8d12bfd6071c2ca2c848fd47dc5108e2a192 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Mon, 26 Oct 2026 18:56:35 +0000 Subject: [PATCH 1/2] lint: sort the pfs-footer import Co-Authored-By: Claude Opus 5.5 --- apps/web/src/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/app.js b/apps/web/src/app.js index 7aa4b80..45e787e 100644 --- a/apps/web/src/app.js +++ b/apps/web/src/app.js @@ -1,7 +1,7 @@ import { Hono } from 'hono'; import { gate } from './lib/gate.js'; -import { FOOTER_SCRIPT_SRC } from './lib/pfs-footer.js'; import { Denied, loadUser, render, wantsJson } from './lib/http.js'; +import { FOOTER_SCRIPT_SRC } from './lib/pfs-footer.js'; import { registerApi } from './routes/api.js'; import { registerAuth } from './routes/auth.js'; import { registerCredits, rememberRef } from './routes/credits.js'; From bfdb3d182f1fdc29ba2ca335f112436ed0911171 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Mon, 26 Oct 2026 18:57:59 +0000 Subject: [PATCH 2/2] test: count the signup email field outside the footer newsletter form Co-Authored-By: Claude Opus 5.5 --- test/api.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/api.test.js b/test/api.test.js index a30e805..ce0b2b4 100644 --- a/test/api.test.js +++ b/test/api.test.js @@ -381,7 +381,9 @@ if (!url) { ).text(); for (const name of ['first_name', 'last_name', 'company_domain', 'job_title', 'linkedin_url']) expect(signup).toContain(`name="${name}"`); - expect(signup.match(/name="email"/g)?.length).toBe(1); + // The shared footer's newsletter form (@profullstack/footer 0.3+) has its own email field. + const signupForm = signup.slice(0, signup.indexOf('class="pfs-footer')); + expect(signupForm.match(/name="email"/g)?.length).toBe(1); expect(signup).toContain('/vendor-profile.js'); const login = await ( await app.request('/login', { headers: { accept: 'text/html' } })