Tldraw/packages/tldraw/src/test/shapeIdsInCurrentPage.test.ts

76 wiersze
2.0 KiB
TypeScript

import { createShapeId, PageRecordType } from '@tldraw/editor'
import { TestEditor } from './TestEditor'
let editor = {} as TestEditor
beforeEach(() => {
editor = new TestEditor()
})
const ids = {
box1: createShapeId('box1'),
box2: createShapeId('box2'),
box3: createShapeId('box3'),
box4: createShapeId('box4'),
box5: createShapeId('box5'),
box6: createShapeId('box6'),
}
describe('shapeIdsInCurrentPage', () => {
it('keeps the shape ids in the current page', () => {
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(new Set([]))
editor.createShapes([{ type: 'geo', id: ids.box1 }])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(new Set([ids.box1]))
editor.createShapes([{ type: 'geo', id: ids.box2 }])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(new Set([ids.box1, ids.box2]))
editor.createShapes([{ type: 'geo', id: ids.box3 }])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(
new Set([ids.box1, ids.box2, ids.box3])
)
editor.deleteShapes([ids.box2])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(new Set([ids.box1, ids.box3]))
editor.deleteShapes([ids.box1])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(new Set([ids.box3]))
editor.deleteShapes([ids.box3])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(new Set([]))
})
it('changes when the current page changes', () => {
editor.createShapes([
{ type: 'geo', id: ids.box1 },
{ type: 'geo', id: ids.box2 },
{ type: 'geo', id: ids.box3 },
])
const id = PageRecordType.createId('page2')
editor.createPage({ name: 'New Page 2', id })
editor.setCurrentPage(id)
editor.createShapes([
{ type: 'geo', id: ids.box4 },
{ type: 'geo', id: ids.box5 },
{ type: 'geo', id: ids.box6 },
])
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(
new Set([ids.box4, ids.box5, ids.box6])
)
editor.setCurrentPage(editor.getPages()[0].id)
expect(new Set(editor.getCurrentPageShapeIds())).toEqual(
new Set([ids.box1, ids.box2, ids.box3])
)
})
})