[CST-4058] tests (WIP)

This commit is contained in:
Davide Negretti
2021-08-18 18:58:16 +02:00
parent 3d894d02d3
commit 9e710f7093
5 changed files with 68 additions and 22 deletions

View File

@@ -3,7 +3,7 @@ import { HttpClient } from '@angular/common/http';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserModule, By } from '@angular/platform-browser';
import { ActivatedRoute, Router } from '@angular/router';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { Store } from '@ngrx/store';

View File

@@ -20,7 +20,7 @@ import { RouteService } from '../../core/services/route.service';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { PageInfo } from '../../core/shared/page-info.model';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { GroupMock, GroupMock2 } from '../../shared/testing/group-mock';
import { GroupMock, GroupMock2, GroupMockNoLinkedDSO } from '../../shared/testing/group-mock';
import { GroupsRegistryComponent } from './groups-registry.component';
import { EPersonMock, EPersonMock2 } from '../../shared/testing/eperson.mock';
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
@@ -65,7 +65,7 @@ describe('GroupRegistryComponent', () => {
};
beforeEach(waitForAsync(() => {
mockGroups = [GroupMock, GroupMock2];
mockGroups = [GroupMock, GroupMock2, GroupMockNoLinkedDSO];
mockEPeople = [EPersonMock, EPersonMock2];
ePersonDataServiceStub = {
findAllByHref(href: string): Observable<RemoteData<PaginatedList<EPerson>>> {
@@ -149,7 +149,12 @@ describe('GroupRegistryComponent', () => {
};
dsoDataServiceStub = {
findByHref(href: string): Observable<RemoteData<DSpaceObject>> {
return createSuccessfulRemoteDataObject$(undefined);
console.warn(href);
return createSuccessfulRemoteDataObject$(Object.assign(new DSpaceObject(), {
id: "282164f5-d325-4740-8dd1-fa4d6d3e7200",
uuid: "282164f5-d325-4740-8dd1-fa4d6d3e7200",
name: 'x',
}));
}
};
authorizationService = jasmine.createSpyObj('authorizationService', ['isAuthorized']);
@@ -192,7 +197,7 @@ describe('GroupRegistryComponent', () => {
it('should display list of groups', () => {
const groupIdsFound = fixture.debugElement.queryAll(By.css('#groups tr td:first-child'));
expect(groupIdsFound.length).toEqual(2);
expect(groupIdsFound.length).toEqual(3);
mockGroups.map((group: Group) => {
expect(groupIdsFound.find((foundEl) => {
return (foundEl.nativeElement.textContent.trim() === group.uuid);
@@ -200,6 +205,27 @@ describe('GroupRegistryComponent', () => {
});
});
it('should XXXXXX', () => { // WIP
const collectionNamesFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(3)'));
expect(collectionNamesFound.length).toEqual(3);
expect(collectionNamesFound[0].nativeElement.textContent).toEqual('z');
expect(collectionNamesFound[1].nativeElement.textContent).toEqual('z');
expect(collectionNamesFound[2].nativeElement.textContent).toEqual('z');
// mockGroups.map((group: Group) => {
// expect(collectionNamesFound.find((foundEl) => {
// return (group.uuid === 'testgroupid3') ? (foundEl.nativeElement.textContent.length == 0) : (foundEl.nativeElement.textContent.length > 0);
// })).toBeTruthy();
// expect(collectionNamesFound.find((foundEl) => group.uuid.length > 0 )).toBeTruthy();
// collectionNamesFound.forEach((name) => {
// const nameExpected = !(group.uuid === 'testgroupid3');
// // expect(nameExpected ? name.nativeElement.textContent.length > 0 : name.nativeElement.textContent.length == 0).toBeTrue();
// expect(name.nativeElement.textContent).toBe('x');
// });
// expect(collectionNamesFound.find((foundEl) => foundEl.nativeElement.textContent.length == group.)).toBeTruthy();
// });
});
describe('edit buttons', () => {
describe('when the user is a general admin', () => {
beforeEach(fakeAsync(() => {
@@ -214,7 +240,7 @@ describe('GroupRegistryComponent', () => {
it('should be active', () => {
const editButtonsFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(5) button.btn-edit'));
expect(editButtonsFound.length).toEqual(2);
expect(editButtonsFound.length).toEqual(3);
editButtonsFound.forEach((editButtonFound) => {
expect(editButtonFound.nativeElement.disabled).toBeFalse();
});
@@ -248,7 +274,7 @@ describe('GroupRegistryComponent', () => {
it('should be active', () => {
const editButtonsFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(5) button.btn-edit'));
expect(editButtonsFound.length).toEqual(2);
expect(editButtonsFound.length).toEqual(3);
editButtonsFound.forEach((editButtonFound) => {
expect(editButtonFound.nativeElement.disabled).toBeFalse();
});
@@ -267,7 +293,7 @@ describe('GroupRegistryComponent', () => {
it('should not be active', () => {
const editButtonsFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(5) button.btn-edit'));
expect(editButtonsFound.length).toEqual(2);
expect(editButtonsFound.length).toEqual(3);
editButtonsFound.forEach((editButtonFound) => {
expect(editButtonFound.nativeElement.disabled).toBeTrue();
});

View File

@@ -56,11 +56,11 @@ describe('EPersonDataService', () => {
}
function init() {
restEndpointURL = 'https://dspace.4science.it/dspace-spring-rest/api/eperson';
restEndpointURL = 'https://rest.api/dspace-spring-rest/api/eperson';
epersonsEndpoint = `${restEndpointURL}/epersons`;
epeople = [EPersonMock, EPersonMock2];
epeople$ = createSuccessfulRemoteDataObject$(createPaginatedList([epeople]));
rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons': epeople$ });
rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://rest.api/dspace-spring-rest/api/eperson/epersons': epeople$ });
halService = new HALEndpointServiceStub(restEndpointURL);
TestBed.configureTestingModule({

View File

@@ -11,9 +11,9 @@ export const EPersonMock: EPerson = Object.assign(new EPerson(), {
selfRegistered: false,
_links: {
self: {
href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons/testid',
href: 'https://rest.api/dspace-spring-rest/api/eperson/epersons/testid',
},
groups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons/testid/groups' }
groups: { href: 'https://rest.api/dspace-spring-rest/api/eperson/epersons/testid/groups' }
},
id: 'testid',
uuid: 'testid',
@@ -57,9 +57,9 @@ export const EPersonMock2: EPerson = Object.assign(new EPerson(), {
selfRegistered: true,
_links: {
self: {
href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons/testid2',
href: 'https://rest.api/dspace-spring-rest/api/eperson/epersons/testid2',
},
groups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons/testid2/groups' }
groups: { href: 'https://rest.api/dspace-spring-rest/api/eperson/epersons/testid2/groups' }
},
id: 'testid2',
uuid: 'testid2',

View File

@@ -9,11 +9,11 @@ export const GroupMock2: Group = Object.assign(new Group(), {
selfRegistered: false,
_links: {
self: {
href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2',
href: 'https://rest.api/server/api/eperson/groups/testgroupid2',
},
subgroups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/subgroups' },
object: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/object' },
epersons: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/epersons' }
subgroups: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/subgroups' },
object: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/object' },
epersons: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/epersons' }
},
_name: 'testgroupname2',
id: 'testgroupid2',
@@ -29,14 +29,34 @@ export const GroupMock: Group = Object.assign(new Group(), {
permanent: false,
_links: {
self: {
href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid',
href: 'https://rest.api/server/api/eperson/groups/testgroupid',
},
subgroups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/subgroups' },
object: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/object' },
epersons: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/epersons' }
subgroups: { href: 'https://rest.api/server/api/eperson/groups/testgroupid/subgroups' },
object: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/object' },
epersons: { href: 'https://rest.api/server/api/eperson/groups/testgroupid/epersons' }
},
_name: 'testgroupname',
id: 'testgroupid',
uuid: 'testgroupid',
type: 'group',
});
export const GroupMockNoLinkedDSO: Group = Object.assign(new Group(), {
handle: null,
subgroups: [],
epersons: [],
permanent: true,
selfRegistered: false,
_links: {
self: {
href: 'https://rest.api/server/api/eperson/groups/testgroupid3',
},
subgroups: { href: 'https://rest.api/server/api/eperson/groups/testgroupid3/subgroups' },
object: { href: 'https://rest.api/server/api/eperson/groups/testgroupid3/object' }, // should be empty
epersons: { href: 'https://rest.api/server/api/eperson/groups/testgroupid3/epersons' }
},
_name: 'testgroupname3',
id: 'testgroupid3',
uuid: 'testgroupid3',
type: 'group',
});