Catalog alignment
[sdc.git] / catalog-ui / src / app / ng2 / pages / workspace / activity-log / activity-log.component.spec.ts
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';
12
13 describe('activity log component', () => {
14
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;
20
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"}' +
25         ']';
26
27     beforeEach(
28         async(() => {
29
30             componentMetadataMock =  new ComponentMetadata();
31             componentMetadataMock.uniqueId = 'fake';
32             componentMetadataMock.componentType = 'SERVICE';
33
34             activityLogServiceMock = {
35                 getActivityLog : jest.fn().mockImplementation((type, id) => Observable.of(JSON.parse(mockLogs)) )
36             };
37
38             workspaceServiceMock = {
39                 metadata : componentMetadataMock
40             };
41
42             loaderServiceMock = {
43                 activate : jest.fn(),
44                 deactivate: jest.fn()
45             };
46
47             const configure: ConfigureFn = (testBed) => {
48                 testBed.configureTestingModule({
49                     declarations: [ActivityLogComponent],
50                     imports: [NgxDatatableModule],
51                     schemas: [NO_ERRORS_SCHEMA],
52                     providers: [
53                         { provide: WorkspaceService, useValue: workspaceServiceMock },
54                         { provide: ActivityLogService, useValue: activityLogServiceMock },
55                         { provide: SdcUiServices.LoaderService, useValue: loaderServiceMock }
56                         ],
57                 });
58             };
59
60             configureTests(configure).then((testBed) => {
61                 fixture = testBed.createComponent(ActivityLogComponent);
62             });
63         })
64     );
65
66     it('should see exactly 3 activity logs', () => {
67         fixture.componentInstance.ngOnInit();
68         expect(fixture.componentInstance.activities.length).toBe(3);
69     });
70
71     it('should filter out 1 element when searching', () => {
72         fixture.componentInstance.ngOnInit();
73
74         const event = {
75             target : {
76                 value : 'Checkin'
77             }
78         };
79
80         expect(fixture.componentInstance.activities.length).toBe(3);
81         fixture.componentInstance.updateFilter(event);
82         expect(fixture.componentInstance.activities.length).toBe(1);
83     });
84 });