9363651988182f80c81ea2540544b31ce23a1abc
[portal/sdk.git] /
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';
11
12 describe('DefinitionComponent', () => {
13   let component: DefinitionComponent;
14   let fixture: ComponentFixture<DefinitionComponent>;
15   let _definitionService:DefinitionService;
16   let activatedRoute:ActivatedRoute;
17   var response={
18     "reportId":123,
19     "reportName":"reportName",
20     "reportDescr":"reportDescr",
21     "reportType":"reportType",
22     "dbInfo":"dbInfo",
23     "formHelpText":"formHelpText",
24     "repDefType":"repDefType",
25     "pageSize":20,
26     "hideFormFieldsAfterRun":true,
27     "maxRowsInExcelCSVDownload":10,
28     "frozenColumns":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,
37     "numFormCols":100,
38     "reportTitle":"reportTitle",
39     "reportSubTitle":"reportSubTitle",
40     "oneTimeRec":true,
41     "hourlyRec":true,
42     "dailyRec":true,
43     "dailyMFRec":true,
44     "weeklyRec":true,
45     "monthlyRec":true,
46     "dashboardLayoutJSON":'"data"',
47     "dashboardLayoutHTML":"dashboardLayoutHTML"
48   }
49
50   beforeEach(async(() => {
51     TestBed.configureTestingModule({
52       schemas:[CUSTOM_ELEMENTS_SCHEMA],
53       declarations: [ DefinitionComponent ],
54       imports:[
55         FormsModule,
56         HttpClientTestingModule,
57         RouterTestingModule
58       ],
59       providers:[DefinitionService]
60     })
61     .compileComponents();
62   }));
63
64   beforeEach(() => {
65     fixture = TestBed.createComponent(DefinitionComponent);
66     component = fixture.componentInstance;
67     fixture.detectChanges();
68     _definitionService=TestBed.get(DefinitionService);
69     activatedRoute=TestBed.get(ActivatedRoute)
70   });
71
72   it('should create', () => {
73     expect(component).toBeTruthy();
74   });
75
76   it('should test ngOnInit method',()=>{
77     var params={
78       "reportId":100
79     };
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));
84     component.ngOnInit();
85     expect(spy).toHaveBeenCalled();
86     expect(component.isEdit).toBe(true);
87     expect(component.showDialog).toBe(false);
88   });
89
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);
126
127   })
128
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();
136     
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);
143   
144     expect(component.finalPostObj["dashboardLayoutJSON"]).toEqual(JSON.stringify(component.dashboardObj));
145     expect(component.finalPostObj["dashboardLayoutHTML"]).toEqual(component.dashboardLayoutHTML);
146
147   })
148
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);
158   })
159   
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);
171
172   })
173
174   it('should test close method',()=>{
175     component.showDialog=true;
176     component.close();
177     expect(component.showDialog).toEqual(false);
178     expect(component.closable).toEqual(false);
179   })
180
181   it('should test onTransferDashboardObj method',()=>{
182     expect(component.onTransferDashboardObj('value')).toBeUndefined();
183   })
184
185 });