mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +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 { 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, {
|
||||||
|
@@ -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();
|
||||||
|
@@ -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);
|
||||||
});
|
});
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user