[CST-4499] Version history - Fixes and tests

This commit is contained in:
Davide Negretti
2021-09-29 18:28:26 +02:00
parent ca9ca0105e
commit 8a38d06318
4 changed files with 48 additions and 34 deletions

View File

@@ -31,6 +31,10 @@ import { createRelationshipsObservable } from '../shared/item.component.spec';
import { UntypedItemComponent } from './untyped-item.component';
import { VersionHistoryDataService } from '../../../../core/data/version-history-data.service';
import { VersionDataService } from '../../../../core/data/version-data.service';
import { RouterTestingModule } from '@angular/router/testing';
import { WorkspaceitemDataService } from '../../../../core/submission/workspaceitem-data.service';
import { SearchService } from '../../../../core/shared/search/search.service';
import { ItemVersionsSharedService } from '../../../../shared/item/item-versions/item-versions-shared.service';
const mockItem: Item = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -49,12 +53,15 @@ describe('UntypedItemComponent', () => {
}
};
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLoaderMock
}
})],
}),
RouterTestingModule,
],
declarations: [UntypedItemComponent, GenericItemPageFieldComponent, TruncatePipe ],
providers: [
{ provide: ItemDataService, useValue: {} },
@@ -73,6 +80,10 @@ describe('UntypedItemComponent', () => {
{ provide: VersionHistoryDataService, useValue: {} },
{ provide: VersionDataService, useValue: {} },
{ provide: BitstreamDataService, useValue: mockBitstreamDataService },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: ItemDataService, useValue: {} },
{ provide: ItemVersionsSharedService, useValue: {} },
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(UntypedItemComponent, {

View File

@@ -12,6 +12,11 @@ import { buildPaginatedList } from '../../../../core/data/paginated-list.model';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { MetadataMap } from '../../../../core/shared/metadata.models';
import { createRelationshipsObservable } from '../shared/item.component.spec';
import { RouterTestingModule } from '@angular/router/testing';
import { Component } from '@angular/core';
import { WorkspaceitemDataService } from '../../../../core/submission/workspaceitem-data.service';
import { SearchService } from '../../../../core/shared/search/search.service';
import { ItemDataService } from '../../../../core/data/item-data.service';
const mockItem: Item = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -19,19 +24,28 @@ const mockItem: Item = Object.assign(new Item(), {
relationships: createRelationshipsObservable()
});
@Component({template: ''})
class DummyComponent {
}
describe('VersionedItemComponent', () => {
let component: VersionedItemComponent;
let fixture: ComponentFixture<VersionedItemComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ VersionedItemComponent ],
declarations: [VersionedItemComponent, DummyComponent],
imports: [RouterTestingModule],
providers: [
{ provide: VersionHistoryDataService, useValue: {} },
{ provide: TranslateService, useValue: {} },
{ provide: VersionDataService, useValue: {} },
{ provide: NotificationsService, useValue: {} },
{ provide: ItemVersionsSharedService, useValue: {} },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: ItemDataService, useValue: {} },
]
})
.compileComponents();

View File

@@ -66,7 +66,6 @@ export class VersionedItemComponent extends ItemComponent {
getFirstSucceededRemoteDataPayload<WorkspaceItem>(),
).subscribe((wsItem) => {
const wsiId = wsItem.id;
console.log(wsiId);
const route = 'workspaceitems/' + wsiId + '/edit';
this.router.navigateByUrl(route);
});

View File

@@ -225,24 +225,16 @@ export class ItemVersionsComponent implements OnInit {
this.versionService.findById(this.versionBeingEditedId).pipe(
getFirstSucceededRemoteData(),
).subscribe(
(findRes) => {
const updatedVersion =
Object.assign({}, findRes.payload, {
summary: this.versionBeingEditedSummary,
});
this.versionService.update(updatedVersion).pipe(take(1)).subscribe(
(updateRes) => {
if (updateRes.hasSucceeded) {
switchMap((findRes: RemoteData<Version>) => {
const payload = findRes.payload;
const summary = {summary: this.versionBeingEditedSummary,};
const updatedVersion = Object.assign({}, payload, summary);
return this.versionService.update(updatedVersion).pipe(getFirstCompletedRemoteData<Version>());
}),
).subscribe((updatedVersionRD: RemoteData<Version>) => {
if (updatedVersionRD.hasSucceeded) {
this.notificationsService.success(null, this.translateService.get(successMessageKey, {'version': this.versionBeingEditedNumber}));
// const versionHistory$ = this.versionHistoryRD$.pipe(
// getAllSucceededRemoteData(),
// getRemoteDataPayload(),
// hasValueOperator(),
// );
// this.getAllVersions(versionHistory$);
this.getAllVersions(this.versionHistoryRD$.pipe(getFirstSucceededRemoteDataPayload()));
} else {
this.notificationsService.warning(null, this.translateService.get(failureMessageKey, {'version': this.versionBeingEditedNumber}));
}
@@ -250,8 +242,6 @@ export class ItemVersionsComponent implements OnInit {
}
);
}
);
}
/**
* Delete the item and get the result of the operation