Figma expects derivedTextData glyph advance values normalized to font-size units (advance / fontSize), not absolute pixel values. This caused pasted text to appear horizontally mirrored because Figma multiplied the already-absolute advances by fontSize again.
65 lines
2.2 KiB
TypeScript
65 lines
2.2 KiB
TypeScript
import { expect, test, useEditorSetup } from '#tests/e2e/fixtures'
|
|
import { expectDefined } from '#tests/helpers/assert'
|
|
|
|
const editor = useEditorSetup()
|
|
|
|
test('layers panel resize increases width', async () => {
|
|
const panel = editor.page.getByTestId('layers-panel')
|
|
const before = await panel.boundingBox()
|
|
expect(before).not.toBeNull()
|
|
|
|
const handle = editor.page.getByTestId('left-splitter-handle')
|
|
const handleBox = await handle.boundingBox()
|
|
expect(handleBox).not.toBeNull()
|
|
|
|
const handleBounds = expectDefined(handleBox, 'splitter handle bounds')
|
|
const beforeBounds = expectDefined(before, 'layers panel bounds')
|
|
const cx = handleBounds.x + handleBounds.width / 2
|
|
const cy = handleBounds.y + handleBounds.height / 2
|
|
|
|
await editor.page.mouse.move(cx, cy)
|
|
await editor.page.mouse.down()
|
|
await editor.page.mouse.move(cx + 80, cy, { steps: 10 })
|
|
await editor.page.mouse.up()
|
|
await editor.canvas.waitForRender()
|
|
|
|
const after = expectDefined(await panel.boundingBox(), 'resized layers panel bounds')
|
|
expect(after.width).toBeGreaterThan(beforeBounds.width + 40)
|
|
editor.canvas.assertNoErrors()
|
|
})
|
|
|
|
test('panel width persists after page reload', async () => {
|
|
// Allow Reka's auto-save debounce to flush before recording the width
|
|
await editor.page.waitForTimeout(300)
|
|
const recordedWidth = expectDefined(
|
|
await editor.page.getByTestId('layers-panel').boundingBox(),
|
|
'persisted layers panel bounds'
|
|
).width
|
|
|
|
await editor.page.reload()
|
|
await editor.canvas.waitForInit()
|
|
|
|
const after = expectDefined(
|
|
await editor.page.getByTestId('layers-panel').boundingBox(),
|
|
'reloaded layers panel bounds'
|
|
)
|
|
expect(Math.abs(after.width - recordedWidth)).toBeLessThanOrEqual(2)
|
|
editor.canvas.assertNoErrors()
|
|
})
|
|
|
|
test('Cmd+Backslash hides panels', async () => {
|
|
await editor.page.keyboard.press('Meta+\\')
|
|
await editor.canvas.waitForRender()
|
|
|
|
await expect(editor.page.getByTestId('layers-panel')).not.toBeVisible()
|
|
editor.canvas.assertNoErrors()
|
|
})
|
|
|
|
test('Cmd+Backslash shows panels again', async () => {
|
|
await editor.page.keyboard.press('Meta+\\')
|
|
await editor.canvas.waitForRender()
|
|
|
|
await expect(editor.page.getByTestId('layers-panel')).toBeVisible()
|
|
editor.canvas.assertNoErrors()
|
|
})
|