[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 { UntypedItemComponent } from './untyped-item.component';
import { VersionHistoryDataService } from '../../../../core/data/version-history-data.service'; import { VersionHistoryDataService } from '../../../../core/data/version-history-data.service';
import { VersionDataService } from '../../../../core/data/version-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(), { const mockItem: Item = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -49,12 +53,15 @@ describe('UntypedItemComponent', () => {
} }
}; };
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [TranslateModule.forRoot({ imports: [
TranslateModule.forRoot({
loader: { loader: {
provide: TranslateLoader, provide: TranslateLoader,
useClass: TranslateLoaderMock useClass: TranslateLoaderMock
} }
})], }),
RouterTestingModule,
],
declarations: [UntypedItemComponent, GenericItemPageFieldComponent, TruncatePipe ], declarations: [UntypedItemComponent, GenericItemPageFieldComponent, TruncatePipe ],
providers: [ providers: [
{ provide: ItemDataService, useValue: {} }, { provide: ItemDataService, useValue: {} },
@@ -73,6 +80,10 @@ describe('UntypedItemComponent', () => {
{ provide: VersionHistoryDataService, useValue: {} }, { provide: VersionHistoryDataService, useValue: {} },
{ provide: VersionDataService, useValue: {} }, { provide: VersionDataService, useValue: {} },
{ provide: BitstreamDataService, useValue: mockBitstreamDataService }, { provide: BitstreamDataService, useValue: mockBitstreamDataService },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: ItemDataService, useValue: {} },
{ provide: ItemVersionsSharedService, useValue: {} },
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(UntypedItemComponent, { }).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 { PageInfo } from '../../../../core/shared/page-info.model';
import { MetadataMap } from '../../../../core/shared/metadata.models'; import { MetadataMap } from '../../../../core/shared/metadata.models';
import { createRelationshipsObservable } from '../shared/item.component.spec'; 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(), { const mockItem: Item = Object.assign(new Item(), {
bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [])),
@@ -19,19 +24,28 @@ const mockItem: Item = Object.assign(new Item(), {
relationships: createRelationshipsObservable() relationships: createRelationshipsObservable()
}); });
@Component({template: ''})
class DummyComponent {
}
describe('VersionedItemComponent', () => { describe('VersionedItemComponent', () => {
let component: VersionedItemComponent; let component: VersionedItemComponent;
let fixture: ComponentFixture<VersionedItemComponent>; let fixture: ComponentFixture<VersionedItemComponent>;
beforeEach(async () => { beforeEach(async () => {
await TestBed.configureTestingModule({ await TestBed.configureTestingModule({
declarations: [ VersionedItemComponent ], declarations: [VersionedItemComponent, DummyComponent],
imports: [RouterTestingModule],
providers: [ providers: [
{ provide: VersionHistoryDataService, useValue: {} }, { provide: VersionHistoryDataService, useValue: {} },
{ provide: TranslateService, useValue: {} }, { provide: TranslateService, useValue: {} },
{ provide: VersionDataService, useValue: {} }, { provide: VersionDataService, useValue: {} },
{ provide: NotificationsService, useValue: {} }, { provide: NotificationsService, useValue: {} },
{ provide: ItemVersionsSharedService, useValue: {} }, { provide: ItemVersionsSharedService, useValue: {} },
{ provide: WorkspaceitemDataService, useValue: {} },
{ provide: SearchService, useValue: {} },
{ provide: ItemDataService, useValue: {} },
] ]
}) })
.compileComponents(); .compileComponents();

View File

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

View File

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