openpencil/tests/engine/figma/api/frozen/arrays.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

32 lines
971 B
TypeScript

import { describe, expect, test } from 'bun:test'
import { type Fill } from '@open-pencil/core'
import { createAPI } from '../helpers'
describe('frozen arrays', () => {
test('fills returns frozen clone', () => {
const api = createAPI()
const rect = api.createRectangle()
rect.fills = [{ type: 'SOLID', color: { r: 1, g: 0, b: 0, a: 1 }, opacity: 1, visible: true }]
const fills = rect.fills
expect(Object.isFrozen(fills)).toBe(true)
expect(() => {
;(fills as Fill[]).push({} as Fill)
}).toThrow()
})
test('mutating returned fills does not affect node', () => {
const api = createAPI()
const rect = api.createRectangle()
rect.fills = [{ type: 'SOLID', color: { r: 1, g: 0, b: 0, a: 1 }, opacity: 1, visible: true }]
const fills = rect.fills as Fill[]
try {
fills[0].color.r = 0
} catch (error) {
expect(error).toBeInstanceOf(TypeError)
}
expect(rect.fills[0].color.r).toBe(1)
})
})