import { expect, test } from "bun:test"; import { buttonBlock, ampLayoutCss } from "../src/blocks.ts"; test("button visuals target the clickable surface rather than the full-width wrapper", async () => { const node = {id:"cta",type:"content.button",version:1,props:{label:"Act",href:"https://example.com"},styles:{backgroundColor:{base:"#123456"},padding:{base:"8px 32px"},borderRadius:{base:"20px"}},slots:{}}; const context = {node,context:{},slots:{}} as never; const html = String(await buttonBlock.renderers!.emailHtml!(context)); const wrapper = html.match(/]*>/)![0]; expect(wrapper).not.toContain("#123456"); expect(wrapper).not.toContain("20px"); expect(wrapper).not.toContain("32px"); expect(html).toContain('bgcolor="#123456"'); expect(html.match(/]*>/)![0]).toContain("padding:8px 32px"); expect(ampLayoutCss(node)).toContain("padding:8px 32px"); expect(String(await buttonBlock.renderers!.mjml!(context))).toContain('inner-padding="8px 32px"'); });