openpencil/tests/engine/figma/api/layout/sizing.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
2.5 KiB
TypeScript

import { describe, expect, test } from 'bun:test'
import { getNodeOrThrow } from '#tests/helpers/assert'
import { createAPI } from '../helpers'
describe('layout sizing', () => {
test('child in horizontal parent: h=primary, v=counter', () => {
const api = createAPI()
const parent = api.createFrame()
parent.layoutMode = 'HORIZONTAL'
const child = api.createFrame()
parent.appendChild(child)
child.layoutSizingHorizontal = 'FILL'
child.layoutSizingVertical = 'HUG'
expect(child.layoutSizingHorizontal).toBe('FILL')
expect(child.layoutSizingVertical).toBe('HUG')
})
test('child in vertical parent: h=counter, v=primary', () => {
const api = createAPI()
const parent = api.createFrame()
parent.layoutMode = 'VERTICAL'
const child = api.createFrame()
parent.appendChild(child)
child.layoutSizingHorizontal = 'FILL'
child.layoutSizingVertical = 'HUG'
expect(child.layoutSizingHorizontal).toBe('FILL')
expect(child.layoutSizingVertical).toBe('HUG')
})
test('auto-layout frame that is also a child of auto-layout', () => {
const api = createAPI()
const outer = api.createFrame()
outer.layoutMode = 'HORIZONTAL'
const inner = api.createFrame()
inner.layoutMode = 'VERTICAL'
outer.appendChild(inner)
inner.layoutSizingHorizontal = 'FILL'
expect(inner.layoutSizingHorizontal).toBe('FILL')
expect(inner.layoutMode).toBe('VERTICAL')
})
test('HORIZONTAL child in VERTICAL parent: sizing maps to correct raw axis', () => {
const api = createAPI()
const parent = api.createFrame()
parent.layoutMode = 'VERTICAL'
parent.resize(375, 812)
const child = api.createFrame()
child.layoutMode = 'HORIZONTAL'
parent.appendChild(child)
child.layoutSizingVertical = 'FIXED'
child.resize(375, 44)
expect(child.layoutSizingVertical).toBe('FIXED')
const raw = getNodeOrThrow(api.graph, child.id)
expect(raw.counterAxisSizing).toBe('FIXED')
})
test('VERTICAL child in HORIZONTAL parent: sizing maps to correct raw axis', () => {
const api = createAPI()
const parent = api.createFrame()
parent.layoutMode = 'HORIZONTAL'
parent.resize(800, 600)
const child = api.createFrame()
child.layoutMode = 'VERTICAL'
parent.appendChild(child)
child.layoutSizingHorizontal = 'FIXED'
child.resize(200, 600)
expect(child.layoutSizingHorizontal).toBe('FIXED')
const raw = getNodeOrThrow(api.graph, child.id)
expect(raw.counterAxisSizing).toBe('FIXED')
})
})