fixed remaining issues and tests

This commit is contained in:
lotte
2019-06-25 11:17:22 +02:00
parent f980b55c1c
commit 4106e7cb21
10 changed files with 53 additions and 19 deletions

View File

@@ -295,8 +295,7 @@ export class SearchService implements OnDestroy {
const scopeObject: Observable<RemoteData<DSpaceObject>> = this.dspaceObjectService.findById(scopeId).pipe(getSucceededRemoteData());
const scopeList: Observable<DSpaceObject[]> = scopeObject.pipe(
switchMap((dsoRD: RemoteData<DSpaceObject>) => {
console.log((dsoRD.payload as any).type);
if ((dsoRD.payload as any).type === Community.type) {
if ((dsoRD.payload as any).type === Community.type.value) {
const community: Community = dsoRD.payload as Community;
return observableCombineLatest(community.subcommunities, community.collections).pipe(
map(([subCommunities, collections]) => {

View File

@@ -8,8 +8,8 @@ import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { PaginatedList } from '../data/paginated-list';
import { PageInfo } from '../shared/page-info.model';
import { NormalizedSubmissionDefinitionsModel } from './models/normalized-config-submission-definitions.model';
import { NormalizedSubmissionSectionModel } from './models/normalized-config-submission-section.model';
import { NormalizedSubmissionDefinitionModel } from './models/normalized-config-submission-definition.model';
describe('ConfigResponseParsingService', () => {
let service: ConfigResponseParsingService;
@@ -173,7 +173,7 @@ describe('ConfigResponseParsingService', () => {
self: 'https://rest.api/config/submissiondefinitions/traditional/sections'
});
const definitions =
Object.assign(new NormalizedSubmissionDefinitionsModel(), {
Object.assign(new NormalizedSubmissionDefinitionModel(), {
isDefault: true,
name: 'traditional',
type: 'submissiondefinition',

View File

@@ -42,7 +42,7 @@ export class IntegrationResponseParsingService extends BaseResponseParsingServic
protected processResponse(data: PaginatedList<IntegrationModel>): any {
const returnList = Array.of();
data.page.forEach((item, index) => {
if (item.type === AuthorityValue.type) {
if (item.type === AuthorityValue.type.value) {
data.page[index] = Object.assign(new AuthorityValue(), item);
}
});

View File

@@ -5,10 +5,8 @@ import { DSOSelectorComponent } from './dso-selector.component';
import { SearchService } from '../../../+search-page/search-service/search.service';
import { DSpaceObjectType } from '../../../core/shared/dspace-object-type.model';
import { PaginatedSearchOptions } from '../../../+search-page/paginated-search-options.model';
import { RemoteData } from '../../../core/data/remote-data';
import { ItemSearchResult } from '../../object-collection/shared/item-search-result.model';
import { Item } from '../../../core/shared/item.model';
import { of as observableOf } from 'rxjs';
import { PaginatedList } from '../../../core/data/paginated-list';
import { MetadataValue } from '../../../core/shared/metadata.models';
import { createSuccessfulRemoteDataObject$ } from '../../testing/utils';
@@ -51,7 +49,7 @@ describe('DSOSelectorComponent', () => {
component = fixture.componentInstance;
debugElement = fixture.debugElement;
component.currentDSOId = currentDSOId;
component.value = type;
component.type = type;
fixture.detectChanges();
});
@@ -69,6 +67,4 @@ describe('DSOSelectorComponent', () => {
expect(searchService.search).toHaveBeenCalledWith(searchOptions);
});
})
;
});

View File

@@ -11,13 +11,13 @@ import { MockTranslateLoader } from '../../mocks/mock-translate-loader';
import { NotificationsService } from '../../notifications/notifications.service';
import { NotificationsServiceStub } from '../../testing/notifications-service-stub';
import { RouterStub } from '../../testing/router-stub';
import { RemoteData } from '../../../core/data/remote-data';
import { Item } from '../../../core/shared/item.model';
import { ClaimedTaskDataService } from '../../../core/tasks/claimed-task-data.service';
import { ClaimedTaskActionsComponent } from './claimed-task-actions.component';
import { ClaimedTask } from '../../../core/tasks/models/claimed-task-object.model';
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
import { createSuccessfulRemoteDataObject } from '../../testing/utils';
import { CoreModule } from '../../../core/core.module';
let component: ClaimedTaskActionsComponent;
let fixture: ComponentFixture<ClaimedTaskActionsComponent>;
@@ -26,7 +26,7 @@ let mockObject: ClaimedTask;
let notificationsServiceStub: NotificationsServiceStub;
let router: RouterStub;
const mockDataService = jasmine.createSpyObj('PoolTaskDataService', {
const mockDataService = jasmine.createSpyObj('ClaimedTaskDataService', {
approveTask: jasmine.createSpy('approveTask'),
rejectTask: jasmine.createSpy('rejectTask'),
returnToPoolTask: jasmine.createSpy('returnToPoolTask'),
@@ -66,7 +66,7 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
mockObject = Object.assign(new ClaimedTask(), { workflowitem: observableOf(rdWorkflowitem), id: '1234' });
fdescribe('ClaimedTaskActionsComponent', () => {
describe('ClaimedTaskActionsComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [

View File

@@ -12,7 +12,6 @@ import { isNotUndefined } from '../../empty.util';
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
import { RemoteData } from '../../../core/data/remote-data';
import { MyDSpaceActionsComponent } from '../mydspace-actions';
import { ResourceType } from '../../../core/shared/resource-type';
import { NotificationsService } from '../../notifications/notifications.service';
/**

View File

@@ -0,0 +1,41 @@
import { DataService } from '../../core/data/data.service';
import { ResourceType } from '../../core/shared/resource-type';
import { WorkspaceitemDataService } from '../../core/submission/workspaceitem-data.service';
import { ClaimedTaskDataService } from '../../core/tasks/claimed-task-data.service';
import { PoolTaskDataService } from '../../core/tasks/pool-task-data.service';
import { WorkflowItemDataService } from '../../core/submission/workflowitem-data.service';
import { CacheableObject } from '../../core/cache/object-cache.reducer';
import { ItemDataService } from '../../core/data/item-data.service';
import { Item } from '../../core/shared/item.model';
import { PoolTask } from '../../core/tasks/models/pool-task-object.model';
import { ClaimedTask } from '../../core/tasks/models/claimed-task-object.model';
import { WorkspaceItem } from '../../core/submission/models/workspaceitem.model';
import { WorkflowItem } from '../../core/submission/models/workflowitem.model';
/**
* Class to return DataService for given ResourceType
*/
export class MydspaceActionsServiceFactory<T extends CacheableObject, TService extends DataService<T>> {
public getConstructor(type: ResourceType): TService {
switch (type) {
case Item.type: {
return ItemDataService as any;
}
case WorkspaceItem.type: {
return WorkspaceitemDataService as any;
}
case WorkflowItem.type: {
return WorkflowItemDataService as any;
}
case ClaimedTask.type: {
return ClaimedTaskDataService as any;
}
case PoolTask.type: {
return PoolTaskDataService as any;
}
default: {
return undefined;
}
}
}
}

View File

@@ -3,6 +3,7 @@ import { Injector, Input } from '@angular/core';
import { find } from 'rxjs/operators';
import { MydspaceActionsServiceFactory } from './mydspace-actions-service.factory';
import { RemoteData } from '../../core/data/remote-data';
import { DataService } from '../../core/data/data.service';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
@@ -10,7 +11,6 @@ import { ResourceType } from '../../core/shared/resource-type';
import { NotificationOptions } from '../notifications/models/notification-options.model';
import { NotificationsService } from '../notifications/notifications.service';
import { TranslateService } from '@ngx-translate/core';
import { getMapsToType } from '../../core/cache/builders/build-decorators';
/**
* Abstract class for all different representations of mydspace actions
@@ -42,7 +42,8 @@ export abstract class MyDSpaceActionsComponent<T extends DSpaceObject, TService
protected router: Router,
protected notificationsService: NotificationsService,
protected translate: TranslateService) {
this.objectDataService = injector.get(getMapsToType(objectType));
const factory = new MydspaceActionsServiceFactory<T, TService>();
this.objectDataService = injector.get(factory.getConstructor(objectType));
}
/**

View File

@@ -11,7 +11,6 @@ import { MockTranslateLoader } from '../../mocks/mock-translate-loader';
import { NotificationsService } from '../../notifications/notifications.service';
import { NotificationsServiceStub } from '../../testing/notifications-service-stub';
import { RouterStub } from '../../testing/router-stub';
import { RemoteData } from '../../../core/data/remote-data';
import { Item } from '../../../core/shared/item.model';
import { PoolTaskDataService } from '../../../core/tasks/pool-task-data.service';
import { PoolTaskActionsComponent } from './pool-task-actions.component';

View File

@@ -12,7 +12,6 @@ import { PoolTask } from '../../../core/tasks/models/pool-task-object.model';
import { PoolTaskDataService } from '../../../core/tasks/pool-task-data.service';
import { isNotUndefined } from '../../empty.util';
import { MyDSpaceActionsComponent } from '../mydspace-actions';
import { ResourceType } from '../../../core/shared/resource-type';
import { NotificationsService } from '../../notifications/notifications.service';
/**