diff --git a/e2e/tests/core.spec.js b/e2e/tests/core.spec.js index 020e34f..e14ff54 100644 --- a/e2e/tests/core.spec.js +++ b/e2e/tests/core.spec.js @@ -76,6 +76,19 @@ test("core PKI workflow", async ({ page }) => { await page.locator(".nav-tabs").getByRole("tab", { name: "Extensions", exact: true }).click(); await expect(page.getByText("serverAuth", { exact: false })).toBeVisible(); + // Certificate list links to the detail route in both views. + const certDetailUrl = /\/vaults\/[^/]+\/certificates\/[^/]+$/; + await page.goto(`${vaultUrl}/certificates`); + await page.getByRole("link", { name: leafName, exact: true }).click(); + await expect(page).toHaveURL(certDetailUrl); + await expect(page.getByRole("heading", { name: leafName })).toBeVisible(); + + await page.goto(`${vaultUrl}/certificates`); + await page.getByRole("button", { name: "Plain view" }).click(); + await page.getByRole("link", { name: leafName, exact: true }).click(); + await expect(page).toHaveURL(certDetailUrl); + await expect(page.getByRole("heading", { name: leafName })).toBeVisible(); + // Search await page.goto(`${vaultUrl}/search`); await page.locator("input[placeholder='Search…']").fill(leafName); diff --git a/web/src/pages/certificates.rs b/web/src/pages/certificates.rs index 2fa0c83..267d7fd 100644 --- a/web/src/pages/certificates.rs +++ b/web/src/pages/certificates.rs @@ -234,6 +234,10 @@ pub fn CertificatesPage(vault_id: String) -> View { } } +fn certificate_href(vault_id: &str, cert_id: &str) -> String { + format!("/vaults/{}/certificates/{}", escape(vault_id), escape(cert_id)) +} + fn flat_html(rows: &[CertificateSummary], vault_id: &str, selected: &[String]) -> String { if rows.is_empty() { return "
No certificates match.
".to_string(); @@ -242,10 +246,9 @@ fn flat_html(rows: &[CertificateSummary], vault_id: &str, selected: &[String]) - for cert in rows { let (badge_class, badge_label) = status_badge(cert); body.push_str(&format!( - "