contensis-management-api
Version:
Client for managing content using the Contensis Management API
216 lines (194 loc) • 8.7 kB
text/typescript
import * as Contensis from '../index';
import { ClientConfig } from './client-config';
const Zengenti = { Contensis };
const global = window || this;
describe('Contensis Client', function () {
beforeEach(() => {
Zengenti.Contensis.Client.defaultClientConfig = null;
spyOn(global, 'fetch').and.callFake((...args) => {
return new Promise((resolve, reject) => {
resolve({
json: () => {
return {
items: []
};
}
} as any);
});
});
});
it('Zengenti exists', () => {
expect(Zengenti).toBeDefined();
});
it('Contensis exists', () => {
expect(Zengenti.Contensis).toBeDefined();
});
it('Contensis Client exists', () => {
expect(Zengenti.Contensis.Client).toBeDefined();
});
it('Contensis Client create exists', () => {
expect(Zengenti.Contensis.Client.create).toBeDefined();
});
it('Static Initial Default Settings', () => {
let defaultSettings = new ClientConfig(null, null);
expect(defaultSettings.rootUrl).toBeNull();
expect(defaultSettings.clientType).toBeNull();
expect(defaultSettings.clientDetails).toBeNull();
expect(defaultSettings.projectId).toBeNull();
expect(defaultSettings.pageIndex).toEqual(0);
expect(defaultSettings.pageSize).toEqual(25);
expect(defaultSettings.responseHandler).toBeNull();
});
describe('Client type set to "client_credentials"', () => {
it('Static Settable Default Settings', () => {
Zengenti.Contensis.Client.configure({
rootUrl: 'http://my-website.com/',
clientType: 'client_credentials',
clientDetails: {
clientId: 'XXXXXX',
clientSecret: 'YYYYYY',
},
projectId: 'myProject',
pageIndex: 1,
pageSize: 50,
responseHandler: {}
});
expect(Zengenti.Contensis.Client.defaultClientConfig.projectId).toEqual('myProject');
expect(Zengenti.Contensis.Client.defaultClientConfig.rootUrl).toEqual('http://my-website.com');
expect(Zengenti.Contensis.Client.defaultClientConfig.clientType).toEqual('client_credentials');
expect(Zengenti.Contensis.Client.defaultClientConfig.clientDetails).toEqual(Object({
clientId: 'XXXXXX',
clientSecret: 'YYYYYY',
}));
expect(Zengenti.Contensis.Client.defaultClientConfig.pageIndex).toEqual(1);
expect(Zengenti.Contensis.Client.defaultClientConfig.pageSize).toEqual(50);
expect(Zengenti.Contensis.Client.defaultClientConfig.responseHandler).toEqual({});
});
it('Instance Default Settings', () => {
Zengenti.Contensis.Client.configure({
rootUrl: 'http://my-website.com/',
clientType: 'client_credentials',
clientDetails: {
clientId: 'YYYYYY',
clientSecret: 'XXXXXX',
},
projectId: 'myProject',
pageIndex: 1,
pageSize: 50
});
let client = Zengenti.Contensis.Client.create();
let params = client.getParams();
expect(params.rootUrl).toEqual('http://my-website.com');
expect(params.clientType).toEqual('client_credentials');
expect(params.clientDetails).toEqual(Object({
clientId: 'YYYYYY',
clientSecret: 'XXXXXX'
}));
expect(params.projectId).toEqual('myProject');
expect(params.pageIndex).toEqual(1);
expect(params.pageSize).toEqual(50);
expect(params.responseHandler).toBeNull();
});
it('Instance Settable Settings', () => {
let client = Zengenti.Contensis.Client.create({
rootUrl: 'http://my-website.com/',
clientType: 'client_credentials',
clientDetails: {
clientId: 'VVVVVV',
clientSecret: 'ZZZZZZ'
},
projectId: 'myProject',
pageIndex: 2,
pageSize: 100,
responseHandler: {}
});
let params = client.getParams();
expect(params.rootUrl).toEqual('http://my-website.com');
expect(params.clientType).toEqual('client_credentials');
expect(params.clientDetails).toEqual(Object({
clientId: 'VVVVVV',
clientSecret: 'ZZZZZZ'
}));
expect(params.projectId).toEqual('myProject');
expect(params.pageIndex).toEqual(2);
expect(params.pageSize).toEqual(100);
expect(params.responseHandler).toEqual({});
});
});
describe('Client type set to "classic"', () => {
it('Static Settable Default Settings', () => {
Zengenti.Contensis.Client.configure({
rootUrl: 'http://my-website.com/',
clientType: 'contensis_classic',
clientDetails: {
username: 'XXXXXX',
password: 'YYYYYY',
},
projectId: 'myProject',
pageIndex: 1,
pageSize: 50,
responseHandler: {}
});
expect(Zengenti.Contensis.Client.defaultClientConfig.projectId).toEqual('myProject');
expect(Zengenti.Contensis.Client.defaultClientConfig.rootUrl).toEqual('http://my-website.com');
expect(Zengenti.Contensis.Client.defaultClientConfig.clientType).toEqual('contensis_classic');
expect(Zengenti.Contensis.Client.defaultClientConfig.clientDetails).toEqual(Object({
username: 'XXXXXX',
password: 'YYYYYY',
}));
expect(Zengenti.Contensis.Client.defaultClientConfig.pageIndex).toEqual(1);
expect(Zengenti.Contensis.Client.defaultClientConfig.pageSize).toEqual(50);
expect(Zengenti.Contensis.Client.defaultClientConfig.responseHandler).toEqual({});
});
it('Instance Default Settings', () => {
Zengenti.Contensis.Client.configure({
rootUrl: 'http://my-website.com/',
clientType: 'contensis_classic',
clientDetails: {
username: 'YYYYYY',
password: 'XXXXXX',
},
projectId: 'myProject',
pageIndex: 1,
pageSize: 50
});
let client = Zengenti.Contensis.Client.create();
let params = client.getParams();
expect(params.rootUrl).toEqual('http://my-website.com');
expect(params.clientType).toEqual('contensis_classic');
expect(params.clientDetails).toEqual(Object({
username: 'YYYYYY',
password: 'XXXXXX'
}));
expect(params.projectId).toEqual('myProject');
expect(params.pageIndex).toEqual(1);
expect(params.pageSize).toEqual(50);
expect(params.responseHandler).toBeNull();
});
it('Instance Settable Settings', () => {
let client = Zengenti.Contensis.Client.create({
rootUrl: 'http://my-website.com/',
clientType: 'contensis_classic',
clientDetails: {
username: 'VVVVVV',
password: 'ZZZZZZ'
},
projectId: 'myProject',
pageIndex: 2,
pageSize: 100,
responseHandler: {}
});
let params = client.getParams();
expect(params.rootUrl).toEqual('http://my-website.com');
expect(params.clientType).toEqual('contensis_classic');
expect(params.clientDetails).toEqual(Object({
username: 'VVVVVV',
password: 'ZZZZZZ'
}));
expect(params.projectId).toEqual('myProject');
expect(params.pageIndex).toEqual(2);
expect(params.pageSize).toEqual(100);
expect(params.responseHandler).toEqual({});
});
});
});