openpencil/tests/engine/layout/auto-layout/fill/flex-basis.test.ts
Danila Poyarkov aad26b535e test: move prefixed splits into domain folders
- Move newly split tests under explicit domain subfolders
- Update nested helper imports after the moves
- Add a lint guard against repeating existing sibling domains as filename prefixes
2026-05-06 14:27:21 +03:00

74 lines
1.9 KiB
TypeScript

import { describe, expect, test } from 'bun:test'
import { computeLayout, SceneGraph } from '@open-pencil/core'
import { autoFrame, pageId, rect } from '#tests/helpers/layout'
describe('FILL flexBasis', () => {
test('FILL children with different content sizes get equal width', () => {
const graph = new SceneGraph()
const frame = autoFrame(graph, pageId(graph), {
width: 400,
height: 100
})
const inner1 = autoFrame(graph, frame.id, {
primaryAxisSizing: 'FIXED',
counterAxisSizing: 'FIXED',
width: 100,
height: 50,
layoutGrow: 1
})
rect(graph, inner1.id, 100, 50)
const inner2 = autoFrame(graph, frame.id, {
primaryAxisSizing: 'FIXED',
counterAxisSizing: 'FIXED',
width: 200,
height: 50,
layoutGrow: 1
})
rect(graph, inner2.id, 200, 50)
computeLayout(graph, frame.id)
const children = graph.getChildren(frame.id)
expect(children[0].width).toBe(200)
expect(children[1].width).toBe(200)
})
test('nested FILL children distribute from zero basis', () => {
const graph = new SceneGraph()
const frame = autoFrame(graph, pageId(graph), {
width: 300,
height: 100,
itemSpacing: 0
})
autoFrame(graph, frame.id, {
primaryAxisSizing: 'FILL' as const,
counterAxisSizing: 'FIXED',
width: 50,
height: 100
})
autoFrame(graph, frame.id, {
primaryAxisSizing: 'FILL' as const,
counterAxisSizing: 'FIXED',
width: 50,
height: 100
})
autoFrame(graph, frame.id, {
primaryAxisSizing: 'FILL' as const,
counterAxisSizing: 'FIXED',
width: 50,
height: 100
})
computeLayout(graph, frame.id)
const children = graph.getChildren(frame.id)
expect(children[0].width).toBe(100)
expect(children[1].width).toBe(100)
expect(children[2].width).toBe(100)
})
})