Skip to content

Commit a5f0dff

Browse files
feat(audit): add mock data for AuditDetails and update tests
ref: CST-24919
1 parent c64bb60 commit a5f0dff

2 files changed

Lines changed: 56 additions & 17 deletions

File tree

src/app/audit-page/overview/audit-overview.component.spec.ts

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,44 @@
11
import { NO_ERRORS_SCHEMA } from '@angular/core';
2-
import {
3-
ComponentFixture,
4-
TestBed,
5-
waitForAsync,
6-
} from '@angular/core/testing';
2+
import { ComponentFixture, fakeAsync, TestBed, waitForAsync, } from '@angular/core/testing';
73
import { By } from '@angular/platform-browser';
84
import { RouterTestingModule } from '@angular/router/testing';
95
import { TranslateModule } from '@ngx-translate/core';
106
import { of } from 'rxjs';
117

12-
import { AuditDataService } from '../../core/audit/audit-data.service';
8+
import { AuditDataService, AuditDetails } from '../../core/audit/audit-data.service';
139
import { Audit } from '../../core/audit/model/audit.model';
1410
import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service';
1511
import { PaginationService } from '../../core/pagination/pagination.service';
1612
import { PaginationComponent } from '../../shared/pagination/pagination.component';
17-
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
18-
import { AuditMock } from '../../shared/testing/audit.mock';
13+
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
14+
import { AuditDetailsMock, AuditMock } from '../../shared/testing/audit.mock';
1915
import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub';
20-
import { createPaginatedList } from '../../shared/testing/utils.test';
2116
import { VarDirective } from '../../shared/utils/var.directive';
2217
import { AuditOverviewComponent } from './audit-overview.component';
18+
import { createPaginatedList } from '@shared/testing/utils.test';
2319

24-
describe('AuditOverviewComponent', () => {
20+
fdescribe('AuditOverviewComponent', () => {
2521
let component: AuditOverviewComponent;
2622
let fixture: ComponentFixture<AuditOverviewComponent>;
2723

2824
let auditService: AuditDataService;
2925
let authorizationService: any;
3026
let audits: Audit[];
27+
let auditDetails: AuditDetails[];
3128
const paginationService = new PaginationServiceStub();
3229

3330
function init() {
34-
audits = [ AuditMock, AuditMock, AuditMock ];
35-
auditService = jasmine.createSpyObj('processService', {
31+
audits = [AuditMock, AuditMock, AuditMock];
32+
auditDetails = [AuditDetailsMock, AuditDetailsMock, AuditDetailsMock];
33+
auditService = jasmine.createSpyObj('auditService', {
3634
findAll: createSuccessfulRemoteDataObject$(createPaginatedList(audits)),
3735
getEpersonName: of('Eperson Name'),
36+
mapToAuditDetails: createSuccessfulRemoteDataObject(createPaginatedList(auditDetails)),
37+
});
38+
39+
authorizationService = jasmine.createSpyObj('authorizationService', {
40+
isAuthorized: jasmine.createSpy('isAuthorized'),
3841
});
39-
authorizationService = jasmine.createSpyObj('authorizationService', ['isAuthorized']);
4042
}
4143

4244
beforeEach(waitForAsync(() => {
@@ -54,13 +56,13 @@ describe('AuditOverviewComponent', () => {
5456

5557
describe('if the current user is an admin', () => {
5658

57-
beforeEach(() => {
58-
authorizationService.isAuthorized.and.callFake(() => of(true));
59+
beforeEach(fakeAsync(() => {
60+
authorizationService.isAuthorized.and.returnValue(of(true));
5961

6062
fixture = TestBed.createComponent(AuditOverviewComponent);
6163
component = fixture.componentInstance;
6264
fixture.detectChanges();
63-
});
65+
}));
6466

6567
describe('table structure', () => {
6668
let rowElements;
@@ -118,7 +120,7 @@ describe('AuditOverviewComponent', () => {
118120
it('should display the eperson name in the seventh column', () => {
119121
rowElements.forEach((rowElement, index) => {
120122
const el = rowElement.query(By.css('td:nth-child(7)')).nativeElement;
121-
expect(el.textContent).toContain('Eperson Name');
123+
expect(el.textContent).toContain('Eperson Test');
122124
});
123125
});
124126

src/app/shared/testing/audit.mock.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { Audit } from '../../core/audit/model/audit.model';
22
import { EPerson } from '../../core/eperson/models/eperson.model';
3+
import { AuditDetails } from '@core/audit/audit-data.service';
4+
import { of } from 'rxjs';
35

46
export const AuditEPersonMock: EPerson = Object.assign(new EPerson(), {
57
handle: null,
@@ -79,3 +81,38 @@ export const AuditMock: Audit = Object.assign(new Audit(), {
7981
},
8082
});
8183

84+
85+
export const AuditDetailsMock: AuditDetails = Object.assign(new Audit(), {
86+
detail: null,
87+
epersonUUID: '4eebf0fa-cb9a-463e-8d4c-8a63122c7658',
88+
epersonName: of('Eperson Test'),
89+
eventType: 'MODIFY',
90+
id: '6fcd7329-8439-4492-bb72-0a4240b52da8',
91+
objectType: 'ITEM',
92+
objectUUID: 'objectUUID',
93+
subjectType: 'ITEM',
94+
subjectUUID: '3a74fe2c-d353-4e33-9887-d50184662dd4',
95+
subject: of(null),
96+
timeStamp: '2020-11-13T10:41:06.223+0000',
97+
type: 'auditevent',
98+
_embedded: {
99+
eperson: AuditEPersonMock,
100+
},
101+
self: {
102+
_links: {
103+
eperson: {
104+
href: 'https://dspace.4science.it/dspace-spring-rest/api/system/auditevents/6fcd7329-8439-4492-bb72-0a4240b52da8/eperson',
105+
},
106+
object: {
107+
href: 'https://dspace.4science.it/dspace-spring-rest/api/system/auditevents/6fcd7329-8439-4492-bb72-0a4240b52da8/object',
108+
},
109+
self: {
110+
href: 'https://dspace.4science.it/dspace-spring-rest/api/system/auditevents/6fcd7329-8439-4492-bb72-0a4240b52da8',
111+
},
112+
subject: {
113+
href: 'https://dspace.4science.it/dspace-spring-rest/api/system/auditevents/6fcd7329-8439-4492-bb72-0a4240b52da8/subject',
114+
},
115+
},
116+
},
117+
});
118+

0 commit comments

Comments
 (0)