kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
174 lines • 7.62 kB
JavaScript
"use strict";
exports.__esModule = true;
var lib_1 = require("../../../lib");
var setup_1 = require("../../setup");
describe('URLSlugField', function () {
var sharedActor = new setup_1.Actor();
var actorId = '3294e4b0-e58b-49d7-85fa-5bc9a86556ec';
sharedActor.system = new lib_1.ContentItemSystemAttributes({
id: actorId,
codename: 'joel',
name: 'Joel',
type: 'actor',
language: 'en',
lastModified: new Date(),
sitemapLocations: []
});
it("checks that field is defined and correct", function () {
var field1 = new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
enableAdvancedLogging: false,
item: sharedActor,
fieldValue: 'actor-slug',
type: 'actor_type',
fieldName: 'name',
linkResolver: function (link) { return 'resolved-link/' + link.urlSlug; }
}); }
});
expect(field1.getUrl()).toEqual('resolved-link/actor-slug');
expect(field1.name).toBeDefined();
});
it("checks that url slug is not resolved when the type is incorrect", function () {
var actor = new setup_1.Actor();
actor.system = new lib_1.ContentItemSystemAttributes({
id: actorId,
codename: 'invalid_actor',
name: 'Joel',
type: 'actor',
language: 'en',
lastModified: new Date(),
sitemapLocations: []
});
var field = new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: actor,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: function (link) {
if (link.type === 'actor') {
return 'actor-link/' + link.urlSlug;
}
return 'unknown-link';
}
}); }
});
expect(field.getUrl()).toEqual('unknown-link');
});
it("url should be undefined when no resolver is passed", function () {
var url = (new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: sharedActor,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: undefined
}); }
})).getUrl();
expect(url).toBeUndefined();
});
it("url should be undefined when invalid item is passed", function () {
var url = (new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: undefined,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: undefined
}); }
})).getUrl();
expect(url).toBeUndefined();
});
it("url should be undefined", function () {
var url = (new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: sharedActor,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: function () { return undefined; }
}); }
})).getUrl();
expect(url).toBeUndefined();
});
it("Checks that console.warn displays/not displays information when url resolving fails due to invalid resolver", function () {
console.warn = jasmine.createSpy('warn');
(new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: sharedActor,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: function () { return undefined; }
}); }
})).getUrl();
expect(console.warn).toHaveBeenCalledTimes(0);
(new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: sharedActor,
enableAdvancedLogging: true,
type: 'actor-type',
linkResolver: function () { return undefined; }
}); }
})).getUrl();
expect(console.warn).toHaveBeenCalledTimes(1);
});
it("Checks that console.warn displays/not displays information when url resolving fails due to invalid item", function () {
console.warn = jasmine.createSpy('warn');
(new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: undefined,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: function () { return undefined; }
}); }
})).getUrl();
expect(console.warn).toHaveBeenCalledTimes(0);
(new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: undefined,
enableAdvancedLogging: true,
type: 'actor-type',
linkResolver: function () { return undefined; }
}); }
})).getUrl();
expect(console.warn).toHaveBeenCalledTimes(1);
});
it("Checks that console.warn displays information that url was resolved to improper value", function () {
console.warn = jasmine.createSpy('warn');
(new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: sharedActor,
enableAdvancedLogging: false,
type: 'actor-type',
linkResolver: function () { return 'test'; }
}); }
})).getUrl();
expect(console.warn).toHaveBeenCalledTimes(0);
(new lib_1.Fields.UrlSlugField('name', 'actor-slug', {
resolveUrl: function () { return lib_1.urlSlugResolver.resolveUrl({
fieldValue: 'actor-slug',
fieldName: 'name',
item: sharedActor,
enableAdvancedLogging: true,
type: 'actor-type',
linkResolver: function () { return ''; }
}); }
})).getUrl();
expect(console.warn).toHaveBeenCalledTimes(1);
});
});
//# sourceMappingURL=url-slug.spec.js.map