@@ -4,33 +4,36 @@ import { of as observableOf } from 'rxjs';
44import { buildPaginatedList } from '../../../core/data/paginated-list.model' ;
55import { TranslateModule } from '@ngx-translate/core' ;
66import { CommonModule } from '@angular/common' ;
7- import { ActivatedRoute , Router } from '@angular/router' ;
7+ import { ActivatedRoute } from '@angular/router' ;
88import { By } from '@angular/platform-browser' ;
99import { RegistryService } from '../../../core/registry/registry.service' ;
1010import { NgbModule } from '@ng-bootstrap/ng-bootstrap' ;
1111import { EnumKeysPipe } from '../../../shared/utils/enum-keys-pipe' ;
1212import { PaginationComponent } from '../../../shared/pagination/pagination.component' ;
1313import { HostWindowServiceStub } from '../../../shared/testing/host-window-service.stub' ;
1414import { HostWindowService } from '../../../shared/host-window.service' ;
15- import { RouterStub } from '../../../shared/testing/router.stub' ;
1615import { RouterTestingModule } from '@angular/router/testing' ;
1716import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub' ;
18- import { NO_ERRORS_SCHEMA } from '@angular/core' ;
17+ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core' ;
1918import { NotificationsService } from '../../../shared/notifications/notifications.service' ;
2019import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub' ;
21- import { RestResponse } from '../../../core/cache/response.models' ;
2220import { MetadataSchema } from '../../../core/metadata/metadata-schema.model' ;
2321import { MetadataField } from '../../../core/metadata/metadata-field.model' ;
2422import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils' ;
2523import { VarDirective } from '../../../shared/utils/var.directive' ;
2624import { PaginationService } from '../../../core/pagination/pagination.service' ;
2725import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub' ;
26+ import { RegistryServiceStub } from '../../../shared/testing/registry.service.stub' ;
2827
2928describe ( 'MetadataSchemaComponent' , ( ) => {
3029 let comp : MetadataSchemaComponent ;
3130 let fixture : ComponentFixture < MetadataSchemaComponent > ;
32- let registryService : RegistryService ;
33- const mockSchemasList = [
31+
32+ let registryService : RegistryServiceStub ;
33+ let activatedRoute : ActivatedRouteStub ;
34+ let paginationService : PaginationServiceStub ;
35+
36+ const mockSchemasList : MetadataSchema [ ] = [
3437 {
3538 id : 1 ,
3639 _links : {
@@ -51,8 +54,8 @@ describe('MetadataSchemaComponent', () => {
5154 prefix : 'mock' ,
5255 namespace : 'http://dspace.org/mockschema'
5356 }
54- ] ;
55- const mockFieldsList = [
57+ ] as MetadataSchema [ ] ;
58+ const mockFieldsList : MetadataField [ ] = [
5659 {
5760 id : 1 ,
5861 _links : {
@@ -101,47 +104,29 @@ describe('MetadataSchemaComponent', () => {
101104 scopeNote : null ,
102105 schema : createSuccessfulRemoteDataObject$ ( mockSchemasList [ 1 ] )
103106 }
104- ] ;
105- const mockSchemas = createSuccessfulRemoteDataObject$ ( buildPaginatedList ( null , mockSchemasList ) ) ;
106- /* eslint-disable no-empty,@typescript-eslint/no-empty-function */
107- const registryServiceStub = {
108- getMetadataSchemas : ( ) => mockSchemas ,
109- getMetadataFieldsBySchema : ( schema : MetadataSchema ) => createSuccessfulRemoteDataObject$ ( buildPaginatedList ( null , mockFieldsList . filter ( ( value ) => value . id === 3 || value . id === 4 ) ) ) ,
110- getMetadataSchemaByPrefix : ( schemaName : string ) => createSuccessfulRemoteDataObject$ ( mockSchemasList . filter ( ( value ) => value . prefix === schemaName ) [ 0 ] ) ,
111- getActiveMetadataField : ( ) => observableOf ( undefined ) ,
112- getSelectedMetadataFields : ( ) => observableOf ( [ ] ) ,
113- editMetadataField : ( schema ) => {
114- } ,
115- cancelEditMetadataField : ( ) => {
116- } ,
117- deleteMetadataField : ( ) => observableOf ( new RestResponse ( true , 200 , 'OK' ) ) ,
118- deselectAllMetadataField : ( ) => {
119- } ,
120- clearMetadataFieldRequests : ( ) => observableOf ( undefined )
121- } ;
122- /* eslint-enable no-empty, @typescript-eslint/no-empty-function */
107+ ] as MetadataField [ ] ;
123108 const schemaNameParam = 'mock' ;
124- const activatedRouteStub = Object . assign ( new ActivatedRouteStub ( ) , {
125- params : observableOf ( {
126- schemaName : schemaNameParam
127- } )
128- } ) ;
129-
130- const paginationService = new PaginationServiceStub ( ) ;
131109
132110 beforeEach ( waitForAsync ( ( ) => {
111+ activatedRoute = new ActivatedRouteStub ( {
112+ schemaName : schemaNameParam ,
113+ } ) ;
114+ paginationService = new PaginationServiceStub ( ) ;
115+ registryService = new RegistryServiceStub ( ) ;
116+ spyOn ( registryService , 'getMetadataFieldsBySchema' ) . and . returnValue ( createSuccessfulRemoteDataObject$ ( buildPaginatedList ( null , mockFieldsList . filter ( ( value ) => value . id === 3 || value . id === 4 ) ) ) ) ;
117+ spyOn ( registryService , 'getMetadataSchemaByPrefix' ) . and . callFake ( ( schemaName ) => createSuccessfulRemoteDataObject$ ( mockSchemasList . filter ( ( value ) => value . prefix === schemaName ) [ 0 ] ) ) ;
118+
133119 TestBed . configureTestingModule ( {
134120 imports : [ CommonModule , RouterTestingModule . withRoutes ( [ ] ) , TranslateModule . forRoot ( ) , NgbModule ] ,
135121 declarations : [ MetadataSchemaComponent , PaginationComponent , EnumKeysPipe , VarDirective ] ,
136122 providers : [
137- { provide : RegistryService , useValue : registryServiceStub } ,
138- { provide : ActivatedRoute , useValue : activatedRouteStub } ,
123+ { provide : RegistryService , useValue : registryService } ,
124+ { provide : ActivatedRoute , useValue : activatedRoute } ,
139125 { provide : HostWindowService , useValue : new HostWindowServiceStub ( 0 ) } ,
140- { provide : Router , useValue : new RouterStub ( ) } ,
141126 { provide : PaginationService , useValue : paginationService } ,
142127 { provide : NotificationsService , useValue : new NotificationsServiceStub ( ) }
143128 ] ,
144- schemas : [ NO_ERRORS_SCHEMA ]
129+ schemas : [ CUSTOM_ELEMENTS_SCHEMA ] ,
145130 } ) . compileComponents ( ) ;
146131 } ) ) ;
147132
@@ -190,7 +175,7 @@ describe('MetadataSchemaComponent', () => {
190175 } ) ) ;
191176
192177 it ( 'should cancel editing the selected field when clicked again' , waitForAsync ( ( ) => {
193- spyOn ( registryService , 'getActiveMetadataField' ) . and . returnValue ( observableOf ( mockFieldsList [ 2 ] as MetadataField ) ) ;
178+ comp . activeField$ = observableOf ( mockFieldsList [ 2 ] as MetadataField ) ;
194179 spyOn ( registryService , 'cancelEditMetadataField' ) ;
195180 row . click ( ) ;
196181 fixture . detectChanges ( ) ;
@@ -205,7 +190,7 @@ describe('MetadataSchemaComponent', () => {
205190
206191 beforeEach ( ( ) => {
207192 spyOn ( registryService , 'deleteMetadataField' ) . and . callThrough ( ) ;
208- spyOn ( registryService , 'getSelectedMetadataFields' ) . and . returnValue ( observableOf ( selectedFields as MetadataField [ ] ) ) ;
193+ comp . selectedMetadataFieldIDs$ = observableOf ( selectedFields . map ( ( metadataField : MetadataField ) => metadataField . id ) ) ;
209194 comp . deleteFields ( ) ;
210195 fixture . detectChanges ( ) ;
211196 } ) ;
0 commit comments