fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
40 lines (38 loc) • 1.38 kB
text/typescript
import { ClassRegistry } from './ClassRegistry';
describe('ClassRegistry', () => {
let classRegistry: ClassRegistry;
beforeEach(() => {
classRegistry = new ClassRegistry();
});
it('will error if a class is request that is not registered', () => {
expect(() => classRegistry.getClass('any')).toThrow(
'No class registered for any',
);
});
it('will return a class previously registered', () => {
classRegistry.setClass(Set, 'any');
expect(classRegistry.getClass('any')).toBe(Set);
});
it('will check if a class was previously registered', () => {
expect(classRegistry.has('any')).toBe(false);
classRegistry.setClass(Set, 'any');
expect(classRegistry.has('any')).toBe(true);
});
it('not specified will register the class using the type static prop', () => {
class Set2 extends Set {
static type = 'SETABC';
}
classRegistry.setClass(Set2);
expect(classRegistry.has('SETABC')).toBe(true);
expect(classRegistry.getClass('SETABC')).toBe(Set2);
expect(classRegistry.getClass('setabc')).toBe(Set2);
});
it('has a method for SVG parsing classes', () => {
class Set2 extends Set {
static type = 'SETABC';
}
classRegistry.setSVGClass(Set2);
expect(classRegistry.getSVGClass('SETABC')).toBe(undefined);
expect(classRegistry.getSVGClass('setabc')).toBe(Set2);
});
});