1 import { NO_ERRORS_SCHEMA } from '@angular/core';
2 import { async, ComponentFixture } from '@angular/core/testing';
3 import { NgxDatatableModule } from '@swimlane/ngx-datatable';
4 import { SdcUiServices } from 'onap-ui-angular';
5 import 'rxjs/add/observable/of';
6 import { Observable } from 'rxjs/Observable';
7 import { ConfigureFn, configureTests } from '../../../../../jest/test-config.helper';
8 import { ComponentMetadata } from '../../../../models/component-metadata';
9 import { ActivityLogService } from '../../../services/activity-log.service';
10 import { WorkspaceService } from '../workspace.service';
11 import { ActivityLogComponent } from './activity-log.component';
13 describe('activity log component', () => {
15 let fixture: ComponentFixture<ActivityLogComponent>;
16 let activityLogServiceMock: Partial<ActivityLogService>;
17 let workspaceServiceMock: Partial<WorkspaceService>;
18 let loaderServiceMock: Partial<SdcUiServices.LoaderService>;
19 let componentMetadataMock: ComponentMetadata;
21 const mockLogs = '[' +
22 '{"MODIFIER":"Carlos Santana(m08740)","COMMENT":"comment","STATUS":"200","ACTION":"Checkout","TIMESTAMP":"2018-11-19 13:00:02.388 UTC"},' +
23 '{"MODIFIER":"John Doe(m08741)","COMMENT":"comment","STATUS":"200","ACTION":"Checkin","TIMESTAMP":"2018-11-20 13:00:02.388 UTC"},' +
24 '{"MODIFIER":"Jane Doe(m08742)","COMMENT":"comment","STATUS":"200","ACTION":"Checkout","TIMESTAMP":"2018-11-21 13:00:02.388 UTC"}' +
30 componentMetadataMock = new ComponentMetadata();
31 componentMetadataMock.uniqueId = 'fake';
32 componentMetadataMock.componentType = 'SERVICE';
34 activityLogServiceMock = {
35 getActivityLog : jest.fn().mockImplementation((type, id) => Observable.of(JSON.parse(mockLogs)) )
38 workspaceServiceMock = {
39 metadata : componentMetadataMock
47 const configure: ConfigureFn = (testBed) => {
48 testBed.configureTestingModule({
49 declarations: [ActivityLogComponent],
50 imports: [NgxDatatableModule],
51 schemas: [NO_ERRORS_SCHEMA],
53 { provide: WorkspaceService, useValue: workspaceServiceMock },
54 { provide: ActivityLogService, useValue: activityLogServiceMock },
55 { provide: SdcUiServices.LoaderService, useValue: loaderServiceMock }
60 configureTests(configure).then((testBed) => {
61 fixture = testBed.createComponent(ActivityLogComponent);
66 it('should see exactly 3 activity logs', () => {
67 fixture.componentInstance.ngOnInit();
68 expect(fixture.componentInstance.activities.length).toBe(3);
71 it('should filter out 1 element when searching', () => {
72 fixture.componentInstance.ngOnInit();
80 expect(fixture.componentInstance.activities.length).toBe(3);
81 fixture.componentInstance.updateFilter(event);
82 expect(fixture.componentInstance.activities.length).toBe(1);