aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-ui/test/utils
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-ui/test/utils')
-rw-r--r--openecomp-ui/test/utils/errorResponseHandler.test.js135
-rw-r--r--openecomp-ui/test/utils/restApiUtil.test.js149
-rw-r--r--openecomp-ui/test/utils/uuid.test.js52
3 files changed, 336 insertions, 0 deletions
diff --git a/openecomp-ui/test/utils/errorResponseHandler.test.js b/openecomp-ui/test/utils/errorResponseHandler.test.js
new file mode 100644
index 0000000000..fd9dec6a8d
--- /dev/null
+++ b/openecomp-ui/test/utils/errorResponseHandler.test.js
@@ -0,0 +1,135 @@
+/*-
+ * ============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 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';
+
+describe('Error Response Handler Util', () => {
+
+ beforeEach(function () {
+ deepFreeze(store.getState());
+ });
+
+ it('validating error in policyException', done => {
+ let textStatus = '', errorThrown = '';
+ let xhr = {
+ responseJSON: {
+ requestError: {
+ policyException: {
+ messageId: 'SVC4122',
+ text: 'Error: Invalid data.'
+ }
+ }
+ }
+ };
+ deepFreeze(xhr);
+
+ const errorNotification = {
+ type: 'error', title: 'Error: SVC4122', msg: 'Error: Invalid data.', timeout: undefined,
+ validationResponse: undefined
+ };
+ const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification);
+
+ errorResponseHandler(xhr, textStatus, errorThrown);
+
+ setTimeout(function () {
+ expect(store.getState()).toEqual(expectedStore);
+ done();
+ }, 100);
+ });
+
+ it('validating error in serviceException with variables', done => {
+ let textStatus = '', errorThrown = '';
+ let xhr = {
+ responseJSON: {
+ requestError: {
+ serviceException: {
+ messageId: 'SVC4122',
+ text: "Error: Invalid artifact type '%1'.",
+ variables: ['newType']
+ }
+ }
+ }
+ };
+ deepFreeze(xhr);
+
+ const errorNotification = {
+ type: 'error', title: 'Error: SVC4122', msg: 'Error: Invalid artifact type newType.', timeout: undefined,
+ validationResponse: undefined
+ };
+ const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification);
+
+ errorResponseHandler(xhr, textStatus, errorThrown);
+
+ setTimeout(function () {
+ expect(store.getState()).toEqual(expectedStore);
+ done();
+ }, 100);
+ });
+
+ it('validating error in response', done => {
+ let textStatus = '', errorThrown = '';
+ let xhr = {
+ responseJSON: {
+ status: 'AA',
+ message: 'Error: Invalid data.'
+ }
+ };
+ deepFreeze(xhr);
+
+ const errorNotification = {
+ type: 'error', title: 'AA', msg: 'Error: Invalid data.', timeout: undefined,
+ validationResponse: undefined
+ };
+ const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification);
+
+ errorResponseHandler(xhr, textStatus, errorThrown);
+
+ setTimeout(function () {
+ expect(store.getState()).toEqual(expectedStore);
+ done();
+ }, 100);
+ });
+
+ it('validating error in request', done => {
+ let textStatus = '', errorThrown = '';
+ let xhr = {
+ statusText: '500',
+ responseText: 'Internal server error.'
+ };
+ deepFreeze(xhr);
+
+ const errorNotification = {
+ type: 'error', title: '500', msg: 'Internal server error.', timeout: undefined,
+ validationResponse: undefined
+ };
+ const expectedStore = cloneAndSet(store.getState(), 'notification', errorNotification);
+
+ errorResponseHandler(xhr, textStatus, errorThrown);
+
+ setTimeout(function () {
+ expect(store.getState()).toEqual(expectedStore);
+ done();
+ }, 100);
+ });
+});
diff --git a/openecomp-ui/test/utils/restApiUtil.test.js b/openecomp-ui/test/utils/restApiUtil.test.js
new file mode 100644
index 0000000000..2a5e69b02e
--- /dev/null
+++ b/openecomp-ui/test/utils/restApiUtil.test.js
@@ -0,0 +1,149 @@
+/*-
+ * ============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
new file mode 100644
index 0000000000..cd55baadea
--- /dev/null
+++ b/openecomp-ui/test/utils/uuid.test.js
@@ -0,0 +1,52 @@
+/*-
+ * ============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 uuid from 'src/nfvo-utils/UUID.js';
+import expect from 'expect';
+
+describe('UUID', () => {
+
+ it('function does exist', () => {
+ expect(uuid).toExist();
+ });
+
+ it('generate UUID synchronously', () => {
+ let result = uuid(undefined, true);
+ expect(result).toExist();
+ });
+
+ it('generate UUID synchronously with number', () => {
+ let result = uuid(5, true);
+ expect(result).toExist();
+ });
+
+ it('generate UUID synchronously with number', () => {
+ let result = uuid(1, true);
+ expect(result).toExist();
+ });
+
+ it('generate UUID asynchronously', done => {
+ uuid().then(result => {
+ expect(result).toExist();
+ done();
+ });
+ });
+
+});