diff --git a/composable-os/src/i18n/english-portal-builder.test.tsx b/composable-os/src/i18n/english-portal-builder.test.tsx index a19bf84..8e4c628 100644 --- a/composable-os/src/i18n/english-portal-builder.test.tsx +++ b/composable-os/src/i18n/english-portal-builder.test.tsx @@ -71,7 +71,7 @@ describe("PortalBuilder sessions in English", () => { expect(screen.getByRole("tab", { name: "Page builder" })).toBeInTheDocument(); expect(await screen.findByText("Ana Torres")).toBeInTheDocument(); expect(screen.getByText("Pending")).toBeInTheDocument(); - expect(screen.getByText(`ana@sol.co · expires ${formatDate("2026-10-05T12:00:00Z", "en", "short")}`)).toBeInTheDocument(); + expect(screen.getByText(`ana@sol.co · expires ${formatDate("2026-10-05T12:00:00Z", "en", "medium")}`)).toBeInTheDocument(); expect(screen.queryByText("Pendiente")).not.toBeInTheDocument(); }); diff --git a/composable-os/src/i18n/english-workflows.test.tsx b/composable-os/src/i18n/english-workflows.test.tsx index b7c9223..cd63d7d 100644 --- a/composable-os/src/i18n/english-workflows.test.tsx +++ b/composable-os/src/i18n/english-workflows.test.tsx @@ -100,6 +100,15 @@ describe("Workflows in English", () => { expect(screen.getByText(formatDate("2026-09-30T12:00:00Z", "en", "short"))).toBeInTheDocument(); }); + it("names the send-email action instead of showing its code", async () => { + svc.getAll.mockResolvedValue([workflow({ actions: [{ type: "send_email", config: {} }] })]); + renderPage(await english()); + await screen.findByText("Lead intake"); + + expect(screen.getByText("send email")).toBeInTheDocument(); + expect(screen.queryByText("send_email")).not.toBeInTheDocument(); + }); + it("explains an empty list and offers to create the first workflow", async () => { svc.getAll.mockResolvedValue([]); renderPage(await english()); diff --git a/composable-os/src/locales/en/workflows.json b/composable-os/src/locales/en/workflows.json index 89c07fe..4c4280a 100644 --- a/composable-os/src/locales/en/workflows.json +++ b/composable-os/src/locales/en/workflows.json @@ -53,6 +53,7 @@ "event": "event" }, "actionType": { - "log": "log" + "log": "log", + "send_email": "send email" } } diff --git a/composable-os/src/locales/es/workflows.json b/composable-os/src/locales/es/workflows.json index fff57fd..efb5f17 100644 --- a/composable-os/src/locales/es/workflows.json +++ b/composable-os/src/locales/es/workflows.json @@ -53,6 +53,7 @@ "event": "evento" }, "actionType": { - "log": "log" + "log": "log", + "send_email": "enviar correo" } } diff --git a/composable-os/src/pages/PortalBuilder.test.tsx b/composable-os/src/pages/PortalBuilder.test.tsx index eff37a3..fc602f3 100644 --- a/composable-os/src/pages/PortalBuilder.test.tsx +++ b/composable-os/src/pages/PortalBuilder.test.tsx @@ -61,7 +61,7 @@ describe("PortalBuilder: sesiones, en español", () => { expect(screen.getByRole("tab", { name: "Constructor de páginas" })).toBeInTheDocument(); expect(await screen.findByText("Ana Torres")).toBeInTheDocument(); expect(screen.getByText("Pendiente")).toBeInTheDocument(); - expect(screen.getByText(`ana@sol.co · expira ${formatDate("2026-10-05T12:00:00Z", "es", "short")}`)).toBeInTheDocument(); + expect(screen.getByText(`ana@sol.co · expira ${formatDate("2026-10-05T12:00:00Z", "es", "medium")}`)).toBeInTheDocument(); }); it("agrees the session count in the singular and the plural", async () => { diff --git a/composable-os/src/pages/PortalBuilder.tsx b/composable-os/src/pages/PortalBuilder.tsx index cf0e3bc..516b720 100644 --- a/composable-os/src/pages/PortalBuilder.tsx +++ b/composable-os/src/pages/PortalBuilder.tsx @@ -1167,7 +1167,7 @@ function PortalSessions() { {statusLabel(s.action, s.accessed_at)}

- {t("portalBuilder:sessions.expires", { email: s.client_email ?? t("portalBuilder:sessions.noEmail"), date: formatDate(s.expires_at, "short") })} + {t("portalBuilder:sessions.expires", { email: s.client_email ?? t("portalBuilder:sessions.noEmail"), date: formatDate(s.expires_at, "medium") })}

diff --git a/composable-os/src/pages/QuoteDetail.tsx b/composable-os/src/pages/QuoteDetail.tsx index 7365553..289d6d9 100644 --- a/composable-os/src/pages/QuoteDetail.tsx +++ b/composable-os/src/pages/QuoteDetail.tsx @@ -329,8 +329,8 @@ export default function QuoteDetail() {
{activeSession.client_email - ? t("sales:detail.activeLinkSentTo", { email: activeSession.client_email, date: formatDate(activeSession.expires_at, "short") }) - : t("sales:detail.activeLink", { date: formatDate(activeSession.expires_at, "short") })} + ? t("sales:detail.activeLinkSentTo", { email: activeSession.client_email, date: formatDate(activeSession.expires_at, "medium") }) + : t("sales:detail.activeLink", { date: formatDate(activeSession.expires_at, "medium") })}