openpencil/tests/engine/io/fig/import/legacy/transforms.test.ts
2026-05-31 13:28:41 +03:00

40 lines
1.1 KiB
TypeScript

import { describe, expect, test } from 'bun:test'
import { importNodeChanges } from '@open-pencil/core'
import { canvas, doc, node } from './helpers'
describe('fig-import: transforms', () => {
test('flipped transforms use their visual bounds', () => {
const graph = importNodeChanges([
doc(),
canvas(),
node('VECTOR', 10, 1, {
size: { x: 17, y: 36 },
transform: { m00: -1, m01: 0, m02: 70, m10: 0, m11: 1, m12: 7 }
})
])
const imported = graph.getChildren(graph.getPages()[0].id)[0]
expect(imported.x).toBe(53)
expect(imported.y).toBe(7)
expect(imported.flipX).toBe(true)
})
test('rotated transforms preserve the Figma matrix origin', () => {
const graph = importNodeChanges([
doc(),
canvas(),
node('VECTOR', 10, 1, {
size: { x: 100, y: 20 },
transform: { m00: 0, m01: -1, m02: 10, m10: 1, m11: 0, m12: 20 }
})
])
const imported = graph.getChildren(graph.getPages()[0].id)[0]
expect(imported.x).toBeCloseTo(-50)
expect(imported.y).toBeCloseTo(60)
expect(imported.rotation).toBeCloseTo(90)
})
})