diff --git a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.spec.ts b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.spec.ts index 82fd560e4f..d6b016f6fb 100644 --- a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.spec.ts +++ b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.spec.ts @@ -16,8 +16,9 @@ import { HostWindowService } from '../../../shared/host-window.service'; import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; import { NotificationsService } from '../../../shared/notifications/notifications.service'; import { NotificationsServiceStub } from '../../../shared/testing/notifications-service-stub'; +import { RestResponse } from '../../../core/cache/response.models'; -describe('MetadataRegistryComponent', () => { +fdescribe('MetadataRegistryComponent', () => { let comp: MetadataRegistryComponent; let fixture: ComponentFixture; let registryService: RegistryService; @@ -42,7 +43,10 @@ describe('MetadataRegistryComponent', () => { getActiveMetadataSchema: () => observableOf(undefined), getSelectedMetadataSchemas: () => observableOf([]), editMetadataSchema: (schema) => {}, - cancelEditMetadataSchema: () => {} + cancelEditMetadataSchema: () => {}, + deleteMetadataSchema: () => observableOf(new RestResponse(true, '200')), + deselectAllMetadataSchema: () => {}, + clearMetadataSchemaRequests: () => observableOf(undefined) }; /* tslint:enable:no-empty */ @@ -53,7 +57,7 @@ describe('MetadataRegistryComponent', () => { providers: [ { provide: RegistryService, useValue: registryServiceStub }, { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, - { provide: NotificationsService, useValue: NotificationsServiceStub } + { provide: NotificationsService, useValue: new NotificationsServiceStub() } ], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(MetadataRegistryComponent, { @@ -110,4 +114,21 @@ describe('MetadataRegistryComponent', () => { }); })); }); + + describe('when deleting metadata schemas', () => { + const selectedSchemas = Array(mockSchemasList[0]); + + beforeEach(() => { + spyOn(registryService, 'deleteMetadataSchema').and.callThrough(); + spyOn(registryService, 'getSelectedMetadataSchemas').and.returnValue(observableOf(selectedSchemas)); + comp.deleteSchemas(); + fixture.detectChanges(); + }); + + it('should call deleteMetadataSchema with the selected id', async(() => { + fixture.whenStable().then(() => { + expect(registryService.deleteMetadataSchema).toHaveBeenCalledWith(selectedSchemas[0].id); + }); + })); + }); }); diff --git a/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.spec.ts b/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.spec.ts index f30475ea60..37fb51e5c7 100644 --- a/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.spec.ts +++ b/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.spec.ts @@ -20,6 +20,7 @@ import { ActivatedRouteStub } from '../../../shared/testing/active-router-stub'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { NotificationsService } from '../../../shared/notifications/notifications.service'; import { NotificationsServiceStub } from '../../../shared/testing/notifications-service-stub'; +import { RestResponse } from '../../../core/cache/response.models'; describe('MetadataSchemaComponent', () => { let comp: MetadataSchemaComponent; @@ -41,31 +42,35 @@ describe('MetadataSchemaComponent', () => { ]; const mockFieldsList = [ { + id: 1, self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/8', element: 'contributor', qualifier: 'advisor', - scopenote: null, + scopeNote: null, schema: mockSchemasList[0] }, { + id: 2, self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/9', element: 'contributor', qualifier: 'author', - scopenote: null, + scopeNote: null, schema: mockSchemasList[0] }, { + id: 3, self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/10', element: 'contributor', qualifier: 'editor', - scopenote: 'test scope note', + scopeNote: 'test scope note', schema: mockSchemasList[1] }, { + id: 4, self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/11', element: 'contributor', qualifier: 'illustrator', - scopenote: null, + scopeNote: null, schema: mockSchemasList[1] } ]; @@ -78,7 +83,10 @@ describe('MetadataSchemaComponent', () => { getActiveMetadataField: () => observableOf(undefined), getSelectedMetadataFields: () => observableOf([]), editMetadataField: (schema) => {}, - cancelEditMetadataField: () => {} + cancelEditMetadataField: () => {}, + deleteMetadataField: () => observableOf(new RestResponse(true, '200')), + deselectAllMetadataField: () => {}, + clearMetadataFieldRequests: () => observableOf(undefined) }; /* tslint:enable:no-empty */ const schemaNameParam = 'mock'; @@ -97,7 +105,7 @@ describe('MetadataSchemaComponent', () => { { provide: ActivatedRoute, useValue: activatedRouteStub }, { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, { provide: Router, useValue: new RouterStub() }, - { provide: NotificationsService, useValue: NotificationsServiceStub } + { provide: NotificationsService, useValue: new NotificationsServiceStub() } ], schemas: [NO_ERRORS_SCHEMA] }).compileComponents(); @@ -157,4 +165,21 @@ describe('MetadataSchemaComponent', () => { }); })); }); + + describe('when deleting metadata fields', () => { + const selectedFields = Array(mockFieldsList[2]); + + beforeEach(() => { + spyOn(registryService, 'deleteMetadataField').and.callThrough(); + spyOn(registryService, 'getSelectedMetadataFields').and.returnValue(observableOf(selectedFields)); + comp.deleteFields(); + fixture.detectChanges(); + }); + + it('should call deleteMetadataField with the selected id', async(() => { + fixture.whenStable().then(() => { + expect(registryService.deleteMetadataField).toHaveBeenCalledWith(selectedFields[0].id); + }); + })); + }); }); diff --git a/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts b/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts index b1dd87d2c6..cb3a667528 100644 --- a/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts +++ b/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts @@ -162,7 +162,7 @@ export class MetadataSchemaComponent implements OnInit { const tasks$ = []; for (const field of fields) { if (hasValue(field.id)) { - tasks$.push(this.registryService.deleteMetadataSchema(field.id)); + tasks$.push(this.registryService.deleteMetadataField(field.id)); } } zip(...tasks$).subscribe((responses: RestResponse[]) => {