- 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
74 lines
1.9 KiB
TypeScript
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)
|
|
})
|
|
})
|