mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
* Add the api to fetch the bpm properties * remove useless map * Use latest api * Use the BehaviorSubject * filter the status true
227 lines
7.9 KiB
TypeScript
227 lines
7.9 KiB
TypeScript
/*!
|
|
* @license
|
|
* Copyright 2019 Alfresco Software, Ltd.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { TestBed } from '@angular/core/testing';
|
|
import { BpmProductVersionModel, EcmProductVersionModel } from '../models/product-version.model';
|
|
import { AppConfigService } from '../app-config/app-config.service';
|
|
import { DiscoveryApiService } from './discovery-api.service';
|
|
import { setupTestBed } from '../testing/setup-test-bed';
|
|
import { CoreTestingModule } from '../testing/core.testing.module';
|
|
import { SystemPropertiesRepresentation } from '@alfresco/js-api';
|
|
|
|
declare let jasmine: any;
|
|
|
|
const fakeEcmDiscoveryResponse: any = {
|
|
'entry': {
|
|
'repository': {
|
|
'edition': 'FAKE',
|
|
'version': {
|
|
'major': '5',
|
|
'minor': '2',
|
|
'patch': '0',
|
|
'hotfix': '0',
|
|
'schema': 999999,
|
|
'label': 'r134899-b26',
|
|
'display': '5.2.0.0 (r134899-b26) schema 10005'
|
|
},
|
|
'license': {
|
|
'issuedAt': '2017-06-22T10:56:45.796+0000',
|
|
'expiresAt': '2017-07-22T00:00:00.000+0000',
|
|
'remainingDays': 4,
|
|
'holder': 'Trial User',
|
|
'mode': 'ENTERPRISE',
|
|
'entitlements': {
|
|
'isClusterEnabled': false,
|
|
'isCryptodocEnabled': false
|
|
}
|
|
},
|
|
'status': {
|
|
'isReadOnly': false,
|
|
'isAuditEnabled': true,
|
|
'isQuickShareEnabled': true,
|
|
'isThumbnailGenerationEnabled': true
|
|
},
|
|
'modules': [
|
|
{
|
|
'id': 'alfresco-fake-services',
|
|
'title': 'Alfresco Share Services AMP',
|
|
'description': 'Module to be applied to alfresco.war, containing APIs for Alfresco Share',
|
|
'version': '5.2.0',
|
|
'installDate': '2017-03-07T08:48:14.161+0000',
|
|
'installState': 'INSTALLED',
|
|
'versionMin': '5.1',
|
|
'versionMax': '999'
|
|
},
|
|
{
|
|
'id': 'alfresco-trashcan-fake',
|
|
'title': 'alfresco-trashcan-cleaner project',
|
|
'description': 'The Alfresco Trash Can Cleaner (Alfresco Module)',
|
|
'version': '2.2',
|
|
'installState': 'UNKNOWN',
|
|
'versionMin': '0',
|
|
'versionMax': '999'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
};
|
|
|
|
const fakeBPMDiscoveryResponse: any = {
|
|
'revisionVersion': '2',
|
|
'edition': 'SUPER FAKE EDITION',
|
|
'type': 'bpmSuite',
|
|
'majorVersion': '1',
|
|
'minorVersion': '6'
|
|
};
|
|
|
|
const fakeBPMDiscoverySystemPropertyResponse: any = {
|
|
'allowInvolveByEmail': true,
|
|
'disableJavaScriptEventsInFormEditor': false,
|
|
'logoutDisabled': false,
|
|
'authConfiguration': {
|
|
'authUrl': 'fakeAuthUrl',
|
|
'realm': 'fakeRealm',
|
|
'clientId': 'fakeClient',
|
|
'useBrowserLogout': true
|
|
}
|
|
};
|
|
|
|
describe('Discovery Api Service', () => {
|
|
|
|
let service;
|
|
|
|
setupTestBed({
|
|
imports: [CoreTestingModule]
|
|
});
|
|
|
|
beforeEach(() => {
|
|
const appConfig: AppConfigService = TestBed.get(AppConfigService);
|
|
appConfig.config = {
|
|
ecmHost: 'http://localhost:9876/ecm'
|
|
};
|
|
service = TestBed.get(DiscoveryApiService);
|
|
jasmine.Ajax.install();
|
|
});
|
|
|
|
afterEach(() => {
|
|
jasmine.Ajax.uninstall();
|
|
});
|
|
|
|
describe('For ECM', () => {
|
|
it('Should retrieve the info about the product for ECM', (done) => {
|
|
service.getEcmProductInfo().subscribe((data: EcmProductVersionModel) => {
|
|
expect(data).not.toBeNull();
|
|
expect(data.edition).toBe('FAKE');
|
|
expect(data.version.schema).toBe(999999);
|
|
expect(data.license.isClusterEnabled).toBeFalsy();
|
|
expect(data.status.isQuickShareEnabled).toBeTruthy();
|
|
expect(data.modules.length).toBe(2);
|
|
expect(data.modules[0].id).toBe('alfresco-fake-services');
|
|
expect(data.modules[1].id).toBe('alfresco-trashcan-fake');
|
|
done();
|
|
});
|
|
|
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
|
status: 200,
|
|
contentType: 'json',
|
|
responseText: fakeEcmDiscoveryResponse
|
|
});
|
|
});
|
|
|
|
it('getEcmProductInfo catch errors call', (done) => {
|
|
service.getEcmProductInfo().subscribe(
|
|
() => {
|
|
},
|
|
() => {
|
|
done();
|
|
});
|
|
|
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
|
status: 403
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('For BPM', () => {
|
|
it('Should retrieve the info about the product for BPM', (done) => {
|
|
service.getBpmProductInfo().subscribe((data: BpmProductVersionModel) => {
|
|
expect(data).not.toBeNull();
|
|
expect(data.edition).toBe('SUPER FAKE EDITION');
|
|
expect(data.revisionVersion).toBe('2');
|
|
expect(data.type).toBe('bpmSuite');
|
|
done();
|
|
});
|
|
|
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
|
status: 200,
|
|
contentType: 'json',
|
|
responseText: fakeBPMDiscoveryResponse
|
|
});
|
|
});
|
|
|
|
it('getBpmProductInfo catch errors call', (done) => {
|
|
service.getBpmProductInfo().subscribe(
|
|
() => {
|
|
},
|
|
() => {
|
|
done();
|
|
});
|
|
|
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
|
status: 403
|
|
});
|
|
});
|
|
|
|
it('Should retrieve the system properties for BPM', (done) => {
|
|
service.getBPMSystemProperties().subscribe((data: SystemPropertiesRepresentation) => {
|
|
expect(data).not.toBeNull();
|
|
expect(data.allowInvolveByEmail).toBe(true);
|
|
expect(data.disableJavaScriptEventsInFormEditor).toBe(false);
|
|
expect(data.logoutDisabled).toBe(false);
|
|
expect(data.authConfiguration.authUrl).toBe('fakeAuthUrl');
|
|
expect(data.authConfiguration.realm).toBe('fakeRealm');
|
|
expect(data.authConfiguration.clientId).toBe('fakeClient');
|
|
expect(data.authConfiguration.useBrowserLogout).toBe(true);
|
|
done();
|
|
});
|
|
|
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
|
status: 200,
|
|
contentType: 'json',
|
|
responseText: fakeBPMDiscoverySystemPropertyResponse
|
|
});
|
|
});
|
|
|
|
it('Should retrieve the system properties for BPM', (done) => {
|
|
service.getBPMSystemProperties().subscribe(
|
|
() => {
|
|
fail('expected an error, bpm not running');
|
|
},
|
|
(error) => {
|
|
expect(error.response.statusCode).toEqual(404);
|
|
expect(error.response.statusText).toEqual('Not Found');
|
|
done();
|
|
});
|
|
|
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
|
status: 404,
|
|
statusText: 'Not Found'
|
|
});
|
|
});
|
|
});
|
|
});
|