kentico-cloud-delivery
Version:
Official Kentico Cloud Delivery SDK
74 lines • 3.56 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { ContentItem, FieldDecorators, Fields, DeliveryHttpService, sdkInfo, TypeResolver } from '../../../lib';
import { Actor, Context, MockQueryService, setup, warriorMovieJson } from '../../setup';
var MockMovie = /** @class */ (function (_super) {
__extends(MockMovie, _super);
function MockMovie() {
return _super.call(this, {
propertyResolver: function (fieldName) {
if (fieldName === 'title') {
return 'titleTest';
}
// undefined because property resolved is prioritized over field decorator
return undefined;
}
}) || this;
}
__decorate([
FieldDecorators.codename('released'),
__metadata("design:type", Fields.DateTimeField)
], MockMovie.prototype, "test_released");
__decorate([
FieldDecorators.codename('length'),
__metadata("design:type", Fields.NumberField)
], MockMovie.prototype, "justNumber");
return MockMovie;
}(ContentItem));
describe('Property resolver', function () {
var context = new Context();
var typeResolvers = [];
typeResolvers.push(new TypeResolver('movie', function () { return new MockMovie(); }));
typeResolvers.push(new TypeResolver('actor', function () { return new Actor(); }));
context.typeResolvers = typeResolvers;
setup(context);
// mock query service
var mockQueryService = new MockQueryService(context.getConfig(), new DeliveryHttpService(), {
host: sdkInfo.host,
name: sdkInfo.name,
version: sdkInfo.version
});
var response;
beforeAll(function (done) {
response = mockQueryService.mockGetSingleItem(warriorMovieJson, {});
console.warn(response);
done();
});
it("checks field is assigned #1", function () {
expect(response.item.titleTest.text).toEqual('Warrior');
});
it("checks field is assigned #2", function () {
expect(response.item.test_released.datetime).toEqual(new Date('2011-09-09T00:00:00Z'));
});
it("checks field is assigned #3", function () {
expect(response.item.justNumber.number).toEqual(151);
});
});
//# sourceMappingURL=property-resolver.spec.js.map