Skip to content

Commit

Permalink
#164 missing parts
Browse files Browse the repository at this point in the history
  • Loading branch information
eichelbe committed Jan 23, 2024
1 parent b86409c commit a566160
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 43 deletions.
2 changes: 2 additions & 0 deletions platform/managementUI/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ For more material icons, see [Google Fonts Icons](https://fonts.google.com/icons
* Dynamic dialog sizes
* Offline icons
* Generated variable names
* Logging output
* Mesh editor styling

## Further details

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { EnvConfigService } from '../../services/env-config.service';
import { retry } from '../../services/utils.service';
import { FileUploadComponent } from '../file-upload/file-upload.component';
import { MatIconModule } from '@angular/material/icon';
import { MatTooltipModule } from '@angular/material/tooltip';

describe('DeploymentPlansComponent', () => {

Expand All @@ -15,7 +16,7 @@ describe('DeploymentPlansComponent', () => {
beforeEach(async () => {
await EnvConfigService.init();
await TestBed.configureTestingModule({
imports: [ HttpClientModule, MatIconModule ],
imports: [ HttpClientModule, MatIconModule, MatTooltipModule ],
declarations: [ DeploymentPlansComponent, FileUploadComponent ]
})
.compileComponents();
Expand Down Expand Up @@ -54,13 +55,11 @@ describe('DeploymentPlansComponent', () => {
td = tabDataRow.querySelector('span[id="data.description"]') as HTMLElement;
expect(td).toBeTruthy();
expect(td.innerText).toMatch(/\S+/);

let btn = tabDataRow.querySelector('button[id="data.btnDeploy"]') as HTMLElement;
if (planId === 'SimpleMesh') {
deployButton = btn;
}
expect(btn).toBeTruthy();
expect(btn.innerText).toContain("deploy");
expect(btn.getAttribute("disabled")).toEqual(null); // else toEqual('')
i++;
}
Expand Down Expand Up @@ -88,7 +87,7 @@ describe('DeploymentPlansComponent', () => {
it('should have upload button', async() => {
await fixture.detectChanges();
let compiled = fixture.nativeElement as HTMLElement;
let button = compiled.querySelector('button[class="upload-btn"]') as HTMLElement;
let button = compiled.querySelector('button[id="upload-btn"]') as HTMLElement;
expect(button).toBeTruthy();
// click does not help much here due to input
const dataBase64 = "VEhJUyBJUyBUSEUgQU5TV0VSCg==";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatTooltipModule } from '@angular/material/tooltip';
import { NgVar } from 'src/app/directives/ng-var.directive';
import { FileUploadComponent } from '../../file-upload/file-upload.component';
import { MatIconModule } from '@angular/material/icon';

describe('StatusBoxComponent', () => {
let component: StatusBoxComponent;
Expand All @@ -21,6 +22,7 @@ describe('StatusBoxComponent', () => {
MatDialogModule,
BrowserAnimationsModule,
MatCardModule,
MatIconModule,
MatProgressSpinnerModule,
MatTooltipModule ],
declarations: [ StatusBoxComponent, NgVar, FileUploadComponent ],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { MatTooltipModule } from '@angular/material/tooltip';
import { FormsModule } from "@angular/forms";
import { EnvConfigService } from '../../services/env-config.service';
import { Resource } from 'src/interfaces';

describe('EditorComponent', () => {

Expand Down Expand Up @@ -65,7 +64,7 @@ describe('EditorComponent', () => {
{name: "name", kind: InputKind.text}, {name: "type", kind: InputKind.ref}
]},
{name: "RecordType", input:[
{name: "name", kind: InputKind.text}, {name: "fields", kind: InputKind.sub}
{name: "name", kind: InputKind.text}, {name: "fields", kind: InputKind.ref}
]},
{name: "ByteArrayTypeType"},
{name: "IntegerArrayTypeType"},
Expand Down Expand Up @@ -202,7 +201,7 @@ async function test(fixture: ComponentFixture<EditorComponent>, component: Edito

let compiled = fixture.nativeElement as HTMLElement;

if (typeProps.length > 1) { // only selection if multiple
/*if (typeProps.length > 1) { // only selection if multiple
let expectedItems = new Set<string>(typeProps.map(p => p.name));
let typeSelect = compiled.querySelector('mat-select[id="typeSelect"]') as HTMLElement;
expect(typeSelect).toBeTruthy();
Expand All @@ -225,49 +224,48 @@ async function test(fixture: ComponentFixture<EditorComponent>, component: Edito
}
expect(ra[0].idShort).toEqual(typeProps[0].name);
}
}
}*/
for (let typeProp of typeProps.filter(p => p.input)) {
component.selectedType = component.meta?.value?.find(type => type.idShort === typeProp.name);
component.generateInputs();

await fixture.detectChanges();
await fixture.whenRenderingDone();

//console.log(fixture.nativeElement);

let inputs = compiled.querySelector('div[class="inputGroup"]') as HTMLElement;
expect(inputs).toBeTruthy();
var uiGroups = inputs.children;
for (var g = 0; g < uiGroups.length; g++) {
var uiGroup = uiGroups[g] as HTMLElement;
var inputName = uiGroup.querySelector('p[id="inputName"]') as HTMLElement;
expect(inputName).toBeTruthy();
var varName = inputName.innerText.trim();

var expectedEditor = typeProp.input?.find(p => p.name === varName);
var textEditor = uiGroup.querySelector('mat-label') as HTMLElement;
var subEditor = uiGroup.querySelector('app-subeditor-button') as HTMLElement;
var boolEditor = uiGroup.querySelector('app-boolean-dropdown') as HTMLElement;
var enumEditor = uiGroup.querySelector('app-enum-dropdown') as HTMLElement;
var refEditor = uiGroup.querySelector('app-input-ref-select') as HTMLElement;
if (expectedEditor) {
if (textEditor) {
var input = uiGroup.querySelector('input') as HTMLElement;
expect(input).withContext(varName).toBeTruthy();
expect(expectedEditor?.kind).withContext(varName + " shall be text").toBe(InputKind.text);
} else if (boolEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be bool").toBe(InputKind.bool);
} else if (enumEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be enum").toBe(InputKind.enum);
} else if (subEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be sub").toBe(InputKind.sub);
} else if (refEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be ref").toBe(InputKind.ref);
}
} else {
if (debug) {
console.log("UNKNOWN " + inputName.innerText.trim() + " text " + (!textEditor)+ " bool " + (!boolEditor)+ " sub "
+ (!subEditor)+ " enum " + (!enumEditor)+ " ref " + (!refEditor));
var inputName = uiGroup.querySelector('[id="inputName"]') as HTMLElement;
if (inputName) {
expect(inputName).withContext("uiGroup " + g).toBeTruthy();
var varName = inputName.innerText.trim();
var expectedEditor = typeProp.input?.find(p => p.name === varName);
var textEditor = uiGroup.querySelector('mat-label') as HTMLElement;
var subEditor = uiGroup.querySelector('app-subeditor-button') as HTMLElement;
var boolEditor = uiGroup.querySelector('app-boolean-dropdown') as HTMLElement;
var enumEditor = uiGroup.querySelector('app-enum-dropdown') as HTMLElement;
var refEditor = uiGroup.querySelector('app-input-ref-select') as HTMLElement;
if (expectedEditor) {
if (textEditor) {
var input = uiGroup.querySelector('input') as HTMLElement;
expect(input).withContext(varName).toBeTruthy();
expect(expectedEditor?.kind).withContext(varName + " shall be text").toBe(InputKind.text);
} else if (boolEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be bool").toBe(InputKind.bool);
} else if (enumEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be enum").toBe(InputKind.enum);
} else if (subEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be sub").toBe(InputKind.sub);
} else if (refEditor) {
expect(expectedEditor?.kind).withContext(varName + " shall be ref").toBe(InputKind.ref);
}
} else {
if (debug) {
console.log("UNKNOWN " + inputName.innerText.trim() + " text " + (!textEditor)+ " bool " + (!boolEditor)+ " sub "
+ (!subEditor)+ " enum " + (!enumEditor)+ " ref " + (!refEditor));
}
}
}
// TODO buttons
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { FileUploadComponent, chunkInput } from './file-upload.component';
import { EnvConfigService } from 'src/app/services/env-config.service';
import { retry } from 'src/app/services/utils.service';
import { MatIconModule } from '@angular/material/icon';
import { MatTooltipModule } from '@angular/material/tooltip';

describe('FileUploadComponent', () => {

Expand All @@ -13,7 +14,7 @@ describe('FileUploadComponent', () => {
beforeEach(async () => {
await EnvConfigService.init();
await TestBed.configureTestingModule({
imports: [ MatIconModule ],
imports: [ MatIconModule, MatTooltipModule ],
declarations: [ ],
})
.compileComponents().then(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { InstancesComponent } from './instances.component';
import { HttpClientModule } from '@angular/common/http';
import { EnvConfigService } from '../../services/env-config.service';
import { retry } from '../../services/utils.service';
import { MatIconModule } from '@angular/material/icon';

describe('InstancesComponent', () => {

Expand All @@ -13,7 +14,7 @@ describe('InstancesComponent', () => {
beforeEach(async () => {
await EnvConfigService.init();
await TestBed.configureTestingModule({
imports: [ HttpClientModule ],
imports: [ HttpClientModule, MatIconModule ],
declarations: [ InstancesComponent ]
})
.compileComponents();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ import { routes } from "../../app-routing.module";
import { of } from 'rxjs';
import { FileUploadComponent } from '../file-upload/file-upload.component';
import { retry } from 'src/app/services/utils.service';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatSelectModule } from '@angular/material/select';
import { EditorComponent } from '../editor/editor.component';
import { FormsModule } from '@angular/forms';

describe('ListComponent', () => {

Expand All @@ -33,8 +37,11 @@ describe('ListComponent', () => {
MatIconModule,
BrowserAnimationsModule,
MatDialogModule,
MatTooltipModule,
MatSelectModule,
FormsModule,
RouterTestingModule.withRoutes(routes) ],
declarations: [ ListComponent, FileUploadComponent ],
declarations: [ ListComponent, FileUploadComponent, EditorComponent ],
providers: [
{provide: MatDialogRef, useValue: {}},
{provide: MAT_DIALOG_DATA, useValue: []},
Expand Down Expand Up @@ -184,7 +191,7 @@ async function test(fixture: ComponentFixture<ListComponent>, component: ListCom
expect(item.innerText).withContext(context).toMatch(/\S+/);

if (tabName == "Applications") {
let uploadBtn = compiled.querySelector('button[class="upload-btn"]');
let uploadBtn = compiled.querySelector('button[id="upload-btn"]');
expect(uploadBtn).withContext(`upload button of table ${tabName}`).toBeTruthy();
// click does not help much here due to input
const dataBase64 = "VEhJUyBJUyBUSEUgQU5TV0VSCg==";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ describe('ResourcesComponent', () => {

let navigateSpy = spyOn(router, 'navigateByUrl');
let button = compiled.querySelector('div[id="bottom"] button') as HTMLElement;
expect(button?.innerText).toEqual('resource details');
expect(button?.innerText).toMatch('resource details');
button.click();
expect(navigateSpy).toHaveBeenCalledWith('/resources/local');
});
Expand Down

0 comments on commit a566160

Please sign in to comment.