AAE-38626 Updating columns when appName changes (#11554)

* [AAE-38626] Updating columns when appName changes

[AAE-38626] Updating columns when appName changes

* [AAE-38626] Added tests
This commit is contained in:
Andreas Philippi
2026-01-21 11:33:55 +00:00
committed by GitHub
parent d411d93689
commit 69b73c8490
2 changed files with 40 additions and 5 deletions
@@ -424,9 +424,10 @@ describe('ProcessListCloudComponent', () => {
done();
});
component.ngAfterContentInit();
component.appName = appName.currentValue;
component.ngOnChanges({ appName });
fixture.detectChanges();
component.reload();
});
it('should shown columns selector', () => {
@@ -758,9 +759,9 @@ describe('ProcessListCloudComponent', () => {
done();
});
component.ngAfterContentInit();
component.appName = appName.currentValue;
component.ngOnChanges({ appName });
fixture.detectChanges();
component.reload();
});
it('should shown columns selector', () => {
@@ -954,6 +955,30 @@ describe('ProcessListCloudComponent', () => {
component.resetPagination();
});
});
it('should call loadPreferencesAndInitialize when appName changes', () => {
spyOn(preferencesService, 'getPreferences').and.returnValue(of({}));
spyOn(processListCloudService, 'fetchProcessList').and.returnValue(of(fakeProcessCloudList));
spyOn(component as any, 'createDatatableSchema');
spyOn(component as any, 'createColumns');
const appName = new SimpleChange('old-app-name', 'new-app-name', false);
component.ngOnChanges({ appName });
expect(preferencesService.getPreferences).toHaveBeenCalledWith('new-app-name');
expect((component as any).createDatatableSchema).toHaveBeenCalled();
expect((component as any).createColumns).toHaveBeenCalled();
});
it('should not call loadPreferencesAndInitialize when appName does not change', () => {
spyOn(preferencesService, 'getPreferences');
const status = new SimpleChange('old-status', 'new-status', false);
component.ngOnChanges({ status });
expect(preferencesService.getPreferences).not.toHaveBeenCalled();
});
});
});
@@ -397,8 +397,12 @@ export class ProcessListCloudComponent
}
ngAfterContentInit() {
this.loadPreferencesAndInitialize(this.appName);
}
private loadPreferencesAndInitialize(appName: string): void {
this.cloudPreferenceService
.getPreferences(this.appName)
.getPreferences(appName)
.pipe(
take(1),
map((preferences) => {
@@ -441,13 +445,19 @@ export class ProcessListCloudComponent
}
this.createDatatableSchema();
this.createColumns();
});
}
ngOnChanges(changes: SimpleChanges) {
if (this.isPropertyChanged(changes, 'sorting')) {
this.formatSorting(changes['sorting'].currentValue);
}
if (changes['appName']) {
this.loadPreferencesAndInitialize(changes['appName'].currentValue);
}
if (this.isAnyPropertyChanged(changes)) {
this.reload();
}