forked from DSpace/dspace-angular
-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathobject-audit-logs.component.spec.ts
More file actions
124 lines (116 loc) · 4.54 KB
/
object-audit-logs.component.spec.ts
File metadata and controls
124 lines (116 loc) · 4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import { Location } from '@angular/common';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import {
ComponentFixture,
fakeAsync,
TestBed,
tick,
waitForAsync,
} from '@angular/core/testing';
import {
ActivatedRoute,
Router,
RouterLink,
} from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
import { Audit } from '@dspace/core/audit/model/audit.model';
import { AuditDataService } from '@dspace/core/data/audit-data.service';
import { CollectionDataService } from '@dspace/core/data/collection-data.service';
import { DSpaceObjectDataService } from '@dspace/core/data/dspace-object-data.service';
import { APP_DATA_SERVICES_MAP } from '@dspace/core/data-services-map-type';
import { PaginationService } from '@dspace/core/pagination/pagination.service';
import { Item } from '@dspace/core/shared/item.model';
import { MockActivatedRoute } from '@dspace/core/testing/active-router.mock';
import { AuditMock } from '@dspace/core/testing/audit.mock';
import { PaginationServiceStub } from '@dspace/core/testing/pagination-service.stub';
import { RouterMock } from '@dspace/core/testing/router.mock';
import { createPaginatedList } from '@dspace/core/testing/utils.test';
import { createSuccessfulRemoteDataObject$ } from '@dspace/core/utilities/remote-data.utils';
import { provideMockStore } from '@ngrx/store/testing';
import { TranslateModule } from '@ngx-translate/core';
import { of } from 'rxjs';
import { AuditTableComponent } from '../audit-table/audit-table.component';
import { ObjectAuditLogsComponent } from './object-audit-logs.component';
describe('ObjectAuditLogsComponent', () => {
let component: ObjectAuditLogsComponent;
let fixture: ComponentFixture<ObjectAuditLogsComponent>;
let auditService: AuditDataService;
let audits: Audit[];
let dSpaceObjectDataService: DSpaceObjectDataService;
let collectionService;
let activatedRoute;
let locationStub: Location;
const mockItem = new Item();
const mockItemId = '1234';
mockItem.id = mockItemId;
function init() {
audits = [ AuditMock ];
auditService = jasmine.createSpyObj('auditService', {
findByObject: createSuccessfulRemoteDataObject$(createPaginatedList(audits)),
getEpersonName: of('Eperson Name'),
auditHasDetails: false,
getOtherObject: of(new Audit()),
});
dSpaceObjectDataService = jasmine.createSpyObj('DSpaceObjectDataService', { findById: createSuccessfulRemoteDataObject$(mockItem) });
collectionService = jasmine.createSpyObj('CollectionDataService',
{ findOwningCollectionFor: createSuccessfulRemoteDataObject$(createPaginatedList([{ id : 'collectionId' }])) },
);
activatedRoute = new MockActivatedRoute({ objectId: mockItemId });
activatedRoute.data = of({ dso: {
payload: mockItem,
} });
locationStub = jasmine.createSpyObj('location', {
back: jasmine.createSpy('back'),
});
}
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]),
AuditTableComponent,
ObjectAuditLogsComponent,
RouterLink,
],
providers: [
{ provide: AuditDataService, useValue: auditService },
{ provide: PaginationService, useValue: new PaginationServiceStub() },
{ provide: DSpaceObjectDataService, useValue: dSpaceObjectDataService },
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: Router, useValue: new RouterMock() },
{ provide: CollectionDataService, useValue: collectionService },
{ provide: APP_DATA_SERVICES_MAP, useValue: new Map() },
{ provide: Location, useValue: locationStub },
provideMockStore({}),
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(ObjectAuditLogsComponent, {
remove: {
imports: [AuditTableComponent],
},
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ObjectAuditLogsComponent);
component = fixture.componentInstance;
spyOn(component, 'setAudits').and.callThrough();
fixture.detectChanges();
});
describe('object detail data setting', () => {
it('should set audits on init', fakeAsync(() => {
tick();
fixture.detectChanges();
expect(component.setAudits).toHaveBeenCalled();
}));
it('should set object id', (done) => {
component.objectId$.subscribe((id) => {
expect(id).toEqual(mockItemId);
expect(component.objectId).toEqual(id);
done();
});
});
});
});