mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 02:24:11 +00:00
[CST-4058] tests (WIP)
This commit is contained in:
@@ -3,7 +3,7 @@ import { HttpClient } from '@angular/common/http';
|
|||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import { Store } from '@ngrx/store';
|
import { Store } from '@ngrx/store';
|
||||||
|
@@ -20,7 +20,7 @@ import { RouteService } from '../../core/services/route.service';
|
|||||||
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
||||||
import { PageInfo } from '../../core/shared/page-info.model';
|
import { PageInfo } from '../../core/shared/page-info.model';
|
||||||
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
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 { GroupsRegistryComponent } from './groups-registry.component';
|
||||||
import { EPersonMock, EPersonMock2 } from '../../shared/testing/eperson.mock';
|
import { EPersonMock, EPersonMock2 } from '../../shared/testing/eperson.mock';
|
||||||
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
|
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
|
||||||
@@ -65,7 +65,7 @@ describe('GroupRegistryComponent', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
beforeEach(waitForAsync(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
mockGroups = [GroupMock, GroupMock2];
|
mockGroups = [GroupMock, GroupMock2, GroupMockNoLinkedDSO];
|
||||||
mockEPeople = [EPersonMock, EPersonMock2];
|
mockEPeople = [EPersonMock, EPersonMock2];
|
||||||
ePersonDataServiceStub = {
|
ePersonDataServiceStub = {
|
||||||
findAllByHref(href: string): Observable<RemoteData<PaginatedList<EPerson>>> {
|
findAllByHref(href: string): Observable<RemoteData<PaginatedList<EPerson>>> {
|
||||||
@@ -149,7 +149,12 @@ describe('GroupRegistryComponent', () => {
|
|||||||
};
|
};
|
||||||
dsoDataServiceStub = {
|
dsoDataServiceStub = {
|
||||||
findByHref(href: string): Observable<RemoteData<DSpaceObject>> {
|
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']);
|
authorizationService = jasmine.createSpyObj('authorizationService', ['isAuthorized']);
|
||||||
@@ -192,7 +197,7 @@ describe('GroupRegistryComponent', () => {
|
|||||||
|
|
||||||
it('should display list of groups', () => {
|
it('should display list of groups', () => {
|
||||||
const groupIdsFound = fixture.debugElement.queryAll(By.css('#groups tr td:first-child'));
|
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) => {
|
mockGroups.map((group: Group) => {
|
||||||
expect(groupIdsFound.find((foundEl) => {
|
expect(groupIdsFound.find((foundEl) => {
|
||||||
return (foundEl.nativeElement.textContent.trim() === group.uuid);
|
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('edit buttons', () => {
|
||||||
describe('when the user is a general admin', () => {
|
describe('when the user is a general admin', () => {
|
||||||
beforeEach(fakeAsync(() => {
|
beforeEach(fakeAsync(() => {
|
||||||
@@ -214,7 +240,7 @@ describe('GroupRegistryComponent', () => {
|
|||||||
|
|
||||||
it('should be active', () => {
|
it('should be active', () => {
|
||||||
const editButtonsFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(5) button.btn-edit'));
|
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) => {
|
editButtonsFound.forEach((editButtonFound) => {
|
||||||
expect(editButtonFound.nativeElement.disabled).toBeFalse();
|
expect(editButtonFound.nativeElement.disabled).toBeFalse();
|
||||||
});
|
});
|
||||||
@@ -248,7 +274,7 @@ describe('GroupRegistryComponent', () => {
|
|||||||
|
|
||||||
it('should be active', () => {
|
it('should be active', () => {
|
||||||
const editButtonsFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(5) button.btn-edit'));
|
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) => {
|
editButtonsFound.forEach((editButtonFound) => {
|
||||||
expect(editButtonFound.nativeElement.disabled).toBeFalse();
|
expect(editButtonFound.nativeElement.disabled).toBeFalse();
|
||||||
});
|
});
|
||||||
@@ -267,7 +293,7 @@ describe('GroupRegistryComponent', () => {
|
|||||||
|
|
||||||
it('should not be active', () => {
|
it('should not be active', () => {
|
||||||
const editButtonsFound = fixture.debugElement.queryAll(By.css('#groups tr td:nth-child(5) button.btn-edit'));
|
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) => {
|
editButtonsFound.forEach((editButtonFound) => {
|
||||||
expect(editButtonFound.nativeElement.disabled).toBeTrue();
|
expect(editButtonFound.nativeElement.disabled).toBeTrue();
|
||||||
});
|
});
|
||||||
|
@@ -56,11 +56,11 @@ describe('EPersonDataService', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
restEndpointURL = 'https://dspace.4science.it/dspace-spring-rest/api/eperson';
|
restEndpointURL = 'https://rest.api/dspace-spring-rest/api/eperson';
|
||||||
epersonsEndpoint = `${restEndpointURL}/epersons`;
|
epersonsEndpoint = `${restEndpointURL}/epersons`;
|
||||||
epeople = [EPersonMock, EPersonMock2];
|
epeople = [EPersonMock, EPersonMock2];
|
||||||
epeople$ = createSuccessfulRemoteDataObject$(createPaginatedList([epeople]));
|
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);
|
halService = new HALEndpointServiceStub(restEndpointURL);
|
||||||
|
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
|
@@ -11,9 +11,9 @@ export const EPersonMock: EPerson = Object.assign(new EPerson(), {
|
|||||||
selfRegistered: false,
|
selfRegistered: false,
|
||||||
_links: {
|
_links: {
|
||||||
self: {
|
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',
|
id: 'testid',
|
||||||
uuid: 'testid',
|
uuid: 'testid',
|
||||||
@@ -57,9 +57,9 @@ export const EPersonMock2: EPerson = Object.assign(new EPerson(), {
|
|||||||
selfRegistered: true,
|
selfRegistered: true,
|
||||||
_links: {
|
_links: {
|
||||||
self: {
|
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',
|
id: 'testid2',
|
||||||
uuid: 'testid2',
|
uuid: 'testid2',
|
||||||
|
@@ -9,11 +9,11 @@ export const GroupMock2: Group = Object.assign(new Group(), {
|
|||||||
selfRegistered: false,
|
selfRegistered: false,
|
||||||
_links: {
|
_links: {
|
||||||
self: {
|
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' },
|
subgroups: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/subgroups' },
|
||||||
object: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/object' },
|
object: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/object' },
|
||||||
epersons: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/epersons' }
|
epersons: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/epersons' }
|
||||||
},
|
},
|
||||||
_name: 'testgroupname2',
|
_name: 'testgroupname2',
|
||||||
id: 'testgroupid2',
|
id: 'testgroupid2',
|
||||||
@@ -29,14 +29,34 @@ export const GroupMock: Group = Object.assign(new Group(), {
|
|||||||
permanent: false,
|
permanent: false,
|
||||||
_links: {
|
_links: {
|
||||||
self: {
|
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' },
|
subgroups: { href: 'https://rest.api/server/api/eperson/groups/testgroupid/subgroups' },
|
||||||
object: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/object' },
|
object: { href: 'https://rest.api/server/api/eperson/groups/testgroupid2/object' },
|
||||||
epersons: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/epersons' }
|
epersons: { href: 'https://rest.api/server/api/eperson/groups/testgroupid/epersons' }
|
||||||
},
|
},
|
||||||
_name: 'testgroupname',
|
_name: 'testgroupname',
|
||||||
id: 'testgroupid',
|
id: 'testgroupid',
|
||||||
uuid: 'testgroupid',
|
uuid: 'testgroupid',
|
||||||
type: 'group',
|
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',
|
||||||
|
});
|
||||||
|
Reference in New Issue
Block a user