mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
CST-12498 Added tests, still needs cleanup and check on one behaviour
This commit is contained in:
@@ -45,7 +45,8 @@ export const mockLdnService: LdnService = {
|
||||
};
|
||||
|
||||
//export const mockLdnServiceRD$: Observable<RemoteData<PaginatedList<LdnService>>> = of((mockLdnService as unknown) as RemoteData<PaginatedList<LdnService>>);
|
||||
export const mockLdnServiceRD$: Observable<RemoteData<LdnService>> = createSuccessfulRemoteDataObject$(mockLdnService);
|
||||
//export const mockLdnServiceRD$ = createSuccessfulRemoteDataObject$(createPaginatedList(mockLdnService[0])as PaginatedList<LdnService>);
|
||||
export const mockLdnServiceRD$ = createSuccessfulRemoteDataObject$(mockLdnService);
|
||||
|
||||
|
||||
export const mockLdnServices: LdnService[] = [{
|
||||
|
@@ -1,6 +1,5 @@
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
import {LdnServicesOverviewComponent} from './ldn-services-directory.component';
|
||||
import {ChangeDetectorRef, EventEmitter} from '@angular/core';
|
||||
import { ComponentFixture, TestBed, tick, fakeAsync } from '@angular/core/testing';
|
||||
import { ChangeDetectorRef, EventEmitter, TemplateRef, ViewChild } from '@angular/core';
|
||||
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
||||
import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub';
|
||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||
@@ -9,10 +8,19 @@ import {LdnServicesService} from '../ldn-services-data/ldn-services-data.service
|
||||
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
|
||||
import { of } from 'rxjs';
|
||||
import { LdnService } from "../ldn-services-model/ldn-services.model";
|
||||
import { PaginatedList } from "../../../core/data/paginated-list.model";
|
||||
import { RemoteData } from "../../../core/data/remote-data";
|
||||
import { LdnServicesOverviewComponent } from './ldn-services-directory.component';
|
||||
|
||||
describe('LdnServicesOverviewComponent', () => {
|
||||
let component: LdnServicesOverviewComponent;
|
||||
let fixture: ComponentFixture<LdnServicesOverviewComponent>;
|
||||
let ldnServicesService: LdnServicesService;
|
||||
let paginationService: PaginationService;
|
||||
let modalService: NgbModal;
|
||||
let notificationsService: NotificationsService;
|
||||
let translateService: TranslateService;
|
||||
|
||||
const translateServiceStub = {
|
||||
get: () => of('translated-text'),
|
||||
@@ -26,29 +34,92 @@ describe('LdnServicesOverviewComponent', () => {
|
||||
imports: [TranslateModule.forRoot()],
|
||||
declarations: [LdnServicesOverviewComponent],
|
||||
providers: [
|
||||
{provide: LdnServicesService, useValue: {}},
|
||||
{ provide: LdnServicesService, useValue: jasmine.createSpyObj('LdnServicesService', ['findAll', 'delete', 'patch']) },
|
||||
{ provide: PaginationService, useValue: new PaginationServiceStub() },
|
||||
{
|
||||
provide: NgbModal, useValue: {
|
||||
open: () => {/*comment*/
|
||||
}
|
||||
}
|
||||
},
|
||||
{ provide: NgbModal, useValue: { open: () => { /*comment*/ } } },
|
||||
{ provide: ChangeDetectorRef, useValue: {} },
|
||||
{ provide: NotificationsService, useValue: NotificationsServiceStub },
|
||||
{ provide: TranslateService, useValue: translateServiceStub },
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
}).compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(LdnServicesOverviewComponent);
|
||||
component = fixture.componentInstance;
|
||||
ldnServicesService = TestBed.inject(LdnServicesService);
|
||||
paginationService = TestBed.inject(PaginationService);
|
||||
modalService = TestBed.inject(NgbModal);
|
||||
notificationsService = TestBed.inject(NotificationsService);
|
||||
translateService = TestBed.inject(TranslateService);
|
||||
component.modalRef = jasmine.createSpyObj({ close: null });
|
||||
component.isProcessingSub = jasmine.createSpyObj({ unsubscribe: null });
|
||||
component.ldnServicesRD$ = of({} as RemoteData<PaginatedList<LdnService>>); // You can adjust the mock data as needed
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
describe('ngOnInit', () => {
|
||||
it('should call setLdnServices', fakeAsync(() => {
|
||||
spyOn(component, 'setLdnServices').and.callThrough();
|
||||
component.ngOnInit();
|
||||
tick();
|
||||
expect(component.setLdnServices).toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
it('should set ldnServicesRD$ with mock data', fakeAsync(() => {
|
||||
spyOn(component, 'setLdnServices').and.callThrough();
|
||||
const mockData = { /* your mock data here */ };
|
||||
component.ldnServicesRD$ = of(mockData as RemoteData<PaginatedList<LdnService>>);
|
||||
component.ngOnInit();
|
||||
tick();
|
||||
expect(component.setLdnServices).toHaveBeenCalled();
|
||||
// Add more expectations based on your mock data and component behavior
|
||||
}));
|
||||
});
|
||||
|
||||
describe('ngOnDestroy', () => {
|
||||
it('should call paginationService.clearPagination and unsubscribe', () => {
|
||||
spyOn(paginationService, 'clearPagination');
|
||||
spyOn(component.isProcessingSub, 'unsubscribe');
|
||||
component.ngOnDestroy();
|
||||
expect(paginationService.clearPagination).toHaveBeenCalledWith(component.pageConfig.id);
|
||||
expect(component.isProcessingSub.unsubscribe).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('openDeleteModal', () => {
|
||||
it('should open delete modal', () => {
|
||||
spyOn(modalService, 'open');
|
||||
component.openDeleteModal(component.deleteModal);
|
||||
expect(modalService.open).toHaveBeenCalledWith(component.deleteModal);
|
||||
});
|
||||
});
|
||||
|
||||
describe('closeModal', () => {
|
||||
it('should close modal and detect changes', () => {
|
||||
spyOn(component.modalRef, 'close');
|
||||
spyOn(component.cdRef, 'detectChanges');
|
||||
component.closeModal();
|
||||
expect(component.modalRef.close).toHaveBeenCalled();
|
||||
expect(component.cdRef.detectChanges).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('deleteSelected', () => {
|
||||
it('should delete selected service and update data', fakeAsync(() => {
|
||||
const serviceId = '123';
|
||||
const mockRemoteData = { /* insert mock data with service id 123 */ };
|
||||
spyOn(component, 'setLdnServices').and.callThrough();
|
||||
const deleteSpy = spyOn(ldnServicesService, 'delete').and.returnValue(of(mockRemoteData as RemoteData<PaginatedList<LdnService>>));
|
||||
component.selectedServiceId = serviceId;
|
||||
component.deleteSelected(serviceId, ldnServicesService);
|
||||
tick();
|
||||
expect(deleteSpy).toHaveBeenCalledWith(serviceId);
|
||||
expect(mockRemoteData)
|
||||
}));
|
||||
});
|
||||
});
|
||||
|
@@ -22,7 +22,7 @@ import {Operation} from 'fast-json-patch';
|
||||
import {getFirstCompletedRemoteData} from '../../../core/shared/operators';
|
||||
import {NotificationsService} from '../../../shared/notifications/notifications.service';
|
||||
import {TranslateService} from '@ngx-translate/core';
|
||||
import {mockLdnServiceRD$, mockLdnServicesRD$} from "../ldn-service-serviceMock/ldnServicesRD$-mock";
|
||||
import { mockLdnServiceRD$ } from "../ldn-service-serviceMock/ldnServicesRD$-mock";
|
||||
|
||||
|
||||
@Component({
|
||||
@@ -38,8 +38,8 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
||||
@ViewChild('deleteModal', {static: true}) deleteModal: TemplateRef<any>;
|
||||
ldnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
||||
//TODO: remove mocks an put in test after finishing
|
||||
mockLdnServiceRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
||||
mockLdnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
||||
//mockLdnServiceRD$: Observable<RemoteData<LdnService>>;
|
||||
// mockLdnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
||||
config: FindListOptions = Object.assign(new FindListOptions(), {
|
||||
elementsPerPage: 20
|
||||
});
|
||||
@@ -48,7 +48,7 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
||||
pageSize: 20
|
||||
});
|
||||
isProcessingSub: Subscription;
|
||||
private modalRef: any;
|
||||
modalRef: any;
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
||||
protected ldnServicesService: LdnServicesService,
|
||||
protected paginationService: PaginationService,
|
||||
protected modalService: NgbModal,
|
||||
private cdRef: ChangeDetectorRef,
|
||||
public cdRef: ChangeDetectorRef,
|
||||
private notificationService: NotificationsService,
|
||||
private translateService: TranslateService,
|
||||
) {
|
||||
@@ -72,22 +72,18 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
||||
getFirstCompletedRemoteData()
|
||||
))
|
||||
|
||||
);
|
||||
this.mockLdnServiceRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe(
|
||||
switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe(
|
||||
getFirstCompletedRemoteData()
|
||||
))
|
||||
);/*
|
||||
this.mockLdnServiceRD$ = mockLdnServiceRD$
|
||||
|
||||
);
|
||||
this.mockLdnServicesRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe(
|
||||
switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe(
|
||||
getFirstCompletedRemoteData()
|
||||
))
|
||||
|
||||
);
|
||||
);this.paginationService.getFindListOptions(this.pageConfig.id, this.config)
|
||||
this.ldnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('realremotedata:',rd);})
|
||||
this.mockLdnServiceRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('mockremotedata:',rd);})
|
||||
this.mockLdnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('mockremotedata[ldnservice]:',rd);})
|
||||
this.mockLdnServiceRD$.subscribe((rd: RemoteData<LdnService>) => {console.log('mockremotedata:',rd);})
|
||||
this.mockLdnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('mockremotedata[ldnservice]:',rd);})*/
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user