| /*- |
| * ============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(); |
| }); |
| |
| }); |