blob: 2a5e69b02e9c21bed933c9f8504f7de11a508ea5 [file] [log] [blame]
/*-
* ============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();
});
});