UNPKG

kentico-cloud-delivery

Version:

Official Kentico Cloud Delivery SDK

174 lines 7.62 kB
"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