mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-03-22 11:35:15 +00:00
isServerAvailable check
This commit is contained in:
parent
e8e951afa7
commit
24f5f958f0
@ -1,15 +1,26 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {async, ComponentFixture, fakeAsync, TestBed, tick} from '@angular/core/testing';
|
||||
|
||||
import { ServerDiscoveryComponent } from './server-discovery.component';
|
||||
import { MatCardModule } from "@angular/material";
|
||||
import { VersionService } from "../../../services/version.service";
|
||||
import {MockedVersionService} from "../../../services/version.service.spec";
|
||||
import {Observable} from "rxjs/Rx";
|
||||
import {Version} from "../../../models/version";
|
||||
import {Server} from "../../../models/server";
|
||||
|
||||
|
||||
describe('ServerDiscoveryComponent', () => {
|
||||
let component: ServerDiscoveryComponent;
|
||||
let fixture: ComponentFixture<ServerDiscoveryComponent>;
|
||||
let mockedVersionService: MockedVersionService;
|
||||
|
||||
beforeEach(async(() => {
|
||||
mockedVersionService = new MockedVersionService();
|
||||
TestBed.configureTestingModule({
|
||||
imports: [ MatCardModule ],
|
||||
providers: [
|
||||
{ provide: VersionService, useFactory: () => mockedVersionService }
|
||||
],
|
||||
declarations: [ ServerDiscoveryComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
@ -24,4 +35,53 @@ describe('ServerDiscoveryComponent', () => {
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
// it('should discovery new server with no added yet', () => {
|
||||
// const server = component.discovery([]);
|
||||
// expect(server.ip);
|
||||
// });
|
||||
|
||||
describe('isAvailable', () => {
|
||||
it('should return version when server is available', () => {
|
||||
const version = new Version();
|
||||
version.version = '2.1.8';
|
||||
const getVersionSpy = spyOn(mockedVersionService, 'get')
|
||||
.and.returnValue(Observable.of(version));
|
||||
|
||||
component.isServerAvailable('127.0.0.1', 3080).subscribe((ver) => {
|
||||
expect(ver.version).toEqual('2.1.8');
|
||||
});
|
||||
|
||||
const server = new Server();
|
||||
server.ip = '127.0.0.1';
|
||||
server.port = 3080;
|
||||
expect(getVersionSpy).toHaveBeenCalledWith(server);
|
||||
});
|
||||
|
||||
it('should throw error once server is not available', () => {
|
||||
const version = new Version();
|
||||
version.version = '2.1.8';
|
||||
const getVersionSpy = spyOn(mockedVersionService, 'get')
|
||||
.and.returnValue(Observable.throwError(new Error("server is unavailable")));
|
||||
let hasExecuted = false;
|
||||
|
||||
component.isServerAvailable('127.0.0.1', 3080).subscribe((ver) => {}, (err) => {
|
||||
hasExecuted = true;
|
||||
expect(err.toString()).toEqual('Error: server is unavailable');
|
||||
});
|
||||
|
||||
const server = new Server();
|
||||
server.ip = '127.0.0.1';
|
||||
server.port = 3080;
|
||||
expect(getVersionSpy).toHaveBeenCalledWith(server);
|
||||
expect(hasExecuted).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
describe("discovery", () => {
|
||||
it('should discovery single server', () => {
|
||||
// component.discovery([]).
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -1,4 +1,8 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Server } from "../../../models/server";
|
||||
import { VersionService } from "../../../services/version.service";
|
||||
import {Version} from "../../../models/version";
|
||||
import {Observable} from "rxjs/Rx";
|
||||
|
||||
@Component({
|
||||
selector: 'app-server-discovery',
|
||||
@ -6,10 +10,29 @@ import { Component, OnInit } from '@angular/core';
|
||||
styleUrls: ['./server-discovery.component.scss']
|
||||
})
|
||||
export class ServerDiscoveryComponent implements OnInit {
|
||||
private defaultServers = [{
|
||||
ip: '127.0.0.1',
|
||||
port: 3080
|
||||
}
|
||||
];
|
||||
|
||||
constructor() { }
|
||||
constructor(
|
||||
private versionService: VersionService
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
}
|
||||
|
||||
discovery(servers: Server[]): Observable<Server> {
|
||||
// this.defaultServers.forEach(());
|
||||
return Observable.of(new Server());
|
||||
}
|
||||
|
||||
isServerAvailable(ip: string, port: number): Observable<Version> {
|
||||
const server = new Server();
|
||||
server.ip = ip;
|
||||
server.port = port;
|
||||
return this.versionService.get(server);
|
||||
}
|
||||
}
|
||||
|
@ -4,11 +4,18 @@ import { HttpClient } from '@angular/common/http';
|
||||
import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing';
|
||||
import { HttpServer } from './http-server.service';
|
||||
import { Server } from '../models/server';
|
||||
import { Node } from '../cartography/models/node';
|
||||
import { Port } from '../models/port';
|
||||
import { getTestServer } from './testing';
|
||||
import { VersionService } from './version.service';
|
||||
import { AppTestingModule } from "../testing/app-testing/app-testing.module";
|
||||
import {Observable} from "rxjs/Rx";
|
||||
|
||||
export class MockedVersionService {
|
||||
public response: Observable<any>;
|
||||
|
||||
public get(server: Server) {
|
||||
return this.response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
describe('VersionService', () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user