From 280f8015d06af1f41a3ef12e8300801c7a5e0d54 Mon Sep 17 00:00:00 2001 From: AviZi Date: Fri, 9 Jun 2017 02:39:56 +0300 Subject: [SDC-29] Amdocs OnBoard 1707 initial commit. Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi --- .../test/utils/errorResponseHandler.test.js | 76 ++++++----- openecomp-ui/test/utils/restApiUtil.test.js | 149 --------------------- openecomp-ui/test/utils/uuid.test.js | 33 ++--- openecomp-ui/test/utils/validator.test.js | 69 ++++++++++ 4 files changed, 126 insertions(+), 201 deletions(-) delete mode 100644 openecomp-ui/test/utils/restApiUtil.test.js create mode 100644 openecomp-ui/test/utils/validator.test.js (limited to 'openecomp-ui/test/utils') diff --git a/openecomp-ui/test/utils/errorResponseHandler.test.js b/openecomp-ui/test/utils/errorResponseHandler.test.js index fd9dec6a8d..40836f728a 100644 --- a/openecomp-ui/test/utils/errorResponseHandler.test.js +++ b/openecomp-ui/test/utils/errorResponseHandler.test.js @@ -1,28 +1,24 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ +/*! * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ + * * 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 - * + * + * 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. - * ============LICENSE_END========================================================= + * 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 deepFreeze from 'deep-freeze'; -import expect from 'expect'; + import {cloneAndSet} from '../../test-utils/Util.js'; import store from 'sdc-app/AppStore.js'; import errorResponseHandler from 'nfvo-utils/ErrorResponseHandler.js'; +import {typeEnum as modalType} from 'nfvo-components/modal/GlobalModalConstants.js'; describe('Error Response Handler Util', () => { @@ -44,15 +40,20 @@ describe('Error Response Handler Util', () => { }; deepFreeze(xhr); - const errorNotification = { - type: 'error', title: 'Error: SVC4122', msg: 'Error: Invalid data.', timeout: undefined, - validationResponse: undefined + const errorNotification = { + title: 'Error: SVC4122', + msg: 'Error: Invalid data.', + modalClassName: 'notification-modal', + type: modalType.ERROR }; - const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification); + + + + const expectedStore = cloneAndSet(store.getState(), 'modal', errorNotification); errorResponseHandler(xhr, textStatus, errorThrown); - setTimeout(function () { + setTimeout(function () { expect(store.getState()).toEqual(expectedStore); done(); }, 100); @@ -72,12 +73,15 @@ describe('Error Response Handler Util', () => { } }; deepFreeze(xhr); - - const errorNotification = { - type: 'error', title: 'Error: SVC4122', msg: 'Error: Invalid artifact type newType.', timeout: undefined, - validationResponse: undefined + + const errorNotification = { + title: 'Error: SVC4122', + msg: 'Error: Invalid artifact type newType.', + modalClassName: 'notification-modal', + type: modalType.ERROR }; - const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification); + + const expectedStore = cloneAndSet(store.getState(), 'modal', errorNotification); errorResponseHandler(xhr, textStatus, errorThrown); @@ -97,11 +101,14 @@ describe('Error Response Handler Util', () => { }; deepFreeze(xhr); - const errorNotification = { - type: 'error', title: 'AA', msg: 'Error: Invalid data.', timeout: undefined, - validationResponse: undefined + const errorNotification = { + title: 'AA', + msg: 'Error: Invalid data.', + modalClassName: 'notification-modal', + type: modalType.ERROR }; - const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification); + + const expectedStore = cloneAndSet(store.getState(), 'modal', errorNotification); errorResponseHandler(xhr, textStatus, errorThrown); @@ -118,12 +125,15 @@ describe('Error Response Handler Util', () => { responseText: 'Internal server error.' }; deepFreeze(xhr); - - const errorNotification = { - type: 'error', title: '500', msg: 'Internal server error.', timeout: undefined, - validationResponse: undefined + + const errorNotification = { + title: '500', + msg: 'Internal server error.', + modalClassName: 'notification-modal', + type: modalType.ERROR }; - const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification); + + const expectedStore = cloneAndSet(store.getState(), 'modal', errorNotification); errorResponseHandler(xhr, textStatus, errorThrown); diff --git a/openecomp-ui/test/utils/restApiUtil.test.js b/openecomp-ui/test/utils/restApiUtil.test.js deleted file mode 100644 index 2a5e69b02e..0000000000 --- a/openecomp-ui/test/utils/restApiUtil.test.js +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -import expect from 'expect'; -import $ from 'jquery'; -import RestAPIUtil, {makeQueryParams} from 'src/nfvo-utils/RestAPIUtil'; - -const URL = 'http://bla.ble.blu/'; - -describe('RestAPIUtil Util class', () => { - - beforeEach(()=> { - $.ajax = (options) => options; - }); - - it('RestAPIUtil does exist', () => { - expect(RestAPIUtil).toExist(); - }); - - it('RestAPIUtil makeQueryParams does exist', () => { - expect(makeQueryParams).toExist(); - }); - - it('RestAPIUtil makeQueryParams params', () => { - const pageStart = 1, pageSize = 25; - const response = makeQueryParams({pagination: {pageStart, pageSize}}); - expect(response.pageStart).toBe(pageStart); - expect(response.pageSize).toBe(pageSize); - }); - - it('normal basic fetch', () => { - const response = RestAPIUtil.fetch(URL); - expect(response).toExist(); - }); - - it('no url', function () { - expect(function () { - RestAPIUtil.fetch(); - }).toThrow(/url/); - }); - - it('fetch with pagination', () => { - const pageStart = 1, pageSize = 25; - const response = RestAPIUtil.fetch(URL, {pagination: {pageStart, pageSize}}); - expect(response.pagination).toExist(); - expect(response.url).toInclude(`?pageStart=${pageStart}&pageSize=${pageSize}`); - }); - - it('fetch with sorting', () => { - const sortField = 'name', sortDir = 'ASCENDING'; - const response = RestAPIUtil.fetch(URL, {sorting: {sortField, sortDir}}); - expect(response.sorting).toExist(); - expect(response.url).toInclude(`?sortField=${sortField}&sortDir=${sortDir}`); - }); - - it('fetch with filtering', () => { - const baseFilter = [ - { - criterionValue: 'service', - fieldName: 'Brand', - operator: 'EQUALS', - type: 'STRING' - }, - { - criterionValue: 'resource', - fieldName: 'Brand', - operator: 'EQUALS', - type: 'STRING' - } - ]; - const response = RestAPIUtil.fetch(URL, {filtering: {filterCriteria: baseFilter, logicalRelation: 'OR'}}); - expect(response.filtering).toExist(); - expect(response.url).toInclude('?filter='); - }); - - it('fetch with qParams', () => { - const response = RestAPIUtil.fetch(URL, {qParams: {pageStart: 1, pageSize: 10}}); - expect(response.qParams).toExist(); - }); - - it('fetch with url on options', () => { - const response = RestAPIUtil.fetch(URL, {url:'12345', qParams: {pageStart: 1, pageSize: 10}}); - expect(response.qParams).toExist(); - }); - - it('fetch with url path param', () => { - let someData = 'data'; - const response = RestAPIUtil.fetch(`${URL}{someData}/`, {params: {someData}}); - expect(response.url).toInclude(`/${someData}/`); - }); - - it('fetch with url undefined path param', () => { - const response = RestAPIUtil.fetch(`${URL}{someData}/`, {params: {someData: undefined}}); - expect(response.url).toInclude('/undefined/'); - }); - - it('normal basic create', () => { - const response = RestAPIUtil.create(URL); - expect(response).toExist(); - }); - - it('create with FormData', () => { - let formData = new FormData(); - formData.append('username', 'Chris'); - const response = RestAPIUtil.create(URL, formData); - expect(response).toExist(); - }); - - it('create with FormData with md5', () => { - let formData = new FormData(); - formData.append('username', 'Chris'); - const response = RestAPIUtil.create(URL, formData, {md5: true}); - expect(response).toExist(); - }); - - it('create with file', () => { - let progressCallback = () => {}; - const response = RestAPIUtil.create(URL, {}, {progressCallback, fileSize: 123}); - expect(response).toExist(); - }); - - it('normal basic save', () => { - const response = RestAPIUtil.save(URL); - expect(response).toExist(); - }); - - it('normal basic delete', () => { - const response = RestAPIUtil.destroy(URL); - expect(response).toExist(); - }); - -}); diff --git a/openecomp-ui/test/utils/uuid.test.js b/openecomp-ui/test/utils/uuid.test.js index cd55baadea..21ac2712de 100644 --- a/openecomp-ui/test/utils/uuid.test.js +++ b/openecomp-ui/test/utils/uuid.test.js @@ -1,50 +1,45 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ +/*! * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ + * * 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 - * + * + * 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. - * ============LICENSE_END========================================================= + * 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 uuid from 'src/nfvo-utils/UUID.js'; -import expect from 'expect'; + describe('UUID', () => { it('function does exist', () => { - expect(uuid).toExist(); + expect(uuid).toBeTruthy(); }); it('generate UUID synchronously', () => { let result = uuid(undefined, true); - expect(result).toExist(); + expect(result).toBeTruthy(); }); it('generate UUID synchronously with number', () => { let result = uuid(5, true); - expect(result).toExist(); + expect(result).toBeTruthy(); }); it('generate UUID synchronously with number', () => { let result = uuid(1, true); - expect(result).toExist(); + expect(result).toBeTruthy(); }); it('generate UUID asynchronously', done => { uuid().then(result => { - expect(result).toExist(); + expect(result).toBeTruthy(); done(); }); }); diff --git a/openecomp-ui/test/utils/validator.test.js b/openecomp-ui/test/utils/validator.test.js new file mode 100644 index 0000000000..4062fa2d07 --- /dev/null +++ b/openecomp-ui/test/utils/validator.test.js @@ -0,0 +1,69 @@ +/*! + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * + * 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 Validator from 'src/nfvo-utils/Validator.js'; + + +describe('Validator ', () => { + + it('class does exist', () => { + expect(Validator).toBeTruthy(); + }); + + it('returns global validation functions', () => { + expect(Validator.globalValidationFunctions).toBeTruthy(); + }); + + it('returns global validation messages', () => { + expect(Validator.globalValidationMessagingFunctions).toBeTruthy(); + }); + + it('validates data per specific types list', () => { + const types = ['required', 'maxLength', 'minLength', 'pattern', 'numeric', 'maximum', 'minimum', + 'alphanumeric', 'alphanumericWithSpaces', 'validateName', 'validateVendorName', 'freeEnglishText', 'email', 'ip', 'url', 'maximumExclusive', 'minimumExclusive']; + + for (let i = 0; i < types.length; i++) { + expect(Validator.globalValidationFunctions[types[i]]).toBeTruthy(); + } + }); + + it('gives validation messages per specific types list', () => { + const types = ['required', 'maxLength', 'minLength', 'pattern', 'numeric', 'maximum', 'minimum', + 'alphanumeric', 'alphanumericWithSpaces', 'validateName', 'validateVendorName', 'freeEnglishText', 'email', 'ip', 'url', 'maximumExclusive', 'minimumExclusive']; + + for (let i = 0; i < types.length; i++) { + expect(Validator.globalValidationFunctions[types[i]]).toBeTruthy(); + } + }); + + it('returns a validation response of {isValid, errorText} when validating only by validator.js', () => { + const result = Validator.validateItem('a', null, 'required'); + const keys = Object.keys(result); + expect(keys.length).toBe(2); + expect(keys).toContain('isValid'); + expect(keys).toContain('errorText'); + }); + + it('returns a validation response of {isValid, errorText} when validating with custom functions', () => { + const errorText = 'ran custom validation'; + const result = Validator.validate('myfield','a', [{type: 'required', data: null}], {}, { 'myfield' : () => { return { isValid: false, errorText};} }); + const keys = Object.keys(result); + expect(keys.length).toBe(2); + expect(keys).toContain('isValid'); + expect(keys).toContain('errorText'); + expect(result.errorText).toBe(errorText); + }); + +}); -- cgit 1.2.3-korg