mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
[CST-4499] Version history - Fixes and tests
This commit is contained in:
@@ -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, {
|
||||
|
@@ -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();
|
||||
|
@@ -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);
|
||||
});
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user