import { async, inject, TestBed } from '@angular/core/testing'; import { PtDynamicElement, PtDynamicFormsService, PtDynamicType } from './dynamic-forms.service'; describe('Service: PtDynamicFormsService', () => { beforeEach(async(() => { TestBed.configureTestingModule({ providers: [PtDynamicFormsService], }); })); it('expect to validate element names correctly', async( inject([PtDynamicFormsService], (service: PtDynamicFormsService) => { try { service.validateDynamicElementName('normal-name'); } catch (e) { expect(e).toBeFalsy('name should be validated correctly'); } try { service.validateDynamicElementName('normal_22_name'); } catch (e) { expect(e).toBeFalsy('name should be validated correctly'); } try { service.validateDynamicElementName('normal_22-name_22'); } catch (e) { expect(e).toBeFalsy('name should be validated correctly'); } try { service.validateDynamicElementName('王先生'); } catch (e) { expect(e).toBeFalsy('王先生 (chinese) name should be validated correctly'); } try { service.validateDynamicElementName('日本語'); } catch (e) { expect(e).toBeFalsy('日本語 (japanese) name should be validated correctly'); } try { service.validateDynamicElementName('2normal_22-name_22'); expect(false).toBeTruthy('2normal_22-name_22 name should not be validated correctly'); } catch (e) { /* */ } try { service.validateDynamicElementName('normal@22-name_22'); expect(false).toBeTruthy('normal@22-name_22 name should not be validated correctly'); } catch (e) { /* */ } }), )); it('expect to return components depending on type | element', async( inject([PtDynamicFormsService], (service: PtDynamicFormsService) => { expect(service.getDynamicElement(PtDynamicType.Text)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicType.Number)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicType.Boolean)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicType.Array)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicElement.Input)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicElement.Textarea)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicElement.Checkbox)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicElement.Slider)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicElement.SlideToggle)).toBeTruthy(); expect(service.getDynamicElement(PtDynamicElement.Select)).toBeTruthy(); try { expect(service.getDynamicElement(undefined)).toBeFalsy('expect not to return a component'); } catch (e) { expect(e).toBeTruthy(); } }), )); });