UNPKG

kentico-cloud-delivery

Version:

Official Kentico Cloud Delivery SDK

115 lines 5.32 kB
import { Parameters, SortOrder } from '../../../lib'; import { Context, setup } from '../../setup'; describe('Item url parameters', function () { var context = new Context(); setup(context); it("depth param should be set", function () { var url = new URL(context.deliveryClient.items() .depthParameter(1) .getUrl()); var param = url.searchParams.get('depth'); expect(param).toEqual('1'); }); it("negative depth parameter should throw error", function () { expect(function () { return context.deliveryClient.items().depthParameter(-1); }).toThrowError(); }); it("multiple elements param should be set", function () { var url = new URL(context.deliveryClient.items() .elementsParameter(['elem1', 'elem2']) .getUrl()); var param = url.searchParams.get('elements'); expect(param).toEqual('elem1,elem2'); }); it("single elements param should be set", function () { var url = new URL(context.deliveryClient.items() .elementsParameter(['elem1']) .getUrl()); var param = url.searchParams.get('elements'); expect(param).toEqual('elem1'); }); it("limit parameter should be set", function () { var url = new URL(context.deliveryClient.items() .limitParameter(1) .getUrl()); var param = url.searchParams.get('limit'); expect(param).toEqual('1'); }); it("negative limit parameter should throw error", function () { expect(function () { return context.deliveryClient.items().limitParameter(-1); }).toThrowError(); }); it("order (desc) parameter should be set", function () { var url = new URL(context.deliveryClient.items() .orderParameter('elem1', SortOrder.desc) .getUrl()); var param = url.searchParams.get('order'); expect(param).toEqual('elem1[desc]'); }); it("order (asc) parameter should be set", function () { var url = new URL(context.deliveryClient.items() .orderParameter('elem1', SortOrder.asc) .getUrl()); var param = url.searchParams.get('order'); expect(param).toEqual('elem1[asc]'); }); it("order parameter with null 'SortOrder should be default to 'asc'", function () { var url = new URL(context.deliveryClient.items() .orderParameter('elem1', null) .getUrl()); var param = url.searchParams.get('order'); expect(param).toEqual('elem1[asc]'); }); it("skip parameter should be set", function () { var url = new URL(context.deliveryClient.items() .skipParameter(1) .getUrl()); var param = url.searchParams.get('skip'); expect(param).toEqual('1'); }); it("skip parameter with negative skip should throw error", function () { expect(function () { return context.deliveryClient.items().skipParameter(-1); }).toThrowError(); }); it("language parameter should be set", function () { var url = new URL(context.deliveryClient.items() .languageParameter('en') .getUrl()); var param = url.searchParams.get('language'); expect(param).toEqual('en'); }); // Null parameter checks it("order parameter with null or empty field should throw an error", function () { expect(function () { return context.deliveryClient.items().orderParameter(null, SortOrder.asc); }).toThrowError(); }); it("elements parameter with empty or not set elements should throw error", function () { expect(function () { return context.deliveryClient.items().elementsParameter([null]).getUrl(); }).toThrowError(); }); it("language parameter with empty or not set elements should throw error", function () { expect(function () { return context.deliveryClient.items().languageParameter(null).getUrl(); }).toThrowError(); }); // trim checks it("elementsParameter should trim its field codenames", function () { var url = new URL(context.deliveryClient.items() .elementsParameter([' elem1', 'elem2', ' elem3']) .getUrl()); var param = url.searchParams.get('elements'); expect(param).toEqual('elem1,elem2,elem3'); }); it("orderParameter should trim its field", function () { var url = new URL(context.deliveryClient.items() .orderParameter(' elem1 ', SortOrder.asc) .getUrl()); var param = url.searchParams.get('order'); expect(param).toEqual('elem1[asc]'); }); it("language parameter should trim its field", function () { var url = new URL(context.deliveryClient.items() .languageParameter(' en ') .getUrl()); var param = url.searchParams.get('language'); expect(param).toEqual('en'); }); // empty value checks it("ElementsParameter without value should return empty string as param value", function () { expect(new Parameters.ElementsParameter(undefined).getParamValue()).toEqual(''); }); }); //# sourceMappingURL=item-url-parameters.spec.js.map