[ADF-2672] version manager fixes (#3169)

* fix app config, add extra flags for version manager

* add docs and tests

* update i18n strings

* rename "id" to "nodeId"

* automatically detect permissions

* restore 'id' and mark as deprecated
This commit is contained in:
Denys Vuika
2018-04-11 17:34:45 +01:00
committed by Eugenio Romano
parent 8b4af90b46
commit aba9f41af1
16 changed files with 117 additions and 89 deletions

View File

@@ -52,7 +52,7 @@ describe('VersionListComponent', () => {
dialog = TestBed.get(MatDialog);
component = fixture.componentInstance;
component.id = nodeId;
component.node = { id: nodeId, allowableOperations: [ 'update' ] };
spyOn(component, 'downloadContent').and.stub();
});
@@ -64,7 +64,6 @@ describe('VersionListComponent', () => {
}
});
component.allowDelete = true;
component.deleteVersion('1');
expect(dialog.open).toHaveBeenCalled();
@@ -79,12 +78,10 @@ describe('VersionListComponent', () => {
spyOn(alfrescoApiService.versionsApi, 'deleteVersion').and.returnValue(Promise.resolve(true));
component.id = '0';
component.allowDelete = true;
component.deleteVersion('1');
component.deleteVersion(versionId);
expect(dialog.open).toHaveBeenCalled();
expect(alfrescoApiService.versionsApi.deleteVersion).toHaveBeenCalledWith('0', '1');
expect(alfrescoApiService.versionsApi.deleteVersion).toHaveBeenCalledWith(nodeId, versionId);
});
it('should not delete version if user rejects', () => {
@@ -96,9 +93,7 @@ describe('VersionListComponent', () => {
spyOn(alfrescoApiService.versionsApi, 'deleteVersion').and.returnValue(Promise.resolve(true));
component.id = '0';
component.allowDelete = true;
component.deleteVersion('1');
component.deleteVersion(versionId);
expect(dialog.open).toHaveBeenCalled();
expect(alfrescoApiService.versionsApi.deleteVersion).not.toHaveBeenCalled();
@@ -115,15 +110,23 @@ describe('VersionListComponent', () => {
spyOn(alfrescoApiService.versionsApi, 'deleteVersion').and.returnValue(Promise.resolve(true));
component.id = '0';
component.allowDelete = true;
component.deleteVersion('1');
component.deleteVersion(versionId);
tick();
expect(component.loadVersionHistory).toHaveBeenCalled();
}));
it('should reload and raise version-deleted DOM event', (done) => {
spyOn(component, 'loadVersionHistory').and.stub();
fixture.nativeElement.addEventListener('version-deleted', () => {
expect(component.loadVersionHistory).toHaveBeenCalled();
done();
});
fixture.detectChanges();
component.onVersionDeleted();
});
describe('Version history fetching', () => {
it('should use loading bar', () => {
@@ -231,6 +234,23 @@ describe('VersionListComponent', () => {
describe('Version restoring', () => {
it('should reload and raise version-restored DOM event', (done) => {
spyOn(component, 'loadVersionHistory').and.stub();
fixture.nativeElement.addEventListener('version-restored', () => {
expect(component.loadVersionHistory).toHaveBeenCalled();
done();
});
fixture.detectChanges();
component.onVersionRestored();
});
it('should restore version only when restore allowed', () => {
component.node.allowableOperations = [];
spyOn(alfrescoApiService.versionsApi, 'revertVersion').and.stub();
component.restore('1');
expect(alfrescoApiService.versionsApi.revertVersion).not.toHaveBeenCalled();
});
it('should load the versions for a given id', () => {
fixture.detectChanges();
spyOn(alfrescoApiService.versionsApi, 'listVersionHistory').and