UNPKG

@chatterton/angular2-schema-form

Version:

Angular2 Schema Form (DISCLAIMER: it is not related to angular-schema-form)

59 lines (41 loc) 1.59 kB
import { IntegerWidget, TextAreaWidget, StringWidget } from './'; import { DefaultWidgetRegistry } from './defaultwidgetregistry'; describe('DefaultWidgetRegistry', () => { let STRING_TYPE = 'string'; let INT_TYPE = 'integer'; let TEXTAREA_TYPE = 'textarea'; let A_NOT_REGISTERED_TYPE = 'FOOBARSTRING'; let THE_DEFAULT_FIELD_TYPE = class { }; let THE_TYPE = 'date'; let THE_FIELD_TYPE = class { }; let registry: DefaultWidgetRegistry; beforeEach(() => { registry = new DefaultWidgetRegistry(); }); it('should be initialized with primitives widgets', () => { let stringWidget = registry.getWidgetType(STRING_TYPE); let integerWidget = registry.getWidgetType(INT_TYPE); let textareaWidget = registry.getWidgetType(TEXTAREA_TYPE); expect(stringWidget).toBe(StringWidget); expect(integerWidget).toBe(IntegerWidget); expect(textareaWidget).toBe(TextAreaWidget); }); it('should return a default widget if there is no matching string in widgets', () => { let widget = registry.getWidgetType(A_NOT_REGISTERED_TYPE); expect(widget).not.toBe(null); }); it('should return the widget type set when there is no matching type registered', () => { registry.setDefaultWidget(THE_DEFAULT_FIELD_TYPE); let widget = registry.getWidgetType(A_NOT_REGISTERED_TYPE); expect(widget).toBe(THE_DEFAULT_FIELD_TYPE); }); it('should register a widget type', () => { registry.register(THE_TYPE, THE_FIELD_TYPE); let widget = registry.getWidgetType(THE_TYPE); expect(widget).toBe(THE_FIELD_TYPE); }); });