2026-06-02 13:25:01 +00:00
|
|
|
import { describe, expect, it } from 'bun:test'
|
|
|
|
|
|
|
|
|
|
import { compileTailwindCSS, createHeadlessCSSRuntime } from '@open-pencil/dom-css'
|
|
|
|
|
|
2026-06-02 16:51:12 +00:00
|
|
|
import { tailwindCardClasses } from '#tests/helpers/dom-css'
|
|
|
|
|
|
2026-06-02 13:25:01 +00:00
|
|
|
describe('@open-pencil/dom-css Tailwind', () => {
|
|
|
|
|
it('compiles utility candidates through Tailwind', async () => {
|
2026-06-02 16:51:12 +00:00
|
|
|
const css = await compileTailwindCSS(tailwindCardClasses)
|
2026-06-02 13:25:01 +00:00
|
|
|
|
|
|
|
|
expect(css).toContain('.flex')
|
|
|
|
|
expect(css).toContain('.w-80')
|
|
|
|
|
expect(css).toContain('.p-6')
|
|
|
|
|
expect(css).toContain('--spacing')
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it('feeds Tailwind CSS variables through headless style computation', async () => {
|
|
|
|
|
const runtime = createHeadlessCSSRuntime()
|
2026-06-02 16:51:12 +00:00
|
|
|
const css = await compileTailwindCSS(tailwindCardClasses)
|
2026-06-02 13:25:01 +00:00
|
|
|
const document = await runtime.computeStyles(
|
2026-06-02 16:51:12 +00:00
|
|
|
runtime.parseHTML(`<section class="${tailwindCardClasses.join(' ')}"></section>`),
|
2026-06-02 13:25:01 +00:00
|
|
|
css
|
|
|
|
|
)
|
|
|
|
|
const element = document.children[0]
|
|
|
|
|
|
|
|
|
|
expect(element?.type).toBe('element')
|
|
|
|
|
if (element?.type !== 'element') return
|
|
|
|
|
expect(element.computedStyle?.width).toBe('320px')
|
|
|
|
|
expect(element.computedStyle?.['padding-top']).toBe('24px')
|
|
|
|
|
})
|
|
|
|
|
})
|