From 22a1a7bb5211d7a51bec86172dc27d466e3ee7f5 Mon Sep 17 00:00:00 2001 From: sshijun Date: Mon, 11 Nov 2019 13:56:24 +0800 Subject: [PATCH] Add more UT for scanner Signed-off-by: sshijun --- .../scanner/config-scanner.component.spec.ts | 17 ++++++- .../project/scanner/scanner.component.html | 4 +- .../project/scanner/scanner.component.spec.ts | 48 ++++++++++++++----- 3 files changed, 54 insertions(+), 15 deletions(-) diff --git a/src/portal/src/app/config/scanner/config-scanner.component.spec.ts b/src/portal/src/app/config/scanner/config-scanner.component.spec.ts index 840b13218..eea9a8965 100644 --- a/src/portal/src/app/config/scanner/config-scanner.component.spec.ts +++ b/src/portal/src/app/config/scanner/config-scanner.component.spec.ts @@ -1,4 +1,4 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { async, ComponentFixture, ComponentFixtureAutoDetect, TestBed } from '@angular/core/testing'; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { ClarityModule } from "@clr/angular"; import { of } from "rxjs"; @@ -39,6 +39,9 @@ describe('ConfigurationScannerComponent', () => { }, getScanners() { return of([mockScanner1]); + }, + updateScanner() { + return of(true); } }; beforeEach(async(() => { @@ -60,6 +63,8 @@ describe('ConfigurationScannerComponent', () => { ConfirmationDialogService, TranslateService, { provide: ConfigScannerService, useValue: fakedConfigScannerService }, + // open auto detect + { provide: ComponentFixtureAutoDetect, useValue: true } ] }) .compileComponents(); @@ -81,4 +86,14 @@ describe('ConfigurationScannerComponent', () => { expect(el.getAttribute('disable')).toBeFalsy(); }); }); + it('edit a scanner', () => { + component.selectedRow = mockScanner1; + component.editScanner(); + expect(component.newScannerDialog.opened).toBeTruthy(); + fixture.detectChanges(); + fixture.nativeElement.querySelector('#scanner-name').value = 'test456'; + fixture.nativeElement.querySelector('#button-save').click(); + fixture.detectChanges(); + expect(component.newScannerDialog.opened).toBeFalsy(); + }); }); diff --git a/src/portal/src/app/project/scanner/scanner.component.html b/src/portal/src/app/project/scanner/scanner.component.html index fb919eb26..96bf3adc7 100644 --- a/src/portal/src/app/project/scanner/scanner.component.html +++ b/src/portal/src/app/project/scanner/scanner.component.html @@ -87,7 +87,7 @@ diff --git a/src/portal/src/app/project/scanner/scanner.component.spec.ts b/src/portal/src/app/project/scanner/scanner.component.spec.ts index 1a63b494a..4a7ec83ee 100644 --- a/src/portal/src/app/project/scanner/scanner.component.spec.ts +++ b/src/portal/src/app/project/scanner/scanner.component.spec.ts @@ -9,14 +9,23 @@ import { ScannerComponent } from "./scanner.component"; import { ConfigScannerService } from "../../config/scanner/config-scanner.service"; import { SharedModule } from "../../shared/shared.module"; import { ActivatedRoute } from "@angular/router"; +import { Scanner } from "../../config/scanner/scanner"; -xdescribe('ScannerComponent', () => { - let mockScanner1 = { +describe('ScannerComponent', () => { + const mockScanner1: Scanner = { + uuid: 'abc', name: 'test1', description: 'just a sample', version: '1.0.0', url: 'http://168.0.0.1' }; + const mockScanner2: Scanner = { + uuid: 'def', + name: 'test2', + description: 'just a sample', + version: '2.0.0', + url: 'http://168.0.0.2' + }; let component: ScannerComponent; let fixture: ComponentFixture; let fakedConfigScannerService = { @@ -24,7 +33,13 @@ xdescribe('ScannerComponent', () => { return of(mockScanner1); }, getScanners() { - return of([mockScanner1]); + return of([mockScanner1, mockScanner2]); + }, + getProjectScanners() { + return of([mockScanner1, mockScanner2]); + }, + updateProjectScanner() { + return of(true); } }; let fakedRoute = { @@ -57,21 +72,30 @@ xdescribe('ScannerComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(ScannerComponent); component = fixture.componentInstance; + spyOn(component, 'getPermission').and.returnValue(undefined); fixture.detectChanges(); }); it('should creat', () => { expect(component).toBeTruthy(); }); it('should get scanner and render', () => { - fixture.whenStable().then(() => { - let el: HTMLElement = fixture.nativeElement.querySelector('#scanner-name'); - expect(el.textContent.trim).toEqual('test1'); - }); + component.hasCreatePermission = true; + let el: HTMLElement = fixture.nativeElement.querySelector('#scanner-name'); + expect(el.textContent.trim()).toEqual('test1'); }); - it('should get scanners and edit button is available', () => { - fixture.whenStable().then(() => { - let el: HTMLElement = fixture.nativeElement.querySelector('#edit-scanner'); - expect(el).toBeTruthy(); - }); + it('select another scanner', () => { + component.hasCreatePermission = true; + component.getScanners(); + fixture.detectChanges(); + const editButton = fixture.nativeElement.querySelector('#edit-scanner'); + expect(editButton).toBeTruthy(); + editButton.click(); + fixture.detectChanges(); + component.selectedScanner = mockScanner2; + fixture.detectChanges(); + const saveButton = fixture.nativeElement.querySelector('#save-scanner'); + saveButton.click(); + fixture.detectChanges(); + expect(component.opened).toBeFalsy(); }); });