mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
68 lines
2.6 KiB
TypeScript
68 lines
2.6 KiB
TypeScript
import { getEmbedSizeParams, getUrlWithoutEmbedParams } from './index.selectors';
|
|
|
|
|
|
describe(`index selectors`, () => {
|
|
|
|
describe(`getUrlWithoutEmbedParams`, () => {
|
|
|
|
it(`should return a url without its embed params`, () => {
|
|
const source = 'https://rest.api/resource?a=1&embed=2&b=3&embed=4/5&c=6&embed=7/8/9';
|
|
const result = getUrlWithoutEmbedParams(source);
|
|
expect(result).toBe('https://rest.api/resource?a=1&b=3&c=6');
|
|
});
|
|
|
|
it(`should return a url without embed params unmodified`, () => {
|
|
const source = 'https://rest.api/resource?a=1&b=3&c=6';
|
|
const result = getUrlWithoutEmbedParams(source);
|
|
expect(result).toBe(source);
|
|
});
|
|
|
|
it(`should return a string that isn't a url unmodified`, () => {
|
|
const source = 'a=1&embed=2&b=3&embed=4/5&c=6&embed=7/8/9';
|
|
const result = getUrlWithoutEmbedParams(source);
|
|
expect(result).toBe(source);
|
|
});
|
|
|
|
it(`should return undefined or null unmodified`, () => {
|
|
expect(getUrlWithoutEmbedParams(undefined)).toBe(undefined);
|
|
expect(getUrlWithoutEmbedParams(null)).toBe(null);
|
|
});
|
|
|
|
});
|
|
|
|
describe(`getEmbedSizeParams`, () => {
|
|
|
|
it(`url with single embed size param => should return list with ['subcommunities' - size]`, () => {
|
|
const source = 'https://rest.api/core/communities/search/top?page=0&size=50&sort=dc.title,ASC&embed.size=subcommunities=5&embed=subcommunities';
|
|
const result = getEmbedSizeParams(source);
|
|
expect(result).toHaveSize(1);
|
|
expect(result[0]).toEqual({name: 'subcommunities', size: 5});
|
|
});
|
|
|
|
it(`url with multiple embed size param => should return list with {name, size}`, () => {
|
|
const source = 'https://rest.api/core/communities/search/top?page=0&size=50&sort=dc.title,ASC&embed.size=subcommunities=5&embed=subcommunities&embed.size=collections=1&embed=collections';
|
|
const result = getEmbedSizeParams(source);
|
|
expect(result).toHaveSize(2);
|
|
expect(result[0]).toEqual({name: 'subcommunities', size: 5});
|
|
expect(result[1]).toEqual({name: 'collections', size: 1});
|
|
});
|
|
|
|
it(`url without params => should return empty list`, () => {
|
|
const source = 'https://rest.api/core/collections/uuid';
|
|
expect(getEmbedSizeParams(source)).toHaveSize(0);
|
|
});
|
|
|
|
it(`url without embed size params => should return empty list`, () => {
|
|
const source = 'https://rest.api/core/collections/uuid?page=0&size=50';
|
|
expect(getEmbedSizeParams(source)).toHaveSize(0);
|
|
});
|
|
|
|
it(`undefined or null url => should return empty list`, () => {
|
|
expect(getEmbedSizeParams(undefined)).toHaveSize(0);
|
|
expect(getEmbedSizeParams(null)).toHaveSize(0);
|
|
});
|
|
|
|
});
|
|
|
|
});
|