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 'rxjs/add/observable/of'; import { Observable } from 'rxjs/Observable'; describe('SQLComponentComponent', () => { let sqlService: SqlService; let component: SQLComponent; let fixture: ComponentFixture; const reportId = "test"; const finalGetObj = {"query":"dummyQuery"}; let elements = []; let environment = [ { "baseUrl": 'just for test' } ] beforeEach(async(() => { TestBed.configureTestingModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [ SQLComponent ], imports: [FormsModule, HttpClientTestingModule, RouterTestingModule], providers: [SqlService] }) .compileComponents(); sqlService = TestBed.get(SqlService); let response : any; spyOn(sqlService, 'getSQLTabData').and.returnValue(Observable.of(environment)); spyOn(sqlService, 'postSQLValidateAndSave').and.returnValue(Observable.of(environment)); })); beforeEach(() => { fixture = TestBed.createComponent(SQLComponent); component = fixture.componentInstance; component.reportId1 = reportId; component.finalGetObj = finalGetObj; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); it('should test ngOninit subscribe method', () => { spyOn(component, 'ngOnInit').and.callThrough(); component.ngOnInit(); expect(component.ngOnInit).toHaveBeenCalled(); }); it('should test ngOnInit method', () => { component.ngOnInit(); expect(component.showSaveSQLDialog).toEqual(false); expect(component.SQLPostResponse).toEqual(true); expect(component.ValidatePostResponse).toEqual({}); }); it('should test ngOnChanges methods', () => { fixture.detectChanges(); component.ngOnChanges(); expect(component.showSaveSQLDialog).toEqual(false); expect(component.SQLPostResponse).toEqual(true); expect(component.ValidatePostResponse).toEqual({}); }); it('should test saveSQL methods if condition', () => { 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 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); component.reportMode = "Create"; component.Validatestatus = "SQL Test Run - Passed!"; component.closeValidateModal(); 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"); }); // it('should test validate method', () => { // spyOn(component, 'validate').and.callThrough(); // component.validate(); // expect(component.validate).toHaveBeenCalled(); // }); });