kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
117 lines • 5.38 kB
JavaScript
exports.__esModule = true;
var lib_1 = require("../../../lib");
var setup_1 = require("../../setup");
describe('Item url parameters', function () {
var context = new setup_1.Context();
setup_1.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', lib_1.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', lib_1.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, lib_1.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 ', lib_1.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 lib_1.Parameters.ElementsParameter(undefined).getParamValue()).toEqual('');
});
});
//# sourceMappingURL=item-url-parameters.spec.js.map
;