mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
#726 validator unit tests
This commit is contained in:
parent
ac409ee20a
commit
ae5a8b1686
@ -22,7 +22,7 @@ import { ActivitiForm } from './activiti-form.component';
|
|||||||
import { FormModel, FormOutcomeModel, FormFieldModel, FormOutcomeEvent } from './widgets/index';
|
import { FormModel, FormOutcomeModel, FormFieldModel, FormOutcomeEvent } from './widgets/index';
|
||||||
import { FormService } from './../services/form.service';
|
import { FormService } from './../services/form.service';
|
||||||
import { WidgetVisibilityService } from './../services/widget-visibility.service';
|
import { WidgetVisibilityService } from './../services/widget-visibility.service';
|
||||||
import { ContainerWidget } from './widgets/container/container.widget';
|
// import { ContainerWidget } from './widgets/container/container.widget';
|
||||||
|
|
||||||
describe('ActivitiForm', () => {
|
describe('ActivitiForm', () => {
|
||||||
|
|
||||||
@ -571,6 +571,7 @@ describe('ActivitiForm', () => {
|
|||||||
expect(formComponent.getFormDefinitionOutcomes).toHaveBeenCalledWith(form);
|
expect(formComponent.getFormDefinitionOutcomes).toHaveBeenCalledWith(form);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
it('should update the visibility when the container raise the change event', (valueChanged) => {
|
it('should update the visibility when the container raise the change event', (valueChanged) => {
|
||||||
spyOn(formComponent, 'checkVisibility').and.callThrough();
|
spyOn(formComponent, 'checkVisibility').and.callThrough();
|
||||||
let widget = new ContainerWidget();
|
let widget = new ContainerWidget();
|
||||||
@ -581,6 +582,7 @@ describe('ActivitiForm', () => {
|
|||||||
|
|
||||||
expect(formComponent.checkVisibility).toHaveBeenCalledWith(fakeField);
|
expect(formComponent.checkVisibility).toHaveBeenCalledWith(fakeField);
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
it('should prevent default outcome execution', () => {
|
it('should prevent default outcome execution', () => {
|
||||||
|
|
||||||
|
@ -0,0 +1,493 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { it, describe, expect } from '@angular/core/testing';
|
||||||
|
import { FormModel } from './form.model';
|
||||||
|
import { FormFieldModel } from './form-field.model';
|
||||||
|
import { FormFieldOption } from './form-field-option';
|
||||||
|
import { FormFieldTypes } from './form-field-types';
|
||||||
|
import {
|
||||||
|
RequiredFieldValidator,
|
||||||
|
NumberFieldValidator,
|
||||||
|
MinLengthFieldValidator,
|
||||||
|
MaxLengthFieldValidator,
|
||||||
|
MinValueFieldValidator,
|
||||||
|
MaxValueFieldValidator,
|
||||||
|
RegExFieldValidator
|
||||||
|
} from './form-field-validator';
|
||||||
|
|
||||||
|
describe('FormFieldValidator', () => {
|
||||||
|
|
||||||
|
describe('RequiredFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: RequiredFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new RequiredFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require [required] setting', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
value: '<value>'
|
||||||
|
});
|
||||||
|
|
||||||
|
field.required = false;
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
|
||||||
|
field.required = true;
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should skip unsupported type', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), { type: 'wrong-type' });
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it('should fail for dropdown with empty value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.DROPDOWN,
|
||||||
|
value: '<empty>',
|
||||||
|
hasEmptyValue: true,
|
||||||
|
required: true
|
||||||
|
});
|
||||||
|
|
||||||
|
field.emptyOption = <FormFieldOption> { id: '<empty>' };
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.value = '<non-empty>';
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail for radio buttons', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.RADIO_BUTTONS,
|
||||||
|
required: true,
|
||||||
|
value: 'one',
|
||||||
|
options: [{ id: 'two', name: 'two' }]
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed for radio buttons', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.RADIO_BUTTONS,
|
||||||
|
required: true,
|
||||||
|
value: 'two',
|
||||||
|
options: [{ id: 'two', name: 'two' }]
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail for upload', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.UPLOAD,
|
||||||
|
value: null,
|
||||||
|
required: true
|
||||||
|
});
|
||||||
|
|
||||||
|
field.value = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.value = [];
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed for upload', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.UPLOAD,
|
||||||
|
value: [{}],
|
||||||
|
required: true
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail for text', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
value: null,
|
||||||
|
required: true
|
||||||
|
});
|
||||||
|
|
||||||
|
field.value = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.value = '';
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed for text', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
value: '<value>',
|
||||||
|
required: true
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('NumberFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: NumberFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new NumberFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should verify number', () => {
|
||||||
|
expect(NumberFieldValidator.isNumber('1')).toBeTruthy();
|
||||||
|
expect(NumberFieldValidator.isNumber('1.0')).toBeTruthy();
|
||||||
|
expect(NumberFieldValidator.isNumber('-1')).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not verify number', () => {
|
||||||
|
expect(NumberFieldValidator.isNumber(null)).toBeFalsy();
|
||||||
|
expect(NumberFieldValidator.isNumber(undefined)).toBeFalsy();
|
||||||
|
expect(NumberFieldValidator.isNumber('')).toBeFalsy();
|
||||||
|
expect(NumberFieldValidator.isNumber('one')).toBeFalsy();
|
||||||
|
expect(NumberFieldValidator.isNumber('1q')).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should allow empty number value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: null
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail for wrong number value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: '<value>'
|
||||||
|
});
|
||||||
|
|
||||||
|
field.validationSummary = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
expect(field.validationSummary).not.toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('MinLengthFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: MinLengthFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new MinLengthFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require minLength defined', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.minLength = 10;
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should allow empty values', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
minLength: 10,
|
||||||
|
value: null
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed text validation', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
minLength: 3,
|
||||||
|
value: '1234'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail text validation', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
minLength: 3,
|
||||||
|
value: '12'
|
||||||
|
});
|
||||||
|
|
||||||
|
field.validationSummary = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
expect(field.validationSummary).not.toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('MaxLengthFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: MaxLengthFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new MaxLengthFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require maxLength defined', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.maxLength = 10;
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should allow empty values', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
maxLength: 10,
|
||||||
|
value: null
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed text validation', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
maxLength: 3,
|
||||||
|
value: '123'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail text validation', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
maxLength: 3,
|
||||||
|
value: '1234'
|
||||||
|
});
|
||||||
|
|
||||||
|
field.validationSummary = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
expect(field.validationSummary).not.toBeNull();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('MinValueFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: MinValueFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new MinValueFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require minValue defined', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER
|
||||||
|
});
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.minValue = '1';
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should support numeric widgets only', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
minValue: '1'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
|
||||||
|
field.type = FormFieldTypes.TEXT;
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should allow empty values', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: null,
|
||||||
|
minValue: '1'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed for unsupported types', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed validating value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: '10',
|
||||||
|
minValue: '10'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail validating value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: '9',
|
||||||
|
minValue: '10'
|
||||||
|
});
|
||||||
|
|
||||||
|
field.validationSummary = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
expect(field.validationSummary).not.toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('MaxValueFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: MaxValueFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new MaxValueFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require maxValue defined', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER
|
||||||
|
});
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.maxValue = '1';
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should support numeric widgets only', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
maxValue: '1'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
|
||||||
|
field.type = FormFieldTypes.TEXT;
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should allow empty values', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: null,
|
||||||
|
maxValue: '1'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed for unsupported types', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed validating value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: '10',
|
||||||
|
maxValue: '10'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail validating value', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.NUMBER,
|
||||||
|
value: '11',
|
||||||
|
maxValue: '10'
|
||||||
|
});
|
||||||
|
|
||||||
|
field.validationSummary = null;
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
expect(field.validationSummary).not.toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('RegExFieldValidator', () => {
|
||||||
|
|
||||||
|
let validator: RegExFieldValidator;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
validator = new RegExFieldValidator();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require regex pattern to be defined', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT
|
||||||
|
});
|
||||||
|
expect(validator.isSupported(field)).toBeFalsy();
|
||||||
|
|
||||||
|
field.regexPattern = '<pattern>';
|
||||||
|
expect(validator.isSupported(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should allow empty values', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
value: null,
|
||||||
|
regexPattern: 'pattern'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should succeed validating regex', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
value: 'pattern',
|
||||||
|
regexPattern: 'pattern'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail validating regex', () => {
|
||||||
|
let field = new FormFieldModel(new FormModel(), {
|
||||||
|
type: FormFieldTypes.TEXT,
|
||||||
|
value: 'some value',
|
||||||
|
regexPattern: 'pattern'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(validator.validate(field)).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,40 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { it, describe, expect } from '@angular/core/testing';
|
||||||
|
import { GroupUserModel } from './group-user.model';
|
||||||
|
|
||||||
|
describe('GroupUserModel', () => {
|
||||||
|
|
||||||
|
it('should init with json', () => {
|
||||||
|
let json = {
|
||||||
|
company: '<company>',
|
||||||
|
email: '<email>',
|
||||||
|
firstName: '<firstName>',
|
||||||
|
id: '<id>',
|
||||||
|
lastName: '<lastName>'
|
||||||
|
};
|
||||||
|
|
||||||
|
let model = new GroupUserModel(json);
|
||||||
|
expect(model.company).toBe(json.company);
|
||||||
|
expect(model.email).toBe(json.email);
|
||||||
|
expect(model.firstName).toBe(json.firstName);
|
||||||
|
expect(model.id).toBe(json.id);
|
||||||
|
expect(model.lastName).toBe(json.lastName);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@ -0,0 +1,96 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { it, describe, expect, beforeEach } from '@angular/core/testing';
|
||||||
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
import { FormService } from '../../../services/form.service';
|
||||||
|
import { RadioButtonsWidget } from './radio-buttons.widget';
|
||||||
|
import { FormModel } from './../core/form.model';
|
||||||
|
import { FormFieldModel } from './../core/form-field.model';
|
||||||
|
|
||||||
|
describe('RadioButtonsWidget', () => {
|
||||||
|
|
||||||
|
let formService: FormService;
|
||||||
|
let widget: RadioButtonsWidget;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
formService = new FormService(null, null);
|
||||||
|
widget = new RadioButtonsWidget(formService);
|
||||||
|
widget.field = new FormFieldModel(new FormModel(), { restUrl: '<url>' });
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should request field values from service', () => {
|
||||||
|
const taskId = '<form-id>';
|
||||||
|
const fieldId = '<field-id>';
|
||||||
|
|
||||||
|
let form = new FormModel({
|
||||||
|
taskId: taskId
|
||||||
|
});
|
||||||
|
|
||||||
|
widget.field = new FormFieldModel(form, {
|
||||||
|
id: fieldId,
|
||||||
|
restUrl: '<url>'
|
||||||
|
});
|
||||||
|
|
||||||
|
spyOn(formService, 'getRestFieldValues').and.returnValue(Observable.create(observer => {
|
||||||
|
observer.next(null);
|
||||||
|
observer.complete();
|
||||||
|
}));
|
||||||
|
widget.ngOnInit();
|
||||||
|
expect(formService.getRestFieldValues).toHaveBeenCalledWith(taskId, fieldId);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update form on values fetched', () => {
|
||||||
|
let form = widget.field;
|
||||||
|
spyOn(form, 'updateForm').and.stub();
|
||||||
|
|
||||||
|
spyOn(formService, 'getRestFieldValues').and.returnValue(Observable.create(observer => {
|
||||||
|
observer.next(null);
|
||||||
|
observer.complete();
|
||||||
|
}));
|
||||||
|
widget.ngOnInit();
|
||||||
|
expect(form.updateForm).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should require field with rest URL to fetch data', () => {
|
||||||
|
spyOn(formService, 'getRestFieldValues').and.returnValue(Observable.create(observer => {
|
||||||
|
observer.next(null);
|
||||||
|
observer.complete();
|
||||||
|
}));
|
||||||
|
|
||||||
|
let field = widget.field;
|
||||||
|
widget.field = null;
|
||||||
|
widget.ngOnInit();
|
||||||
|
expect(formService.getRestFieldValues).not.toHaveBeenCalled();
|
||||||
|
widget.field = field;
|
||||||
|
|
||||||
|
widget.field.restUrl = null;
|
||||||
|
widget.ngOnInit();
|
||||||
|
expect(formService.getRestFieldValues).not.toHaveBeenCalled();
|
||||||
|
|
||||||
|
widget.field.restUrl = '<url>';
|
||||||
|
widget.ngOnInit();
|
||||||
|
expect(formService.getRestFieldValues).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should log error to console by default', () => {
|
||||||
|
spyOn(console, 'error').and.stub();
|
||||||
|
widget.handleError('Err');
|
||||||
|
expect(console.error).toHaveBeenCalledWith('Err');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@ -205,6 +205,7 @@ describe('WidgetVisibilityService', () => {
|
|||||||
expect(res).toBeFalsy();
|
expect(res).toBeFalsy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
it('should be able to retrieve the value of a process variable', (done) => {
|
it('should be able to retrieve the value of a process variable', (done) => {
|
||||||
service.getTaskProcessVariableModelsForTask(9999).subscribe(
|
service.getTaskProcessVariableModelsForTask(9999).subscribe(
|
||||||
(res: TaskProcessVariableModel[]) => {
|
(res: TaskProcessVariableModel[]) => {
|
||||||
@ -223,6 +224,7 @@ describe('WidgetVisibilityService', () => {
|
|||||||
expect(varValue).not.toBe(null);
|
expect(varValue).not.toBe(null);
|
||||||
expect(varValue).toBe('test_value_1');
|
expect(varValue).toBe('test_value_1');
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
it('should be able to retrieve the value of a form variable', () => {
|
it('should be able to retrieve the value of a form variable', () => {
|
||||||
let fakeForm = new FormModel({variables: [
|
let fakeForm = new FormModel({variables: [
|
||||||
@ -308,6 +310,7 @@ describe('WidgetVisibilityService', () => {
|
|||||||
expect(rightValue).toBe('100');
|
expect(rightValue).toBe('100');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
it('should retrieve the value for the right field when it is a process variable', (done) => {
|
it('should retrieve the value for the right field when it is a process variable', (done) => {
|
||||||
service.getTaskProcessVariableModelsForTask(9999).subscribe(
|
service.getTaskProcessVariableModelsForTask(9999).subscribe(
|
||||||
(res: TaskProcessVariableModel[]) => {
|
(res: TaskProcessVariableModel[]) => {
|
||||||
@ -327,6 +330,7 @@ describe('WidgetVisibilityService', () => {
|
|||||||
expect(rightValue).not.toBe(null);
|
expect(rightValue).not.toBe(null);
|
||||||
expect(rightValue).toBe('test_value_2');
|
expect(rightValue).toBe('test_value_2');
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
it('should retrieve the value for the right field when it is a form variable', () => {
|
it('should retrieve the value for the right field when it is a form variable', () => {
|
||||||
let fakeFormWithField = new FormModel(fakeFormJson);
|
let fakeFormWithField = new FormModel(fakeFormJson);
|
||||||
@ -466,6 +470,7 @@ describe('WidgetVisibilityService', () => {
|
|||||||
expect(isVisible).toBeTruthy();
|
expect(isVisible).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
it('should evaluate the visibility for the field between form value and process var', (varReady) => {
|
it('should evaluate the visibility for the field between form value and process var', (varReady) => {
|
||||||
service.getTaskProcessVariableModelsForTask(9999).subscribe(
|
service.getTaskProcessVariableModelsForTask(9999).subscribe(
|
||||||
(res: TaskProcessVariableModel[]) => {
|
(res: TaskProcessVariableModel[]) => {
|
||||||
@ -487,6 +492,7 @@ describe('WidgetVisibilityService', () => {
|
|||||||
|
|
||||||
expect(isVisible).toBeTruthy();
|
expect(isVisible).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
it('should evaluate visibility with multiple conditions', (ready) => {
|
it('should evaluate visibility with multiple conditions', (ready) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user