alfresco-ng2-components/lib/core/api/alfresco-api/alfresco-api.utils.spec.ts

100 lines
3.2 KiB
TypeScript

/*!
* @license
* Copyright 2019 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 { isConstructor, getQueryParamsWithCustomEncoder, removeNilValues } from './alfresco-api.utils';
describe('AlfrescoApiUtils', () => {
describe('isConstructor', () => {
class MockClass {}
function mockFUnction() {}
it('should return true for class and functions', () => {
expect(isConstructor(MockClass)).toBe(true);
expect(isConstructor(mockFUnction)).toBe(true);
});
it('should return false for instances of a class/function', () => {
expect(isConstructor(new MockClass())).toBe(false);
expect(isConstructor(new mockFUnction())).toBe(false);
});
it('should return false for object', () => {
expect(isConstructor({})).toBe(false);
});
it('should return false for primitive types', () => {
expect(isConstructor('test')).toBe(false);
expect(isConstructor(1)).toBe(false);
expect(isConstructor(true)).toBe(false);
expect(isConstructor(false)).toBe(false);
expect(isConstructor(null)).toBe(false);
expect(isConstructor(undefined)).toBe(false);
});
});
describe('getQueryParamsWithCustomEncoder', () => {
it('should return queryParams with removed undefined values', () => {
const actual = getQueryParamsWithCustomEncoder({
key1: 'value1',
key2: undefined
});
expect(actual?.has('key2')).toBe(false);
});
it('should handle array values', () => {
const actual = getQueryParamsWithCustomEncoder({
key1: 'value1',
key2: [undefined, 'value2', null, 'value3', '']
});
expect(actual?.get('key2')).toEqual('value2');
expect(actual?.getAll('key2')).toEqual(['value2', 'value3']);
});
});
describe('removeUndefinedValues', () => {
it('should return queryParams with removed undefined values', () => {
const actual = removeNilValues({
key1: 'value1',
key2: undefined,
key3: null
});
expect(actual).toEqual({
key1: 'value1'
});
});
it('should handle array values', () => {
const actual = getQueryParamsWithCustomEncoder({
key1: 'value1',
key2: [undefined, 'value2', null, 'value3', '']
});
expect(actual?.get('key2')).toEqual('value2');
expect(actual?.getAll('key2')).toEqual(['value2', 'value3']);
});
});
});