Tldraw/packages/store/src/lib/test/upgradeSchema.test.ts

80 wiersze
2.0 KiB
TypeScript

import { SerializedSchemaV1, upgradeSchema } from '../StoreSchema'
describe('upgradeSchema', () => {
it('should upgrade a schema from v1 to v2, assuming its working with tldraw data', () => {
const v1: SerializedSchemaV1 = {
schemaVersion: 1,
storeVersion: 4,
recordVersions: {
asset: {
version: 1,
subTypeKey: 'type',
subTypeVersions: { image: 2, video: 2, bookmark: 0 },
},
camera: { version: 1 },
document: { version: 2 },
instance: { version: 22 },
instance_page_state: { version: 5 },
page: { version: 1 },
shape: {
version: 3,
subTypeKey: 'type',
subTypeVersions: {
group: 0,
text: 1,
bookmark: 1,
draw: 1,
geo: 7,
note: 4,
line: 1,
frame: 0,
arrow: 1,
highlight: 0,
embed: 4,
image: 2,
video: 1,
},
},
instance_presence: { version: 5 },
pointer: { version: 1 },
},
}
expect(upgradeSchema(v1)).toMatchInlineSnapshot(`
{
"ok": true,
"value": {
"schemaVersion": 2,
"sequences": {
"com.tldraw.asset": 1,
"com.tldraw.asset.bookmark": 0,
"com.tldraw.asset.image": 2,
"com.tldraw.asset.video": 2,
"com.tldraw.camera": 1,
"com.tldraw.document": 2,
"com.tldraw.instance": 22,
"com.tldraw.instance_page_state": 5,
"com.tldraw.instance_presence": 5,
"com.tldraw.page": 1,
"com.tldraw.pointer": 1,
"com.tldraw.shape": 3,
"com.tldraw.shape.arrow": 1,
"com.tldraw.shape.bookmark": 1,
"com.tldraw.shape.draw": 1,
"com.tldraw.shape.embed": 4,
"com.tldraw.shape.frame": 0,
"com.tldraw.shape.geo": 7,
"com.tldraw.shape.group": 0,
"com.tldraw.shape.highlight": 0,
"com.tldraw.shape.image": 2,
"com.tldraw.shape.line": 1,
"com.tldraw.shape.note": 4,
"com.tldraw.shape.text": 1,
"com.tldraw.shape.video": 1,
},
},
}
`)
})
})