Files
dspace-angular/src/app/core/index/index.selectors.spec.ts
2021-03-11 16:41:22 +01:00

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);
});
});
});