30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
/**
|
|
* layout.css must let the DSH conversation column shrink below its content
|
|
* size. Without min-height:0 a long unbreakable URL grows the grid item
|
|
* past the viewport and clips the composer.
|
|
*/
|
|
import { readFileSync } from 'node:fs'
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
const css = readFileSync('src/client/layout.css', 'utf8')
|
|
|
|
describe('layout.css conversation column', () => {
|
|
it('targets the AppFrame center column', () => {
|
|
expect(css).toContain('[data-pane="conversation"]')
|
|
expect(css).toContain('[data-slot="conversation"]')
|
|
})
|
|
|
|
it('allows the center column to shrink and wrap long tokens', () => {
|
|
expect(css).toMatch(/min-height:\s*0/)
|
|
expect(css).toMatch(/overflow-wrap:\s*anywhere/)
|
|
})
|
|
|
|
it('leaves overflow ownership to the host conversation descendants', () => {
|
|
const conversationRule = css.match(
|
|
/#root \[data-dsh-frame\][\s\S]*?\{([\s\S]*?)\n\}/,
|
|
)?.[1]
|
|
expect(conversationRule).toBeDefined()
|
|
expect(conversationRule).not.toMatch(/(?:^|[;\s])overflow\s*:/)
|
|
})
|
|
})
|