mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-2567] delete a version (#3151)
* configuration support for version manager * checkbox for version deletion demo * i18n support for version manager * deleting versions * confirmation dialog for version deletion * readme update * update schema * update code as per code review * update i18n resources for demo shell * unit tests
This commit is contained in:
@@ -16,15 +16,18 @@
|
||||
*/
|
||||
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { async, ComponentFixture, TestBed, tick, fakeAsync } from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { VersionListComponent } from './version-list.component';
|
||||
import { AlfrescoApiService } from '@alfresco/adf-core';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
describe('VersionListComponent', () => {
|
||||
let component: VersionListComponent;
|
||||
let fixture: ComponentFixture<VersionListComponent>;
|
||||
let alfrescoApiService: AlfrescoApiService;
|
||||
let dialog: MatDialog;
|
||||
|
||||
const nodeId = 'test-id';
|
||||
const versionId = '1.0';
|
||||
@@ -46,6 +49,7 @@ describe('VersionListComponent', () => {
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VersionListComponent);
|
||||
alfrescoApiService = TestBed.get(AlfrescoApiService);
|
||||
dialog = TestBed.get(MatDialog);
|
||||
|
||||
component = fixture.componentInstance;
|
||||
component.id = nodeId;
|
||||
@@ -53,6 +57,73 @@ describe('VersionListComponent', () => {
|
||||
spyOn(component, 'downloadContent').and.stub();
|
||||
});
|
||||
|
||||
it('should raise confirmation dialog on delete', () => {
|
||||
spyOn(dialog, 'open').and.returnValue({
|
||||
afterClosed() {
|
||||
return Observable.of(false)
|
||||
}
|
||||
});
|
||||
|
||||
component.allowDelete = true;
|
||||
component.deleteVersion('1');
|
||||
|
||||
expect(dialog.open).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should delete the version if user confirms', () => {
|
||||
spyOn(dialog, 'open').and.returnValue({
|
||||
afterClosed() {
|
||||
return Observable.of(true)
|
||||
}
|
||||
});
|
||||
|
||||
spyOn(alfrescoApiService.versionsApi, 'deleteVersion').and.returnValue(Promise.resolve(true));
|
||||
|
||||
component.id = '0';
|
||||
component.allowDelete = true;
|
||||
component.deleteVersion('1');
|
||||
|
||||
expect(dialog.open).toHaveBeenCalled();
|
||||
expect(alfrescoApiService.versionsApi.deleteVersion).toHaveBeenCalledWith('0', '1');
|
||||
});
|
||||
|
||||
it('should not delete version if user rejects', () => {
|
||||
spyOn(dialog, 'open').and.returnValue({
|
||||
afterClosed() {
|
||||
return Observable.of(false)
|
||||
}
|
||||
});
|
||||
|
||||
spyOn(alfrescoApiService.versionsApi, 'deleteVersion').and.returnValue(Promise.resolve(true));
|
||||
|
||||
component.id = '0';
|
||||
component.allowDelete = true;
|
||||
component.deleteVersion('1');
|
||||
|
||||
expect(dialog.open).toHaveBeenCalled();
|
||||
expect(alfrescoApiService.versionsApi.deleteVersion).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should reload list once a version is deleted', fakeAsync(() => {
|
||||
spyOn(component, 'loadVersionHistory').and.stub();
|
||||
|
||||
spyOn(dialog, 'open').and.returnValue({
|
||||
afterClosed() {
|
||||
return Observable.of(true)
|
||||
}
|
||||
});
|
||||
|
||||
spyOn(alfrescoApiService.versionsApi, 'deleteVersion').and.returnValue(Promise.resolve(true));
|
||||
|
||||
component.id = '0';
|
||||
component.allowDelete = true;
|
||||
component.deleteVersion('1');
|
||||
|
||||
tick()
|
||||
|
||||
expect(component.loadVersionHistory).toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
describe('Version history fetching', () => {
|
||||
|
||||
it('should use loading bar', () => {
|
||||
@@ -149,7 +220,7 @@ describe('VersionListComponent', () => {
|
||||
.callFake(() => Promise.resolve({ list: { entries: [ versionEntry ] }}));
|
||||
const spyOnDownload = spyOn(alfrescoApiService.contentApi, 'getContentUrl').and.stub();
|
||||
|
||||
component.enableDownload = false;
|
||||
component.allowDownload = false;
|
||||
fixture.detectChanges();
|
||||
|
||||
component.downloadVersion('1.0');
|
||||
|
Reference in New Issue
Block a user