1 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2 import { DefinitionComponent } from './definition.component';
3 import { CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
4 import { HttpClientTestingModule } from '@angular/common/http/testing';
5 import { FormsModule } from '@angular/forms';
6 import { RouterTestingModule } from '@angular/router/testing';
7 import 'rxjs/add/observable/of';
8 import { Observable } from 'rxjs/Observable';
9 import { DefinitionService } from './definition.service';
10 import { ActivatedRoute } from '@angular/router';
12 describe('DefinitionComponent', () => {
13 let component: DefinitionComponent;
14 let fixture: ComponentFixture<DefinitionComponent>;
15 let _definitionService:DefinitionService;
16 let activatedRoute:ActivatedRoute;
19 "reportName":"reportName",
20 "reportDescr":"reportDescr",
21 "reportType":"reportType",
23 "formHelpText":"formHelpText",
24 "repDefType":"repDefType",
26 "hideFormFieldsAfterRun":true,
27 "maxRowsInExcelCSVDownload":10,
29 "dataGridAlign":"dataGridAlign",
30 "emptyMessage":"emptyMessage",
31 "dataContainerHeight":12,
32 "dataContainerWidth":13,
33 "allowScheduler":true,
34 "sizedByContent":true,
35 "displayOptions":{"string":"string"},
36 "runtimeColSortDisabled":true,
38 "reportTitle":"reportTitle",
39 "reportSubTitle":"reportSubTitle",
46 "dashboardLayoutJSON":'"data"',
47 "dashboardLayoutHTML":"dashboardLayoutHTML"
50 beforeEach(async(() => {
51 TestBed.configureTestingModule({
52 schemas:[CUSTOM_ELEMENTS_SCHEMA],
53 declarations: [ DefinitionComponent ],
56 HttpClientTestingModule,
59 providers:[DefinitionService]
65 fixture = TestBed.createComponent(DefinitionComponent);
66 component = fixture.componentInstance;
67 fixture.detectChanges();
68 _definitionService=TestBed.get(DefinitionService);
69 activatedRoute=TestBed.get(ActivatedRoute)
72 it('should create', () => {
73 expect(component).toBeTruthy();
76 it('should test ngOnInit method',()=>{
80 component.IncomingReportId=-1;
81 component.reportMode="Create";
82 //spyOn(activatedRoute,'params').and.returnValue(Observable.of(params));
83 let spy=spyOn(_definitionService,'getDefinitionPageDetails').and.returnValue(Observable.of(response));
85 expect(spy).toHaveBeenCalled();
86 expect(component.isEdit).toBe(true);
87 expect(component.showDialog).toBe(false);
90 it('should test first if condition in saveDefinitionInfo method',()=>{
91 component.IncomingReportId=-1;
92 component.reportMode="Create";
93 component.allowScheduler=true;
94 component.sizedByContent = true;
95 component.saveDefinitionInfo();
96 expect(component.finalPostObj["tabName"]).toEqual("Definition");
97 expect(component.finalPostObj["tabId"]).toEqual("Def");
98 expect(component.finalPostObj["reportId"]).toEqual(component.reportId);
99 expect(component.finalPostObj["reportName"]).toEqual(component.reportName);
100 expect(component.finalPostObj["reportDescr"]).toEqual(component.reportDescription);
101 expect(component.finalPostObj["reportType"]).toEqual(component.reportType);
102 expect(component.finalPostObj["reportTypeList"]).toEqual(null);
103 expect(component.finalPostObj["dbInfo"]).toEqual(component.dataSrc);
104 expect(component.finalPostObj["formHelpText"]).toEqual(component.helpText);
105 expect(component.finalPostObj["pageSize"]).toEqual(component.pageSize);
106 expect(component.finalPostObj["hideFormFieldsAfterRun"]).toEqual(component.hideFormFields1);
107 expect(component.finalPostObj["maxRowsInExcelCSVDownload"]).toEqual(component.maxRows);
108 expect(component.finalPostObj["frozenColumns"]).toEqual(component.colsFrozen);
109 expect(component.finalPostObj["dataGridAlign"]).toEqual(component.gridAlign);
110 expect(component.finalPostObj["emptyMessage"]).toEqual(component.emptyMessage);
111 expect(component.finalPostObj["dataContainerHeight"]).toEqual(component.heightContainer);
112 expect(component.finalPostObj["dataContainerWidth"]).toEqual(component.widthContainer);
113 expect(component.finalPostObj["runtimeColSortDisabled"]).toEqual(component.disableColumnSort);
114 expect(component.finalPostObj["numFormCols"]).toEqual(component.runTimeFormNum);
115 expect(component.finalPostObj["reportTitle"]).toEqual(component.reportTitle);
116 expect(component.finalPostObj["reportSubTitle"]).toEqual(component.reportSubTitle);
117 expect(component.finalPostObj["oneTimeRec"]).toEqual(component.oneTime);
118 expect(component.finalPostObj["hourlyRec"]).toEqual(component.hourly);
119 expect(component.finalPostObj["dailyRec"]).toEqual(component.daily);
120 expect(component.finalPostObj["dailyMFRec"]).toEqual(component.MonFri);
121 expect(component.finalPostObj["weeklyRec"]).toEqual(component.Weekly);
122 expect(component.finalPostObj["monthlyRec"]).toEqual(component.Monthly);
123 expect(component.finalPostObj["allowScheduler"]).toEqual("Y");
124 expect(component.finalPostObj["sizedByContent"]).toEqual("Y");
125 expect(component.finalPostObj["repDefType"]).toEqual(component.reportDefinition);
129 it('should test second if condition in saveDefinitionInfo method',()=>{
130 component.IncomingReportId=1;
131 component.reportMode="Edit";
132 component.allowScheduler=true;
133 component.sizedByContent = true;
134 component.reportType="Dashboard";
135 component.saveDefinitionInfo();
137 expect(component.finalPostObj["tabName"]).toEqual("Definition");
138 expect(component.finalPostObj["tabId"]).toEqual("Def");
139 expect(component.finalPostObj["reportId"]).toEqual(component.reportId);
140 expect(component.finalPostObj["reportName"]).toEqual(component.reportName);
141 expect(component.finalPostObj["reportDescr"]).toEqual(component.reportDescription);
142 expect(component.finalPostObj["reportType"]).toEqual(component.reportType);
144 expect(component.finalPostObj["dashboardLayoutJSON"]).toEqual(JSON.stringify(component.dashboardObj));
145 expect(component.finalPostObj["dashboardLayoutHTML"]).toEqual(component.dashboardLayoutHTML);
149 it('should test else condition inside second if condition in saveDefinitionInfo method',()=>{
150 component.IncomingReportId=1;
151 component.reportMode="Edit";
152 component.reportType!="dashboard";
153 component.saveDefinitionInfo();
154 expect(component.finalPostObj["reportTypeList"]).toEqual(null);
155 expect(component.finalPostObj["dbInfo"]).toEqual(component.dataSrc);
156 expect(component.finalPostObj["formHekpText"]).toEqual(component.helpText);
157 expect(component.finalPostObj["pageSize"]).toEqual(component.pageSize);
160 it('should test subscribe in second if condition present inside saveDefinitionnInfo method',()=>{
161 component.IncomingReportId=1;
162 component.reportMode="Edit";
163 component.showDialog=true;
164 let spy=spyOn(_definitionService,'portDefinitionPageDetails').and.returnValue(Observable.of(''))
165 component.saveDefinitionInfo();
166 expect(spy).toHaveBeenCalled()
167 expect(component.status).toEqual("Failure!");
168 expect(component.message).toEqual("Definition could not be updated.");
169 expect(component.showDialog).toBe(false);
170 expect(component.closable).toBe(true);
174 it('should test close method',()=>{
175 component.showDialog=true;
177 expect(component.showDialog).toEqual(false);
178 expect(component.closable).toEqual(false);
181 it('should test onTransferDashboardObj method',()=>{
182 expect(component.onTransferDashboardObj('value')).toBeUndefined();