mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-09 02:54:13 +00:00
110 lines
4.0 KiB
TypeScript
110 lines
4.0 KiB
TypeScript
import { RouteService } from '../../core/services/route.service';
|
|
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
|
import { WorkspaceitemDataService } from '../../core/submission/workspaceitem-data.service';
|
|
import { RouterMock } from '../../shared/mocks/router.mock';
|
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
|
|
import { WorkspaceItemsDeletePageComponent } from './workspaceitems-delete-page.component';
|
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';
|
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
|
|
import { EventEmitter, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
import { Location } from '@angular/common';
|
|
import { of as observableOf } from 'rxjs';
|
|
import { routeServiceStub } from '../../shared/testing/route-service.stub';
|
|
import { LocationStub } from '../../shared/testing/location.stub';
|
|
import { By } from '@angular/platform-browser';
|
|
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
|
|
import { createSuccessfulRemoteDataObject } from '../../shared/remote-data.utils';
|
|
import { WorkspaceItem } from '../../core/submission/models/workspaceitem.model';
|
|
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
|
|
|
describe('WorkspaceitemsDeletePageComponent', () => {
|
|
let component: WorkspaceItemsDeletePageComponent;
|
|
let fixture: ComponentFixture<WorkspaceItemsDeletePageComponent>;
|
|
|
|
const workspaceitemDataServiceSpy = jasmine.createSpyObj('WorkspaceitemDataService', {
|
|
delete: observableOf(createSuccessfulRemoteDataObject({}))
|
|
});
|
|
|
|
const wsi = new WorkspaceItem();
|
|
wsi.id = '1234';
|
|
const dso = new DSpaceObject();
|
|
dso.uuid = '1234';
|
|
|
|
const translateServiceStub = {
|
|
get: () => observableOf('test-message'),
|
|
onLangChange: new EventEmitter(),
|
|
onTranslationChange: new EventEmitter(),
|
|
onDefaultLangChange: new EventEmitter()
|
|
};
|
|
|
|
const modalService = {
|
|
open: () => {/** empty */},
|
|
};
|
|
|
|
beforeEach(async () => {
|
|
await TestBed.configureTestingModule({
|
|
imports: [
|
|
NgbModalModule,
|
|
TranslateModule.forRoot()
|
|
],
|
|
declarations: [WorkspaceItemsDeletePageComponent],
|
|
providers: [
|
|
{
|
|
provide: ActivatedRoute,
|
|
useValue: new ActivatedRouteStub(
|
|
{},
|
|
{
|
|
wsi: createSuccessfulRemoteDataObject(wsi),
|
|
dso: createSuccessfulRemoteDataObject(dso),
|
|
}
|
|
),
|
|
},
|
|
{ provide: Router, useValue: new RouterMock() },
|
|
{
|
|
provide: WorkspaceitemDataService,
|
|
useValue: workspaceitemDataServiceSpy,
|
|
},
|
|
{ provide: Location, useValue: new LocationStub() },
|
|
{
|
|
provide: NotificationsService,
|
|
useValue: new NotificationsServiceStub(),
|
|
},
|
|
{ provide: TranslateService, useValue: translateServiceStub },
|
|
{ provide: RouteService, useValue: routeServiceStub },
|
|
],
|
|
schemas: [NO_ERRORS_SCHEMA],
|
|
}).compileComponents();
|
|
});
|
|
|
|
beforeEach(() => {
|
|
fixture = TestBed.createComponent(WorkspaceItemsDeletePageComponent);
|
|
component = fixture.componentInstance;
|
|
fixture.detectChanges();
|
|
});
|
|
|
|
it('should create', () => {
|
|
expect(component).toBeTruthy();
|
|
});
|
|
|
|
it('should have the current WorkspaceItem', () => {
|
|
(component as any).activatedRoute.data.subscribe((data) => {
|
|
expect(data.wsi.payload.id).toEqual('1234');
|
|
});
|
|
});
|
|
|
|
it('should delete the target workspace item', () => {
|
|
spyOn((component as any).modalService, 'open').and.returnValue({});
|
|
component.confirmDelete(By.css('#delete-modal'));
|
|
fixture.detectChanges();
|
|
expect((component as any).modalService.open).toHaveBeenCalled();
|
|
});
|
|
|
|
it('should call workspaceItemService.delete', () => {
|
|
component.sendDeleteRequest();
|
|
expect((component as any).workspaceItemService.delete).toHaveBeenCalledWith('1234');
|
|
});
|
|
});
|