feat(admin): link email detail to its public entry page
Add a "Public page" link next to the Rendered/Raw toggle in the admin email view, opening the standalone /entries/:feedId/:entryId render. Centralize the entry route shape in a pure entryPath() builder, used by both the admin link and the RSS/Atom/JSON feed generator. Co-Authored-By: Claude Opus 4.7 <[email protected]>
This commit is contained in:
1 parent
b3a979fd03
commit
2a3aeb8a18
5 files changed
+64
-1
No files matched your search
@@ -890,6 +890,39 @@ describe("Admin Routes", () => {
|
||||
expect(body).not.toContain("Attachments");
|
||||
});
|
||||
|
||||
it("links to the public entry page using the feed id and receivedAt", async () => {
|
||||
const authCookie = await loginAndGetCookie();
|
||||
const feedId = "detail-feed";
|
||||
await mockEnv.EMAIL_STORAGE.put(
|
||||
`feed:${feedId}:config`,
|
||||
JSON.stringify({
|
||||
title: "Detail Feed",
|
||||
mailbox_id: "detail.feed.10",
|
||||
language: "en",
|
||||
created_at: 1,
|
||||
}),
|
||||
);
|
||||
const emailKey = `feed:${feedId}:2`;
|
||||
await mockEnv.EMAIL_STORAGE.put(
|
||||
emailKey,
|
||||
JSON.stringify({
|
||||
subject: "Linkable",
|
||||
from: "[email protected]",
|
||||
content: "<p>hello</p>",
|
||||
receivedAt: 2,
|
||||
headers: {},
|
||||
}),
|
||||
);
|
||||
|
||||
const res = await request(`/admin/emails/${emailKey}`, {
|
||||
headers: { Cookie: authCookie },
|
||||
});
|
||||
expect(res.status).toBe(200);
|
||||
const body = await res.text();
|
||||
|
||||
expect(body).toContain(`href="/entries/${feedId}/2"`);
|
||||
});
|
||||
|
||||
it("form-based bulk-delete also removes R2 attachments", async () => {
|
||||
const r2Env = createMockEnv({ withR2: true }) as unknown as Env;
|
||||
const bucket = r2Env.ATTACHMENT_BUCKET as unknown as {
|
||||
|
||||
Reference in new issue
Block a user