UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

62 lines (60 loc) 2.45 kB
import { FabricObject } from './FabricObject'; import { Rect } from '../Rect'; import { FabricObject as BaseFabricObject } from './Object'; describe('FabricObject toObject', () => { test('without custom properties', () => { const obj = new FabricObject({ name: 'test1', key2: 'value2' }); expect(obj.name).toBe('test1'); expect(obj.key2).toBe('value2'); const serialized = obj.toObject(); expect(serialized.name).toBe(undefined); expect(serialized.key2).toBe(undefined); }); test('with custom properties', () => { const obj = new FabricObject({ name: 'test1', key2: 'value2' }); expect(obj.name).toBe('test1'); expect(obj.key2).toBe('value2'); const serialized = obj.toObject(['name']); expect(serialized.name).toBe('test1'); expect(serialized.key2).toBe(undefined); }); test('with default custom properties', () => { FabricObject.customProperties = ['key2']; const obj = new FabricObject({ name: 'test1', key2: 'value2' }); expect(obj.name).toBe('test1'); expect(obj.key2).toBe('value2'); const serialized = obj.toObject(); expect(serialized.name).toBe(undefined); expect(serialized.key2).toBe('value2'); }); test('with both custom properties', () => { FabricObject.customProperties = ['key2']; const obj = new FabricObject({ name: 'test1', key2: 'value2' }); expect(obj.name).toBe('test1'); expect(obj.key2).toBe('value2'); const serialized = obj.toObject(['name']); expect(serialized.name).toBe('test1'); expect(serialized.key2).toBe('value2'); }); test('customProperties gets cloned', async () => { FabricObject.customProperties = ['key2', 'name']; const obj = new FabricObject({ name: 'test1', key2: 'value2' }); expect(obj.name).toBe('test1'); expect(obj.key2).toBe('value2'); const clone = await obj.clone(); expect(clone.name).toBe('test1'); expect(clone.key2).toBe('value2'); }); test('with both custom properties', () => { BaseFabricObject.customProperties = ['key2', 'name']; Rect.customProperties = ['key1']; const obj = new Rect({ name: 'test1', key2: 'value2', key1: 'value1' }); expect(obj.name).toBe('test1'); expect(obj.key2).toBe('value2'); expect(obj.key1).toBe('value1'); const serialized = obj.toObject(); expect(serialized.name).toBe('test1'); expect(serialized.key2).toBe('value2'); expect(serialized.key1).toBe('value1'); }); });