added test cases for sql component 70/102070/2
authorRupinder <rupinsi1@in.ibm.com>
Thu, 20 Feb 2020 12:23:09 +0000 (17:53 +0530)
committerRupinderjeet Singh <rupinsi1@in.ibm.com>
Fri, 21 Feb 2020 08:49:23 +0000 (08:49 +0000)
written test cases for sql component

Issue-ID: PORTAL-834
Change-Id: I70cf9576c390a1184893694046cc4bbcd8190a8c
Signed-off-by: Rupinder<rupinsi1@in.ibm.com>
ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.spec.ts

index 0f09e4e..795afc2 100644 (file)
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { SQLComponent } from './sql.component';
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+import { SqlService } from './sql.service';
+import { Observable, of } from 'rxjs';
+import { element } from '@angular/core/src/render3';
 
 describe('SQLComponentComponent', () => {
+  let sqlService: SqlService;
   let component: SQLComponent;
   let fixture: ComponentFixture<SQLComponent>;
+  const reportId =  "test";
+  const finalGetObj = {"query":"dummyQuery"}
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ SQLComponent ]
+      schemas: [CUSTOM_ELEMENTS_SCHEMA],
+      declarations: [ SQLComponent ],
+      imports: [FormsModule, HttpClientTestingModule, RouterTestingModule],
+      providers: [SqlService]
     })
     .compileComponents();
+    sqlService = TestBed.get(SqlService);
   }));
 
   beforeEach(() => {
+
     fixture = TestBed.createComponent(SQLComponent);
     component = fixture.componentInstance;
+    component.reportId1 = reportId;
+    component.finalGetObj = finalGetObj;
+    sqlService = TestBed.get(SqlService);
     fixture.detectChanges();
+
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  it('should test ngOnInit method', () => {
+    
+    fixture.detectChanges();
+      component.ngOnInit();
+      expect(component.showSaveSQLDialog).toEqual(false);
+      expect(component.SQLPostResponse).toEqual(true);
+      expect(component.ValidatePostResponse).toEqual({});
+
+      (done: DoneFn)=> {
+        sqlService.getSQLTabData("test").subscribe(value => {
+          expect(component.showSpinner).toEqual(true);
+          expect(component.finalGetObj).toEqual(value);
+          expect(component.sqlText).toEqual(component.finalGetObj.query);
+          expect(component.showSpinner).toEqual(false);
+          done();
+        })
+      }
+
+  });
+
+  it('should test ngOnChanges method', () => {
+    
+      fixture.detectChanges();
+      component.ngOnChanges();
+      expect(component.showSaveSQLDialog).toEqual(false);
+      expect(component.SQLPostResponse).toEqual(true);
+      expect(component.ValidatePostResponse).toEqual({});
+
+        sqlService.getSQLTabData("test").subscribe((response) => {
+          expect(component.showSpinner).toBe(true);
+          expect(component.finalGetObj).toBe(response);
+          expect(component.sqlText).toEqual(component.finalGetObj.query);
+          expect(component.showSpinner).toEqual(false);
+        
+         });
+
+  });
+
+  it('should test saveSQL method', () => {
+      component.SQLPostResponse === true;
+      component.saveSQL();
+      expect(component.SQLstatus).toEqual("Success!");
+      expect(component.SQLmessage).toEqual("Your change has been saved! Definition is updated.");
+      expect(component.showSaveSQLDialog).toEqual(component.showSaveSQLDialog);
+      expect(component.SQLclosable).toEqual(true);
+  });
+
+  it('should test validate method', () => {
+
+      component.validate();
+
+      sqlService.postSQLValidateAndSave("test").subscribe((Response) => {
+        expect(component.showSpinner).toEqual(true);
+        expect(component.ValidateResponseString).toEqual(Response["data"]["elements"]);
+        expect(component.ValidatePostResponse).toEqual(JSON.parse(Response["data"]["elements"]));
+
+        component.ValidatePostResponse["query"] !== undefined;
+
+        expect(component.showModal).toEqual(true);
+        expect(component.Validatestatus).toEqual("SQL Test Run - Executed!");
+        expect(component.showValidateSQLDialog).toEqual(component.showValidateSQLDialog);
+        expect(component.Validateclosable).toEqual(true);
+      })
+  });
+
+  it('should test closeSaveModal method', () => {
+      component.closeSaveModal();
+      expect(component.showSaveSQLDialog).toEqual(component.showSaveSQLDialog);
+      expect(component.SQLclosable).toEqual(false);
+  });
+
+  it('should test closeValidateModal method', () => {
+      component.reportMode === "Create";
+      component.Validatestatus == "SQL Test Run - Failed!";
+
+      component.closeValidateModal();
+      expect(component.sqlText).toEqual(component.sqlText);
+      expect(component.showValidateSQLDialog).toEqual(component.showValidateSQLDialog);
+      expect(component.Validateclosable).toEqual(false);
+  });
+
+  it('should test SetValidateResponseString method', () => {
+      component.SetValidateResponseString("testing");
+      expect(component.ValidateResponseString).toEqual("testing");
+  });
+
+  it('should test GetValidateResponseString method', () => {
+      component.ValidateResponseString = 'test';
+      expect(component.GetValidateResponseString()).toEqual("test");
+  });
+
 });