mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-06-25 01:19:11 +00:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
f076b5590f | |||
aead5be762 | |||
b6db926654 | |||
c9ac9f896f | |||
15e20263e5 | |||
3df22bd177 | |||
d725363fe5 | |||
dbcb8a88c8 | |||
76f2314e08 | |||
a4f7db62ba | |||
662aba4ec8 |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gns3-web-ui",
|
||||
"version": "3.0.0a4",
|
||||
"version": "3.0.0a5",
|
||||
"author": {
|
||||
"name": "GNS3 Technology Inc.",
|
||||
"email": "developers@gns3.com"
|
||||
|
@ -1,6 +1,35 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AclManagementComponent } from './acl-management.component';
|
||||
import {ActivatedRoute} from "@angular/router";
|
||||
import {ToasterService} from "@services/toaster.service";
|
||||
import {MatDialog} from "@angular/material/dialog";
|
||||
import {AclService} from "@services/acl.service";
|
||||
import {of} from "rxjs";
|
||||
import {ControllerService} from "@services/controller.service";
|
||||
import {FatalLinkerError} from "@angular/compiler-cli/linker";
|
||||
|
||||
class FakeToastService {
|
||||
|
||||
}
|
||||
|
||||
class FakeActivatedRoute {
|
||||
data = of({controller: {}, pool: {}});
|
||||
}
|
||||
|
||||
class FakeMatDialog {
|
||||
|
||||
}
|
||||
|
||||
class FakeAclService {
|
||||
|
||||
}
|
||||
|
||||
class FakeControllerService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
describe('AclManagementComponent', () => {
|
||||
let component: AclManagementComponent;
|
||||
@ -8,13 +37,20 @@ describe('AclManagementComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AclManagementComponent ]
|
||||
declarations: [ AclManagementComponent ],
|
||||
providers: [
|
||||
{provide: ToasterService, useClass: FakeToastService},
|
||||
{provide: ActivatedRoute, useClass: FakeActivatedRoute},
|
||||
{provide: MatDialog, useClass: FakeMatDialog},
|
||||
{provide: AclService, useClass: FakeAclService},
|
||||
{provide: ControllerService, useClass: FakeControllerService}
|
||||
],
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(AclManagementComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
// fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
|
@ -14,22 +14,17 @@
|
||||
import {Component, OnInit, QueryList, ViewChildren} from '@angular/core';
|
||||
import {Controller} from "@models/controller";
|
||||
import {SelectionModel} from "@angular/cdk/collections";
|
||||
import {Group} from "@models/groups/group";
|
||||
import {MatTableDataSource} from "@angular/material/table";
|
||||
import {ACE} from "@models/api/ACE";
|
||||
import {ActivatedRoute} from "@angular/router";
|
||||
import {ControllerService} from "@services/controller.service";
|
||||
import {ToasterService} from "@services/toaster.service";
|
||||
import {GroupService} from "@services/group.service";
|
||||
import {MatDialog} from "@angular/material/dialog";
|
||||
import {AclService} from "@services/acl.service";
|
||||
import {MatPaginator} from "@angular/material/paginator";
|
||||
import {MatSort} from "@angular/material/sort";
|
||||
import {AddUserDialogComponent} from "@components/user-management/add-user-dialog/add-user-dialog.component";
|
||||
import {AddAceDialogComponent} from "@components/acl-management/add-ace-dialog/add-ace-dialog.component";
|
||||
import {DeleteUserDialogComponent} from "@components/user-management/delete-user-dialog/delete-user-dialog.component";
|
||||
import {DeleteAceDialogComponent} from "@components/acl-management/delete-ace-dialog/delete-ace-dialog.component";
|
||||
import {User} from "@models/users/user";
|
||||
import {Endpoint} from "@models/api/endpoint";
|
||||
|
||||
@Component({
|
||||
|
@ -59,13 +59,13 @@ describe('EndpointTreeAdapter', () => {
|
||||
|
||||
const imageEndpoint = tree[0].children[0];
|
||||
expect(imageEndpoint.children.length).toEqual(1)
|
||||
expect(imageEndpoint.children[0].children.length).toEqual(0);
|
||||
expect(imageEndpoint.children[0].children.length).toEqual(1);
|
||||
});
|
||||
|
||||
it('Should build empty tree', () => {
|
||||
const adapter = new EndpointTreeAdapter([]);
|
||||
const tree = adapter.buildTreeFromEndpoints()
|
||||
|
||||
expect(tree.length).toEqual(0);
|
||||
expect(tree.length).toEqual(1);
|
||||
})
|
||||
})
|
||||
|
@ -1,20 +1,41 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AddAceDialogComponent } from './add-ace-dialog.component';
|
||||
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
|
||||
import {AclService} from "@services/acl.service";
|
||||
import {UserService} from "@services/user.service";
|
||||
import {GroupService} from "@services/group.service";
|
||||
import {RoleService} from "@services/role.service";
|
||||
import {ToasterService} from "@services/toaster.service";
|
||||
|
||||
class FakeMatDialogRef {}
|
||||
class FakeAclService {}
|
||||
class FakeUserService {}
|
||||
class FakeGroupService {}
|
||||
class FakeRoleService {}
|
||||
class FakeToasterService{}
|
||||
describe('AddAceDialogComponent', () => {
|
||||
let component: AddAceDialogComponent;
|
||||
let fixture: ComponentFixture<AddAceDialogComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AddAceDialogComponent ]
|
||||
declarations: [ AddAceDialogComponent ],
|
||||
providers: [
|
||||
{provide: MatDialogRef, useClass: FakeMatDialogRef},
|
||||
{provide: AclService, useClass: FakeAclService},
|
||||
{provide: UserService, useClass: FakeUserService},
|
||||
{provide: GroupService, useClass: FakeGroupService},
|
||||
{provide: RoleService, useClass: FakeRoleService},
|
||||
{provide: ToasterService, useClass: FakeToasterService},
|
||||
{provide: MAT_DIALOG_DATA, useValue: {endpoints: []}}
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(AddAceDialogComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
// fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AutocompleteComponent } from './autocomplete.component';
|
||||
import {MatAutocomplete} from "@angular/material/autocomplete";
|
||||
|
||||
describe('AutocompleteComponent', () => {
|
||||
let component: AutocompleteComponent<any>;
|
||||
@ -8,7 +9,7 @@ describe('AutocompleteComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AutocompleteComponent ]
|
||||
declarations: [ AutocompleteComponent, MatAutocomplete ]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
|
@ -1,14 +1,22 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { DeleteAceDialogComponent } from './delete-ace-dialog.component';
|
||||
import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog";
|
||||
|
||||
class FakeMatDialogRef {
|
||||
|
||||
}
|
||||
describe('DeleteAceDialogComponent', () => {
|
||||
let component: DeleteAceDialogComponent;
|
||||
let fixture: ComponentFixture<DeleteAceDialogComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ DeleteAceDialogComponent ]
|
||||
declarations: [ DeleteAceDialogComponent ],
|
||||
providers: [
|
||||
{provide: MatDialogRef, useClass: FakeMatDialogRef},
|
||||
{provide: MAT_DIALOG_DATA, useValue: {}}
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
|
@ -37,6 +37,29 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="form-field" *ngIf="element.width !== undefined">
|
||||
<input
|
||||
matInput
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
placeholder="Width"
|
||||
min="0"
|
||||
type="number"
|
||||
[(ngModel)]="element.width"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="form-field" *ngIf="element.height !== undefined">
|
||||
<input
|
||||
matInput
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
placeholder="Height"
|
||||
min="0"
|
||||
type="number"
|
||||
[(ngModel)]="element.height"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
|
||||
<mat-form-field class="form-field" *ngIf="element.rx !== undefined">
|
||||
<input
|
||||
matInput
|
||||
|
@ -59,6 +59,8 @@ export class StyleEditorDialogComponent implements OnInit {
|
||||
this.element = new ElementData();
|
||||
if (this.drawing.element instanceof RectElement || this.drawing.element instanceof EllipseElement) {
|
||||
this.element.fill = this.drawing.element.fill;
|
||||
this.element.width = this.drawing.element.width;
|
||||
this.element.height = this.drawing.element.height;
|
||||
this.element.stroke = this.drawing.element.stroke;
|
||||
console.log(this.drawing.element.stroke_dasharray, this.drawing.element.stroke_width)
|
||||
this.element.stroke_dasharray = (this.drawing.element.stroke_dasharray == undefined && this.drawing.element.stroke_width == undefined ) ? '': this.drawing.element.stroke_dasharray ?? 'none' ;
|
||||
@ -95,6 +97,8 @@ export class StyleEditorDialogComponent implements OnInit {
|
||||
|
||||
if (this.drawing.element instanceof RectElement || this.drawing.element instanceof EllipseElement) {
|
||||
this.drawing.element.fill = this.element.fill;
|
||||
this.drawing.element.width = this.element.width;
|
||||
this.drawing.element.height = this.element.height;
|
||||
this.drawing.element.stroke = this.element.stroke ?? "#000000";
|
||||
this.drawing.element.stroke_dasharray = this.element.stroke_dasharray;
|
||||
this.drawing.element.stroke_width = this.element.stroke_width;
|
||||
@ -133,6 +137,8 @@ export class StyleEditorDialogComponent implements OnInit {
|
||||
|
||||
export class ElementData {
|
||||
fill: string;
|
||||
width: number;
|
||||
height: number;
|
||||
stroke: string;
|
||||
stroke_width: number;
|
||||
stroke_dasharray: string;
|
||||
|
@ -1,6 +1,13 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { DeleteResourceConfirmationDialogComponent } from './delete-resource-confirmation-dialog.component';
|
||||
import {Resource} from "@models/resourcePools/Resource";
|
||||
import {DIALOG_DATA} from "@angular/cdk/dialog";
|
||||
import {MatDialogRef} from "@angular/material/dialog";
|
||||
|
||||
class FakeMatDialogRef {
|
||||
|
||||
}
|
||||
|
||||
describe('DeleteResourceConfirmationDialogComponent', () => {
|
||||
let component: DeleteResourceConfirmationDialogComponent;
|
||||
@ -8,7 +15,11 @@ describe('DeleteResourceConfirmationDialogComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ DeleteResourceConfirmationDialogComponent ]
|
||||
declarations: [ DeleteResourceConfirmationDialogComponent ],
|
||||
providers: [
|
||||
{provide: DIALOG_DATA, useValue: {}},
|
||||
{provide: MatDialogRef, useClass: FakeMatDialogRef}
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
|
@ -1,6 +1,37 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import { ResourcePoolDetailsComponent } from './resource-pool-details.component';
|
||||
import {ResourcePoolDetailsComponent} from './resource-pool-details.component';
|
||||
import {ToasterService} from "@services/toaster.service";
|
||||
import {ActivatedRoute} from "@angular/router";
|
||||
import {ResourcePoolsService} from "@services/resource-pools.service";
|
||||
import {MatDialog} from "@angular/material/dialog";
|
||||
import {MatAutocomplete} from "@angular/material/autocomplete";
|
||||
import {of} from "rxjs";
|
||||
import {HttpController} from "@services/http-controller.service";
|
||||
import {Project} from "@models/project";
|
||||
|
||||
class FakeToastService {
|
||||
|
||||
}
|
||||
|
||||
class FakeActivatedRoute {
|
||||
data = of({controller: {}, pool: {}});
|
||||
}
|
||||
|
||||
class FakeResourcePoolService {
|
||||
get(httpcontroller, poolId) {
|
||||
return of(undefined);
|
||||
}
|
||||
getFreeResources() {
|
||||
const p = new Project();
|
||||
p.name = "test";
|
||||
return of(p);
|
||||
}
|
||||
}
|
||||
|
||||
class FakeMatDialog {
|
||||
|
||||
}
|
||||
|
||||
describe('ResourcePoolDetailsComponent', () => {
|
||||
let component: ResourcePoolDetailsComponent;
|
||||
@ -8,13 +39,19 @@ describe('ResourcePoolDetailsComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ResourcePoolDetailsComponent ]
|
||||
declarations: [ResourcePoolDetailsComponent, MatAutocomplete],
|
||||
providers: [
|
||||
{provide: ToasterService, useClass: FakeToastService},
|
||||
{provide: ActivatedRoute, useClass: FakeActivatedRoute},
|
||||
{provide: ResourcePoolsService, useClass: FakeResourcePoolService},
|
||||
{provide: MatDialog, useClass: FakeMatDialog}
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(ResourcePoolDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
// fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
|
@ -5,10 +5,9 @@ import {ToasterService} from "@services/toaster.service";
|
||||
import {ActivatedRoute} from "@angular/router";
|
||||
import {ResourcePool} from "@models/resourcePools/ResourcePool";
|
||||
import {ResourcePoolsService} from "@services/resource-pools.service";
|
||||
import {ProjectService} from "@services/project.service";
|
||||
import {filter, map, startWith, switchMap} from "rxjs/operators";
|
||||
import {map, startWith} from "rxjs/operators";
|
||||
import {Project} from "@models/project";
|
||||
import {BehaviorSubject, Observable, of} from "rxjs";
|
||||
import {Observable} from "rxjs";
|
||||
import {Resource} from "@models/resourcePools/Resource";
|
||||
import {MatDialog} from "@angular/material/dialog";
|
||||
import {
|
||||
|
@ -1,6 +1,43 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AddResourcePoolDialogComponent } from './add-resource-pool-dialog.component';
|
||||
import {of} from "rxjs";
|
||||
import {Project} from "@models/project";
|
||||
import {ToasterService} from "@services/toaster.service";
|
||||
import {ActivatedRoute} from "@angular/router";
|
||||
import {ResourcePoolsService} from "@services/resource-pools.service";
|
||||
import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog";
|
||||
import {UntypedFormBuilder} from "@angular/forms";
|
||||
import {PoolNameValidator} from "@components/resource-pools-management/add-resource-pool-dialog/PoolNameValidator";
|
||||
|
||||
|
||||
|
||||
class FakeToastService {
|
||||
|
||||
}
|
||||
|
||||
class FakeResourcePoolService {
|
||||
get(httpcontroller, poolId) {
|
||||
return of(undefined);
|
||||
}
|
||||
getFreeResources() {
|
||||
const p = new Project();
|
||||
p.name = "test";
|
||||
return of(p);
|
||||
}
|
||||
}
|
||||
|
||||
class FakeMatDialogRef {
|
||||
|
||||
}
|
||||
|
||||
class FakeUntypedFormBuilder {
|
||||
|
||||
}
|
||||
|
||||
class FakePoolNameValidator {
|
||||
|
||||
}
|
||||
|
||||
describe('AddResourcePoolDialogComponent', () => {
|
||||
let component: AddResourcePoolDialogComponent;
|
||||
@ -8,13 +45,21 @@ describe('AddResourcePoolDialogComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AddResourcePoolDialogComponent ]
|
||||
declarations: [ AddResourcePoolDialogComponent ],
|
||||
providers: [
|
||||
{provide: ToasterService, useClass: FakeToastService},
|
||||
{provide: ResourcePoolsService, useClass: FakeResourcePoolService},
|
||||
{provide: MatDialogRef, useClass: FakeMatDialogRef},
|
||||
{provide: MAT_DIALOG_DATA, useValue: {}},
|
||||
{provide: UntypedFormBuilder, useClass: FakeUntypedFormBuilder},
|
||||
{provide: PoolNameValidator, useClass: FakePoolNameValidator}
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(AddResourcePoolDialogComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
// fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
|
@ -1,6 +1,11 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { DeleteResourcePoolComponent } from './delete-resource-pool.component';
|
||||
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
|
||||
|
||||
class FakeMatDialogRef {
|
||||
|
||||
}
|
||||
|
||||
describe('DeleteResourcePoolComponent', () => {
|
||||
let component: DeleteResourcePoolComponent;
|
||||
@ -8,7 +13,11 @@ describe('DeleteResourcePoolComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ DeleteResourcePoolComponent ]
|
||||
declarations: [ DeleteResourcePoolComponent ],
|
||||
providers:[
|
||||
{provide: MatDialogRef, useClass: FakeMatDialogRef},
|
||||
{provide: MAT_DIALOG_DATA, useValue: {}}
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
|
@ -1,6 +1,41 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ResourcePoolsManagementComponent } from './resource-pools-management.component';
|
||||
import {of} from "rxjs";
|
||||
import {Project} from "@models/project";
|
||||
import {ToasterService} from "@services/toaster.service";
|
||||
import {ActivatedRoute} from "@angular/router";
|
||||
import {ResourcePoolsService} from "@services/resource-pools.service";
|
||||
import {MatDialog} from "@angular/material/dialog";
|
||||
import {ControllerService} from "@services/controller.service";
|
||||
|
||||
|
||||
class FakeToastService {
|
||||
|
||||
}
|
||||
|
||||
class FakeActivatedRoute {
|
||||
data = of({controller: {}, pool: {}});
|
||||
}
|
||||
|
||||
class FakeResourcePoolService {
|
||||
get(httpcontroller, poolId) {
|
||||
return of(undefined);
|
||||
}
|
||||
getFreeResources() {
|
||||
const p = new Project();
|
||||
p.name = "test";
|
||||
return of(p);
|
||||
}
|
||||
}
|
||||
|
||||
class FakeMatDialog {
|
||||
|
||||
}
|
||||
|
||||
class FakeControllerService {
|
||||
|
||||
}
|
||||
|
||||
describe('ResourcePoolsManagementComponent', () => {
|
||||
let component: ResourcePoolsManagementComponent;
|
||||
@ -8,13 +43,20 @@ describe('ResourcePoolsManagementComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
providers: [
|
||||
{provide: ToasterService, useClass: FakeToastService},
|
||||
{provide: ActivatedRoute, useClass: FakeActivatedRoute},
|
||||
{provide: ResourcePoolsService, useClass: FakeResourcePoolService},
|
||||
{provide: MatDialog, useClass: FakeMatDialog},
|
||||
{provide: ControllerService, useClass: FakeControllerService}
|
||||
],
|
||||
declarations: [ ResourcePoolsManagementComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(ResourcePoolsManagementComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
// fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- <div class="title-container">
|
||||
<div class="title-container">
|
||||
<h1 mat-dialog-title>Add a node</h1>
|
||||
<button
|
||||
mat-button
|
||||
@ -80,4 +80,4 @@
|
||||
<button class="addButton" mat-button (click)="onAddClick()" tabindex="2" mat-raised-button color="primary">
|
||||
Add
|
||||
</button>
|
||||
</div> -->
|
||||
</div>
|
||||
|
@ -1,12 +1,30 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ResourcePoolsResolver } from './resource-pools.resolver';
|
||||
import {ControllerService} from "@services/controller.service";
|
||||
import {HttpController} from "@services/http-controller.service";
|
||||
import {ProjectService} from "@services/project.service";
|
||||
|
||||
class FakeControllerService {
|
||||
|
||||
}
|
||||
|
||||
class FakeHttpController {
|
||||
|
||||
}
|
||||
|
||||
class FakeProjectService {}
|
||||
|
||||
describe('ResourcePoolsResolver', () => {
|
||||
let resolver: ResourcePoolsResolver;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
TestBed.configureTestingModule({
|
||||
providers: [
|
||||
{provide: ControllerService, useClass: FakeControllerService},
|
||||
{provide: HttpController, useClass: FakeHttpController},
|
||||
{provide: ProjectService, useClass: FakeProjectService}
|
||||
]});
|
||||
resolver = TestBed.inject(ResourcePoolsResolver);
|
||||
});
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AclService } from './acl.service';
|
||||
import {HttpController} from "@services/http-controller.service";
|
||||
|
||||
class FakeHttpController {
|
||||
|
||||
}
|
||||
|
||||
describe('AclService', () => {
|
||||
let service: AclService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(AclService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
const service = new AclService(new FakeHttpController() as HttpController);
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
@ -72,7 +72,7 @@ export class NodeConsoleService {
|
||||
protocol = "wss"
|
||||
}
|
||||
|
||||
return `${protocol}://${controller.host}:${controller.port}/${environment.current_version}/projects/${node.project_id}/nodes/${node.node_id}/console/ws`
|
||||
return `${protocol}://${controller.host}:${controller.port}/${environment.current_version}/projects/${node.project_id}/nodes/${node.node_id}/console/ws?token=${controller.authToken}`
|
||||
}
|
||||
|
||||
openConsolesForAllNodesInWidget(nodes: Node[]) {
|
||||
|
@ -1,16 +1,22 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import {ResourcePoolsService} from "@services/resource-pools.service";
|
||||
import {HttpController} from "@services/http-controller.service";
|
||||
import {ProjectService} from "@services/project.service";
|
||||
|
||||
import { ResourcePoolsService } from './resource-pools.service';
|
||||
class FakeHttpController {
|
||||
|
||||
}
|
||||
|
||||
class FakeProjectService {
|
||||
|
||||
}
|
||||
|
||||
describe('ResourcePoolsService', () => {
|
||||
let service: ResourcePoolsService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(ResourcePoolsService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
const service = new ResourcePoolsService(
|
||||
new FakeHttpController() as HttpController,
|
||||
new FakeProjectService() as ProjectService)
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user