contensis-management-api
Version:
Client for managing content using the Contensis Management API
697 lines (696 loc) • 42.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Contensis = require("../index");
const specs_utils_spec_1 = require("../specs-utils.spec");
const cross_fetch_1 = require("cross-fetch");
const contensis_core_api_1 = require("contensis-core-api");
const Zengenti = { Contensis };
const global = window || this;
global.fetch = cross_fetch_1.default;
describe('Entry Operations', () => {
describe('Get entry', () => {
beforeEach(() => {
(0, specs_utils_spec_1.setDefaultSpy)(global, {
title: 'Entry1'
});
Zengenti.Contensis.Client.defaultClientConfig = null;
Zengenti.Contensis.Client.configure({
fetchFn: global.fetch
});
});
it('by id', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entry = await client.entries.get('1');
expect(global.fetch).toHaveBeenCalledTimes(2);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/entries/1?language=en-US&versionStatus=published',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entry).not.toBeNull();
expect(entry['title']).toEqual('Entry1');
});
it('with options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entry = await client.entries.get({
id: '1',
versionStatus: 'latest',
version: '2.1',
language: 'en-GB'
});
expect(global.fetch).toHaveBeenCalledTimes(2);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/entries/1?language=en-GB&version=2.1',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entry).not.toBeNull();
expect(entry['title']).toEqual('Entry1');
});
});
describe('List entries', () => {
beforeEach(() => {
(0, specs_utils_spec_1.setDefaultSpy)(global, {
pageCount: 1,
pageIndex: 0,
pageSize: 25,
totalCount: 2,
items: [{
title: 'entry1'
}, {
title: 'entry2'
}]
});
Zengenti.Contensis.Client.defaultClientConfig = null;
Zengenti.Contensis.Client.configure({
fetchFn: global.fetch
});
});
it('with no content type and default options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entries = await client.entries.list();
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/entries?language=en-US&pageIndex=0&pageSize=25&versionStatus=published',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with no content type and specific options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entries = await client.entries.list({
versionStatus: 'latest',
pageOptions: { pageIndex: 1, pageSize: 50 },
order: ['title'],
language: 'fr-FR',
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/entries?language=fr-FR&order=title&pageIndex=1&pageSize=50',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with content type and default options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entries = await client.entries.list('movie');
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/contenttypes/movie/entries?language=en-US&pageIndex=0&pageSize=25&versionStatus=published',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with content type and specific options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entries = await client.entries.list({
contentTypeId: 'movie',
versionStatus: 'latest',
pageOptions: { pageIndex: 1, pageSize: 50 },
order: ['title'],
language: 'fr-FR',
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/contenttypes/movie/entries?language=fr-FR&order=title&pageIndex=1&pageSize=50',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
});
describe('Get entry usage', () => {
beforeEach(() => {
(0, specs_utils_spec_1.setDefaultSpy)(global, {
pageIndex: 0,
pageSize: 25,
totalCount: 2,
items: [{
title: 'entry1'
}, {
title: 'entry2'
}]
});
Zengenti.Contensis.Client.defaultClientConfig = null;
Zengenti.Contensis.Client.configure({
fetchFn: global.fetch
});
});
it('by id', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entries = await client.entries.getUsage('1');
expect(global.fetch).toHaveBeenCalledTimes(2);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/entries/1/usage?language=en-US&pageIndex=0&pageSize=25&versionStatus=published',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let entries = await client.entries.getUsage({
id: '1',
versionStatus: 'latest',
pageOptions: { pageIndex: 1, pageSize: 50 },
language: 'fr-FR',
});
expect(global.fetch).toHaveBeenCalledTimes(2);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
'http://my-website.com/api/management/projects/myProject/entries/1/usage?language=fr-FR&pageIndex=1&pageSize=50',
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
});
describe('Search entries', () => {
beforeEach(() => {
(0, specs_utils_spec_1.setDefaultSpy)(global, {
pageCount: 1,
pageIndex: 0,
pageSize: 25,
totalCount: 2,
items: [{
title: 'entry1'
}, {
title: 'entry2'
}]
});
Zengenti.Contensis.Client.defaultClientConfig = null;
Zengenti.Contensis.Client.configure({
fetchFn: global.fetch
});
});
it('with query as Object', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let orderBy = [{
asc: 'name'
}, {
desc: 'brewTypeCount'
}];
let where = [{
field: 'brewTypeCount',
greaterThan: 5
}, {
field: 'Origin',
in: ['Peru', 'Columbia']
}];
let aggregations = { tags: { field: 'testField' } };
let query = {
pageIndex: 1,
pageSize: 50,
orderBy,
where,
aggregations
};
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)(Object.assign(Object.assign({}, query), { orderBy: JSON.stringify(orderBy), where: JSON.stringify(where), aggregations: JSON.stringify(aggregations) }));
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as the default Query instance', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let query = new Contensis.Query();
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 0,
pageSize: 20,
where: JSON.stringify([])
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as a specific Query instance', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let query = new Contensis.Query(Contensis.Op.startsWith('authorName', 'W'));
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
orderBy: JSON.stringify([{
asc: 'authorName'
}]),
where: JSON.stringify([{
field: 'authorName',
startsWith: 'W'
}])
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with aggregations using a Query instance', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let aggregations = {
tags: { field: 'testField' }
};
let query = new Contensis.Query(Contensis.Op.startsWith('authorName', 'W'));
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
query.aggregations = aggregations;
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
orderBy: JSON.stringify([{
asc: 'authorName'
}]),
where: JSON.stringify([{
field: 'authorName',
startsWith: 'W'
}]),
aggregations: JSON.stringify(aggregations)
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Object for distanceWithin operator', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let orderBy = [{
asc: 'authorName'
}];
let where = [{
field: 'authorLocation',
distanceWithin: {
lat: 52.377,
lon: -2.749,
distance: '10mi'
}
}];
let query = {
pageIndex: 1,
pageSize: 50,
orderBy,
where
};
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)(Object.assign(Object.assign({}, query), { orderBy: JSON.stringify(orderBy), where: JSON.stringify(where) }));
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Query instance distanceWithin operator', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let query = new Contensis.Query(Contensis.Op.distanceWithin('authorLocation', 52.377, -2.749, '10mi'));
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
orderBy: JSON.stringify([{
asc: 'authorName'
}]),
where: JSON.stringify([{
field: 'authorLocation',
distanceWithin: {
lat: 52.377,
lon: -2.749,
distance: '10mi'
}
}])
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Object for freeText non-fuzzy operator', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let orderBy = [{
asc: 'authorName'
}];
let where = [{
field: 'authorLocation',
freeText: {
term: 'term1'
}
}];
let query = {
pageIndex: 1,
pageSize: 50,
orderBy,
where
};
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)(Object.assign(Object.assign({}, query), { orderBy: JSON.stringify(orderBy), where: JSON.stringify(where) }));
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Object for freeText fuzzy operator', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let orderBy = [{
asc: 'authorName'
}];
let where = [{
field: 'authorLocation',
freeText: {
term: 'term1',
fuzzy: true,
operator: 'or'
}
}];
let query = {
pageIndex: 1,
pageSize: 50,
orderBy,
where
};
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)(Object.assign(Object.assign({}, query), { orderBy: JSON.stringify(orderBy), where: JSON.stringify(where) }));
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Query instance for freeText non-fuzzy operator', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let query = new Contensis.Query(Contensis.Op.freeText('authorLocation', 'term1'));
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
orderBy: JSON.stringify([{
asc: 'authorName'
}]),
where: JSON.stringify([{
field: 'authorLocation',
freeText: {
term: 'term1',
fuzzy: false,
operator: contensis_core_api_1.FreeTextSearchOperatorTypeEnum.And
}
}])
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Query instance for freeText fuzzy operator', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let query = new Contensis.Query(Contensis.Op.freeText('authorLocation', 'term1', true, contensis_core_api_1.FreeTextSearchOperatorTypeEnum.Or));
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
orderBy: JSON.stringify([{
asc: 'authorName'
}]),
where: JSON.stringify([{
field: 'authorLocation',
freeText: {
term: 'term1',
fuzzy: true,
operator: contensis_core_api_1.FreeTextSearchOperatorTypeEnum.Or
}
}])
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as a ZenqlQuery instance', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let zenqlQuery = new Contensis.ZenqlQuery('sys.version.modified > -30d');
zenqlQuery.pageIndex = 1;
zenqlQuery.pageSize = 50;
let entries = await client.entries.search(zenqlQuery);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
zenql: zenqlQuery.zenql
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as a ZenqlQuery instance with all options', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let aggregations = {
tags: { field: 'testField' }
};
let zenqlQuery = new Contensis.ZenqlQuery('sys.version.modified > -30d');
zenqlQuery.pageIndex = 1;
zenqlQuery.pageSize = 50;
zenqlQuery.includeArchived = true;
zenqlQuery.includeDeleted = true;
zenqlQuery.aggregations = aggregations;
let entries = await client.entries.search(zenqlQuery);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
zenql: zenqlQuery.zenql,
includeArchived: true,
includeDeleted: true,
aggregations: JSON.stringify(aggregations)
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as a ZenqlQuery string ', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let zenqlQueryString = 'sys.version.modified > -30d';
let entries = await client.entries.search(zenqlQueryString);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 0,
pageSize: 20,
zenql: zenqlQueryString
});
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries${expectedQueryString}`,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
});
describe('Search entries in IE browser', () => {
beforeEach(() => {
(0, specs_utils_spec_1.setDefaultSpy)(global, {
pageCount: 1,
pageIndex: 0,
pageSize: 25,
totalCount: 2,
items: [{
title: 'entry1'
}, {
title: 'entry2'
}]
});
Zengenti.Contensis.Client.defaultClientConfig = null;
Zengenti.Contensis.Client.configure({
fetchFn: global.fetch
});
global.document.documentMode = 11;
});
it('with query as Object and url length = 2083', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let orderBy = [{
asc: 'authorName'
}];
// use string with length = 1795
let where = [{
field: 'authorName',
startsWith: 'n123XX8OFpCGJg0OJXfKRRoOk69tWiEfnqi2y5eElXQP1ZjTo0MsozSnWSJqdAvXefl0wmmELbyRArciCS4heXVw9XvYGqKsHM0X4eOxWpP8Otz8OoRApVGiPWeL6nzxblSDcP58qh8wkgUGWPHg21WGrgduYXpvFDdKnAwF1z6YKBMv7sOaVTHowp6mpzndOqUn6caURbF3Ob4ybumG1vl8BEvfwRjpjpAuULobQLN9pt31BoosToBWLdvrkDhSeNPLzltvMIBVGOVn97zWvdsuAg4wxznEz8rLvLK48hLdN4BJ3eWYkfhfk8TbUkDt82ZQwXCmdTpqP6ODPKRc4qkglAabHjUBwOzz9QCwxp7xeupfPWgDQlHCYHsKQ5X7xsWa5hl7RWpQXoajFhZoHomyvJxN9Q3kTccqeiVjzWN6BitsqCN8Kp4NJE7qFOzXSFn01NUv1Yqb8LpoxZ0lMcy1aWtOtdOtnjBLncS6iFR4IVuogl2Z8eJ7aDCdubM7OODjwtQqUSqnZGmsraC8WTxsmXDLIsTz4w2paulihOl2jaxtIRCO4TKGUX9m5MOHa1YPqJYQ8ettJj120uek2fk8bMAg9ykT0TDsmfzy33yfc6rz0nuBK40FGLJefNsYF7iTbLS5QAKiErSlRmTTCtGNK8pVxDpbNOoovXS4KcpSGmVxSotUvhBKDHuQy5ise8RQgCKyD67Z8FiAboqgo0nUe7nNNdL6Gmwesa5JISPVxkcgcWddYvX28TsjE5aLGZX7B8luxlQpRZ0xXBhkyCVobWPTu1W2ZltbpxcK8tdkrYaOGZXpGOTfeXChw11eccepN3MsJDBaghvfeSUgu6sEcpwy3kORPIYxhVaC1UI4r6xRRu8aXMDDTQQW7JhPIXKfQgoEbjxSVp9nHMCQDZpqBK0Z8bejfjnavlTS90ZNVPuDrqL0XEWcbg6d5ARJUl6VWWLJzktH5Jp1WuQoPrl5lb0mXm5bhW61EXK2LLmGPCafkksGsDjSqOOgD5eIttQvwuA1b9Czbs7Zzlub3sbHJ00e0hsoZwx2cJVWbP5PBRDwGtcj25fnY0s8FcSO59669R7gShdTR5jfWtk5VKKnTimosZ4bRscGL8if1Wx0Mvapbl3AubcOJm03HngzgHgjLUpM1UrPAyCn8kxwdx6ROw9e02ssMgAkoh9B9mecXFgl9TqxlG5jSbXQtvNiLWzSUnqeugCXcl2O6fhpnKCNpIW6PoAI1mbwBK5qxumQMKqKix964TOiCWfWUNnOBkcXVPVzzqPA1yLNn87KgVuODm9VpZnnoHSbnAzeLGb7vTZb1ITOP8MNnAPWrvlqvypjMtkLLtZg2r7nGEHLMD76ELxzKC3Zg269m3EW47wPKam9HuWMGjqnD0BghH5zlnRRxHVNgg5JZI5URcgGa6LfXh4zymO2xqSql1YAltvO7lHaIEnF2edze6KvEFJj1smsn57AWsEqs85zYg6MxkctOcQ0lxqv6s9y7Z7pcWbU0k8pmccUm3EDUideWwDnoftuUwIGVfnJrpZn7ihhVzEOB8ojbuGrO41mHZNa8tSlXz6cfg2LXRrRgWRFBMdkswg73HmVaDuvbF2LkwFjoPweHuh62uQb88gOg2Hbbip9212Mnx9gzed81bIRS5yvODYk50LJ7o9zkv3WPGIekAnMJgDVCBsekNxnR3XR0jMCLZx4t73Hm93vb7T8uzyylrbJz2BWyk1EpZ22uynFyIitDpAYHe483oeYwhfKfJPdKjaYsYZAM1ZKdfwK5o0vaRW',
}];
let aggregations = {
tags: { field: 'testField' }
};
let query = {
pageIndex: 1,
pageSize: 50,
orderBy,
where,
aggregations
};
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)(Object.assign(Object.assign({}, query), { orderBy: JSON.stringify(orderBy), where: JSON.stringify(where), aggregations: JSON.stringify(aggregations) }));
let url = `http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`;
expect(url.length).toEqual(2083);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
url,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Object and url length > 2083', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
let orderBy = [{
asc: 'authorName'
}];
// use string with length = 1796
let where = [{
field: 'authorName',
startsWith: 'n1234XX8OFpCGJg0OJXfKRRoOk69tWiEfnqi2y5eElXQP1ZjTo0MsozSnWSJqdAvXefl0wmmELbyRArciCS4heXVw9XvYGqKsHM0X4eOxWpP8Otz8OoRApVGiPWeL6nzxblSDcP58qh8wkgUGWPHg21WGrgduYXpvFDdKnAwF1z6YKBMv7sOaVTHowp6mpzndOqUn6caURbF3Ob4ybumG1vl8BEvfwRjpjpAuULobQLN9pt31BoosToBWLdvrkDhSeNPLzltvMIBVGOVn97zWvdsuAg4wxznEz8rLvLK48hLdN4BJ3eWYkfhfk8TbUkDt82ZQwXCmdTpqP6ODPKRc4qkglAabHjUBwOzz9QCwxp7xeupfPWgDQlHCYHsKQ5X7xsWa5hl7RWpQXoajFhZoHomyvJxN9Q3kTccqeiVjzWN6BitsqCN8Kp4NJE7qFOzXSFn01NUv1Yqb8LpoxZ0lMcy1aWtOtdOtnjBLncS6iFR4IVuogl2Z8eJ7aDCdubM7OODjwtQqUSqnZGmsraC8WTxsmXDLIsTz4w2paulihOl2jaxtIRCO4TKGUX9m5MOHa1YPqJYQ8ettJj120uek2fk8bMAg9ykT0TDsmfzy33yfc6rz0nuBK40FGLJefNsYF7iTbLS5QAKiErSlRmTTCtGNK8pVxDpbNOoovXS4KcpSGmVxSotUvhBKDHuQy5ise8RQgCKyD67Z8FiAboqgo0nUe7nNNdL6Gmwesa5JISPVxkcgcWddYvX28TsjE5aLGZX7B8luxlQpRZ0xXBhkyCVobWPTu1W2ZltbpxcK8tdkrYaOGZXpGOTfeXChw11eccepN3MsJDBaghvfeSUgu6sEcpwy3kORPIYxhVaC1UI4r6xRRu8aXMDDTQQW7JhPIXKfQgoEbjxSVp9nHMCQDZpqBK0Z8bejfjnavlTS90ZNVPuDrqL0XEWcbg6d5ARJUl6VWWLJzktH5Jp1WuQoPrl5lb0mXm5bhW61EXK2LLmGPCafkksGsDjSqOOgD5eIttQvwuA1b9Czbs7Zzlub3sbHJ00e0hsoZwx2cJVWbP5PBRDwGtcj25fnY0s8FcSO59669R7gShdTR5jfWtk5VKKnTimosZ4bRscGL8if1Wx0Mvapbl3AubcOJm03HngzgHgjLUpM1UrPAyCn8kxwdx6ROw9e02ssMgAkoh9B9mecXFgl9TqxlG5jSbXQtvNiLWzSUnqeugCXcl2O6fhpnKCNpIW6PoAI1mbwBK5qxumQMKqKix964TOiCWfWUNnOBkcXVPVzzqPA1yLNn87KgVuODm9VpZnnoHSbnAzeLGb7vTZb1ITOP8MNnAPWrvlqvypjMtkLLtZg2r7nGEHLMD76ELxzKC3Zg269m3EW47wPKam9HuWMGjqnD0BghH5zlnRRxHVNgg5JZI5URcgGa6LfXh4zymO2xqSql1YAltvO7lHaIEnF2edze6KvEFJj1smsn57AWsEqs85zYg6MxkctOcQ0lxqv6s9y7Z7pcWbU0k8pmccUm3EDUideWwDnoftuUwIGVfnJrpZn7ihhVzEOB8ojbuGrO41mHZNa8tSlXz6cfg2LXRrRgWRFBMdkswg73HmVaDuvbF2LkwFjoPweHuh62uQb88gOg2Hbbip9212Mnx9gzed81bIRS5yvODYk50LJ7o9zkv3WPGIekAnMJgDVCBsekNxnR3XR0jMCLZx4t73Hm93vb7T8uzyylrbJz2BWyk1EpZ22uynFyIitDpAYHe483oeYwhfKfJPdKjaYsYZAM1ZKdfwK5o0vaRW',
}];
let aggregations = {
tags: { field: 'testField' }
};
let query = {
pageIndex: 1,
pageSize: 50,
orderBy,
where,
aggregations
};
let entries = await client.entries.search(query);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search`,
(0, specs_utils_spec_1.getDefaultFetchRequest)('POST', false, JSON.stringify(query))
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Query instance and url length = 2083', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
// use string with length = 1795
const startsWithText = 'n123XX8OFpCGJg0OJXfKRRoOk69tWiEfnqi2y5eElXQP1ZjTo0MsozSnWSJqdAvXefl0wmmELbyRArciCS4heXVw9XvYGqKsHM0X4eOxWpP8Otz8OoRApVGiPWeL6nzxblSDcP58qh8wkgUGWPHg21WGrgduYXpvFDdKnAwF1z6YKBMv7sOaVTHowp6mpzndOqUn6caURbF3Ob4ybumG1vl8BEvfwRjpjpAuULobQLN9pt31BoosToBWLdvrkDhSeNPLzltvMIBVGOVn97zWvdsuAg4wxznEz8rLvLK48hLdN4BJ3eWYkfhfk8TbUkDt82ZQwXCmdTpqP6ODPKRc4qkglAabHjUBwOzz9QCwxp7xeupfPWgDQlHCYHsKQ5X7xsWa5hl7RWpQXoajFhZoHomyvJxN9Q3kTccqeiVjzWN6BitsqCN8Kp4NJE7qFOzXSFn01NUv1Yqb8LpoxZ0lMcy1aWtOtdOtnjBLncS6iFR4IVuogl2Z8eJ7aDCdubM7OODjwtQqUSqnZGmsraC8WTxsmXDLIsTz4w2paulihOl2jaxtIRCO4TKGUX9m5MOHa1YPqJYQ8ettJj120uek2fk8bMAg9ykT0TDsmfzy33yfc6rz0nuBK40FGLJefNsYF7iTbLS5QAKiErSlRmTTCtGNK8pVxDpbNOoovXS4KcpSGmVxSotUvhBKDHuQy5ise8RQgCKyD67Z8FiAboqgo0nUe7nNNdL6Gmwesa5JISPVxkcgcWddYvX28TsjE5aLGZX7B8luxlQpRZ0xXBhkyCVobWPTu1W2ZltbpxcK8tdkrYaOGZXpGOTfeXChw11eccepN3MsJDBaghvfeSUgu6sEcpwy3kORPIYxhVaC1UI4r6xRRu8aXMDDTQQW7JhPIXKfQgoEbjxSVp9nHMCQDZpqBK0Z8bejfjnavlTS90ZNVPuDrqL0XEWcbg6d5ARJUl6VWWLJzktH5Jp1WuQoPrl5lb0mXm5bhW61EXK2LLmGPCafkksGsDjSqOOgD5eIttQvwuA1b9Czbs7Zzlub3sbHJ00e0hsoZwx2cJVWbP5PBRDwGtcj25fnY0s8FcSO59669R7gShdTR5jfWtk5VKKnTimosZ4bRscGL8if1Wx0Mvapbl3AubcOJm03HngzgHgjLUpM1UrPAyCn8kxwdx6ROw9e02ssMgAkoh9B9mecXFgl9TqxlG5jSbXQtvNiLWzSUnqeugCXcl2O6fhpnKCNpIW6PoAI1mbwBK5qxumQMKqKix964TOiCWfWUNnOBkcXVPVzzqPA1yLNn87KgVuODm9VpZnnoHSbnAzeLGb7vTZb1ITOP8MNnAPWrvlqvypjMtkLLtZg2r7nGEHLMD76ELxzKC3Zg269m3EW47wPKam9HuWMGjqnD0BghH5zlnRRxHVNgg5JZI5URcgGa6LfXh4zymO2xqSql1YAltvO7lHaIEnF2edze6KvEFJj1smsn57AWsEqs85zYg6MxkctOcQ0lxqv6s9y7Z7pcWbU0k8pmccUm3EDUideWwDnoftuUwIGVfnJrpZn7ihhVzEOB8ojbuGrO41mHZNa8tSlXz6cfg2LXRrRgWRFBMdkswg73HmVaDuvbF2LkwFjoPweHuh62uQb88gOg2Hbbip9212Mnx9gzed81bIRS5yvODYk50LJ7o9zkv3WPGIekAnMJgDVCBsekNxnR3XR0jMCLZx4t73Hm93vb7T8uzyylrbJz2BWyk1EpZ22uynFyIitDpAYHe483oeYwhfKfJPdKjaYsYZAM1ZKdfwK5o0vaRW';
let query = new Contensis.Query(Contensis.Op.startsWith('authorName', startsWithText));
let aggregations = {
tags: { field: 'testField' }
};
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
query.aggregations = aggregations;
let entries = await client.entries.search(query);
let expectedQueryString = (0, contensis_core_api_1.toQuery)({
pageIndex: 1,
pageSize: 50,
orderBy: JSON.stringify([{
asc: 'authorName'
}]),
where: JSON.stringify([{
field: 'authorName',
startsWith: startsWithText
}]),
aggregations: JSON.stringify(aggregations)
});
let url = `http://my-website.com/api/management/projects/myProject/entries/search${expectedQueryString}`;
expect(url.length).toEqual(2083);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
url,
(0, specs_utils_spec_1.getDefaultFetchRequest)()
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
it('with query as Query instance and url length > 2083', async () => {
let client = Zengenti.Contensis.Client.create((0, specs_utils_spec_1.getDefaultConfig)());
// use string with length = 1796
const startsWithText = 'n1234XX8OFpCGJg0OJXfKRRoOk69tWiEfnqi2y5eElXQP1ZjTo0MsozSnWSJqdAvXefl0wmmELbyRArciCS4heXVw9XvYGqKsHM0X4eOxWpP8Otz8OoRApVGiPWeL6nzxblSDcP58qh8wkgUGWPHg21WGrgduYXpvFDdKnAwF1z6YKBMv7sOaVTHowp6mpzndOqUn6caURbF3Ob4ybumG1vl8BEvfwRjpjpAuULobQLN9pt31BoosToBWLdvrkDhSeNPLzltvMIBVGOVn97zWvdsuAg4wxznEz8rLvLK48hLdN4BJ3eWYkfhfk8TbUkDt82ZQwXCmdTpqP6ODPKRc4qkglAabHjUBwOzz9QCwxp7xeupfPWgDQlHCYHsKQ5X7xsWa5hl7RWpQXoajFhZoHomyvJxN9Q3kTccqeiVjzWN6BitsqCN8Kp4NJE7qFOzXSFn01NUv1Yqb8LpoxZ0lMcy1aWtOtdOtnjBLncS6iFR4IVuogl2Z8eJ7aDCdubM7OODjwtQqUSqnZGmsraC8WTxsmXDLIsTz4w2paulihOl2jaxtIRCO4TKGUX9m5MOHa1YPqJYQ8ettJj120uek2fk8bMAg9ykT0TDsmfzy33yfc6rz0nuBK40FGLJefNsYF7iTbLS5QAKiErSlRmTTCtGNK8pVxDpbNOoovXS4KcpSGmVxSotUvhBKDHuQy5ise8RQgCKyD67Z8FiAboqgo0nUe7nNNdL6Gmwesa5JISPVxkcgcWddYvX28TsjE5aLGZX7B8luxlQpRZ0xXBhkyCVobWPTu1W2ZltbpxcK8tdkrYaOGZXpGOTfeXChw11eccepN3MsJDBaghvfeSUgu6sEcpwy3kORPIYxhVaC1UI4r6xRRu8aXMDDTQQW7JhPIXKfQgoEbjxSVp9nHMCQDZpqBK0Z8bejfjnavlTS90ZNVPuDrqL0XEWcbg6d5ARJUl6VWWLJzktH5Jp1WuQoPrl5lb0mXm5bhW61EXK2LLmGPCafkksGsDjSqOOgD5eIttQvwuA1b9Czbs7Zzlub3sbHJ00e0hsoZwx2cJVWbP5PBRDwGtcj25fnY0s8FcSO59669R7gShdTR5jfWtk5VKKnTimosZ4bRscGL8if1Wx0Mvapbl3AubcOJm03HngzgHgjLUpM1UrPAyCn8kxwdx6ROw9e02ssMgAkoh9B9mecXFgl9TqxlG5jSbXQtvNiLWzSUnqeugCXcl2O6fhpnKCNpIW6PoAI1mbwBK5qxumQMKqKix964TOiCWfWUNnOBkcXVPVzzqPA1yLNn87KgVuODm9VpZnnoHSbnAzeLGb7vTZb1ITOP8MNnAPWrvlqvypjMtkLLtZg2r7nGEHLMD76ELxzKC3Zg269m3EW47wPKam9HuWMGjqnD0BghH5zlnRRxHVNgg5JZI5URcgGa6LfXh4zymO2xqSql1YAltvO7lHaIEnF2edze6KvEFJj1smsn57AWsEqs85zYg6MxkctOcQ0lxqv6s9y7Z7pcWbU0k8pmccUm3EDUideWwDnoftuUwIGVfnJrpZn7ihhVzEOB8ojbuGrO41mHZNa8tSlXz6cfg2LXRrRgWRFBMdkswg73HmVaDuvbF2LkwFjoPweHuh62uQb88gOg2Hbbip9212Mnx9gzed81bIRS5yvODYk50LJ7o9zkv3WPGIekAnMJgDVCBsekNxnR3XR0jMCLZx4t73Hm93vb7T8uzyylrbJz2BWyk1EpZ22uynFyIitDpAYHe483oeYwhfKfJPdKjaYsYZAM1ZKdfwK5o0vaRW';
let query = new Contensis.Query(Contensis.Op.startsWith('authorName', startsWithText));
let aggregations = {
tags: { field: 'testField' }
};
query.orderBy = Contensis.OrderBy.asc('authorName');
query.pageIndex = 1;
query.pageSize = 50;
query.aggregations = aggregations;
let entries = await client.entries.search(query);
expect(global.fetch.calls.first().args[0]).toEqual((0, specs_utils_spec_1.getDefaultAuthenticateUrl)());
expect(global.fetch.calls.mostRecent().args).toEqual([
`http://my-website.com/api/management/projects/myProject/entries/search`,
(0, specs_utils_spec_1.getDefaultFetchRequest)('POST', false, JSON.stringify(query))
]);
expect(entries).not.toBeNull();
expect(entries.items.length).toEqual(2);
expect(entries.items[1].title).toEqual('entry2');
});
});
});