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<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[] = [{
|
export const mockLdnServices: LdnService[] = [{
|
||||||
|
@@ -1,18 +1,26 @@
|
|||||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
import { ComponentFixture, TestBed, tick, fakeAsync } from '@angular/core/testing';
|
||||||
import {LdnServicesOverviewComponent} from './ldn-services-directory.component';
|
import { ChangeDetectorRef, EventEmitter, TemplateRef, ViewChild } from '@angular/core';
|
||||||
import {ChangeDetectorRef, EventEmitter} from '@angular/core';
|
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
||||||
import {NotificationsService} from '../../../shared/notifications/notifications.service';
|
import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub';
|
||||||
import {NotificationsServiceStub} from '../../../shared/testing/notifications-service.stub';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import {TranslateModule, TranslateService} from '@ngx-translate/core';
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import {NgbModal} from '@ng-bootstrap/ng-bootstrap';
|
import { LdnServicesService } from '../ldn-services-data/ldn-services-data.service';
|
||||||
import {LdnServicesService} from '../ldn-services-data/ldn-services-data.service';
|
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||||
import {PaginationService} from '../../../core/pagination/pagination.service';
|
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
|
||||||
import {PaginationServiceStub} from '../../../shared/testing/pagination-service.stub';
|
import { of } from 'rxjs';
|
||||||
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', () => {
|
describe('LdnServicesOverviewComponent', () => {
|
||||||
let component: LdnServicesOverviewComponent;
|
let component: LdnServicesOverviewComponent;
|
||||||
let fixture: ComponentFixture<LdnServicesOverviewComponent>;
|
let fixture: ComponentFixture<LdnServicesOverviewComponent>;
|
||||||
|
let ldnServicesService: LdnServicesService;
|
||||||
|
let paginationService: PaginationService;
|
||||||
|
let modalService: NgbModal;
|
||||||
|
let notificationsService: NotificationsService;
|
||||||
|
let translateService: TranslateService;
|
||||||
|
|
||||||
const translateServiceStub = {
|
const translateServiceStub = {
|
||||||
get: () => of('translated-text'),
|
get: () => of('translated-text'),
|
||||||
@@ -26,29 +34,92 @@ describe('LdnServicesOverviewComponent', () => {
|
|||||||
imports: [TranslateModule.forRoot()],
|
imports: [TranslateModule.forRoot()],
|
||||||
declarations: [LdnServicesOverviewComponent],
|
declarations: [LdnServicesOverviewComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{provide: LdnServicesService, useValue: {}},
|
{ provide: LdnServicesService, useValue: jasmine.createSpyObj('LdnServicesService', ['findAll', 'delete', 'patch']) },
|
||||||
{provide: PaginationService, useValue: new PaginationServiceStub()},
|
{ provide: PaginationService, useValue: new PaginationServiceStub() },
|
||||||
{
|
{ provide: NgbModal, useValue: { open: () => { /*comment*/ } } },
|
||||||
provide: NgbModal, useValue: {
|
{ provide: ChangeDetectorRef, useValue: {} },
|
||||||
open: () => {/*comment*/
|
{ provide: NotificationsService, useValue: NotificationsServiceStub },
|
||||||
}
|
{ provide: TranslateService, useValue: translateServiceStub },
|
||||||
}
|
|
||||||
},
|
|
||||||
{provide: ChangeDetectorRef, useValue: {}},
|
|
||||||
{provide: NotificationsService, useValue: NotificationsServiceStub},
|
|
||||||
{provide: TranslateService, useValue: translateServiceStub},
|
|
||||||
]
|
]
|
||||||
})
|
}).compileComponents();
|
||||||
.compileComponents();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
fixture = TestBed.createComponent(LdnServicesOverviewComponent);
|
fixture = TestBed.createComponent(LdnServicesOverviewComponent);
|
||||||
component = fixture.componentInstance;
|
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();
|
fixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should create', () => {
|
it('should create', () => {
|
||||||
expect(component).toBeTruthy();
|
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 {getFirstCompletedRemoteData} from '../../../core/shared/operators';
|
||||||
import {NotificationsService} from '../../../shared/notifications/notifications.service';
|
import {NotificationsService} from '../../../shared/notifications/notifications.service';
|
||||||
import {TranslateService} from '@ngx-translate/core';
|
import {TranslateService} from '@ngx-translate/core';
|
||||||
import {mockLdnServiceRD$, mockLdnServicesRD$} from "../ldn-service-serviceMock/ldnServicesRD$-mock";
|
import { mockLdnServiceRD$ } from "../ldn-service-serviceMock/ldnServicesRD$-mock";
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@@ -38,8 +38,8 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
|||||||
@ViewChild('deleteModal', {static: true}) deleteModal: TemplateRef<any>;
|
@ViewChild('deleteModal', {static: true}) deleteModal: TemplateRef<any>;
|
||||||
ldnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
ldnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
||||||
//TODO: remove mocks an put in test after finishing
|
//TODO: remove mocks an put in test after finishing
|
||||||
mockLdnServiceRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
//mockLdnServiceRD$: Observable<RemoteData<LdnService>>;
|
||||||
mockLdnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
// mockLdnServicesRD$: Observable<RemoteData<PaginatedList<LdnService>>>;
|
||||||
config: FindListOptions = Object.assign(new FindListOptions(), {
|
config: FindListOptions = Object.assign(new FindListOptions(), {
|
||||||
elementsPerPage: 20
|
elementsPerPage: 20
|
||||||
});
|
});
|
||||||
@@ -48,17 +48,17 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
|||||||
pageSize: 20
|
pageSize: 20
|
||||||
});
|
});
|
||||||
isProcessingSub: Subscription;
|
isProcessingSub: Subscription;
|
||||||
private modalRef: any;
|
modalRef: any;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
protected ldnServicesService: LdnServicesService,
|
protected ldnServicesService: LdnServicesService,
|
||||||
protected paginationService: PaginationService,
|
protected paginationService: PaginationService,
|
||||||
protected modalService: NgbModal,
|
protected modalService: NgbModal,
|
||||||
private cdRef: ChangeDetectorRef,
|
public cdRef: ChangeDetectorRef,
|
||||||
private notificationService: NotificationsService,
|
private notificationService: NotificationsService,
|
||||||
private translateService: TranslateService,
|
private translateService: TranslateService,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,22 +72,18 @@ export class LdnServicesOverviewComponent implements OnInit, OnDestroy {
|
|||||||
getFirstCompletedRemoteData()
|
getFirstCompletedRemoteData()
|
||||||
))
|
))
|
||||||
|
|
||||||
);
|
);/*
|
||||||
this.mockLdnServiceRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe(
|
this.mockLdnServiceRD$ = mockLdnServiceRD$
|
||||||
switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe(
|
|
||||||
getFirstCompletedRemoteData()
|
|
||||||
))
|
|
||||||
|
|
||||||
);
|
|
||||||
this.mockLdnServicesRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe(
|
this.mockLdnServicesRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe(
|
||||||
switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe(
|
switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe(
|
||||||
getFirstCompletedRemoteData()
|
getFirstCompletedRemoteData()
|
||||||
))
|
))
|
||||||
|
|
||||||
);
|
);this.paginationService.getFindListOptions(this.pageConfig.id, this.config)
|
||||||
this.ldnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('realremotedata:',rd);})
|
this.ldnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('realremotedata:',rd);})
|
||||||
this.mockLdnServiceRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('mockremotedata:',rd);})
|
this.mockLdnServiceRD$.subscribe((rd: RemoteData<LdnService>) => {console.log('mockremotedata:',rd);})
|
||||||
this.mockLdnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('mockremotedata[ldnservice]:',rd);})
|
this.mockLdnServicesRD$.subscribe((rd: RemoteData<PaginatedList<LdnService>>) => {console.log('mockremotedata[ldnservice]:',rd);})*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user