diff --git a/frontend/bec_atlas/src/app/scan-table/column-selection-dialog/column-selection-dialog.component.spec.ts b/frontend/bec_atlas/src/app/scan-table/column-selection-dialog/column-selection-dialog.component.spec.ts index 645ab9c..5f27b4c 100644 --- a/frontend/bec_atlas/src/app/scan-table/column-selection-dialog/column-selection-dialog.component.spec.ts +++ b/frontend/bec_atlas/src/app/scan-table/column-selection-dialog/column-selection-dialog.component.spec.ts @@ -7,11 +7,17 @@ import { MatDialogRef, } from '@angular/material/dialog'; +import { MatCheckboxChange } from '@angular/material/checkbox'; + describe('ColumnSelectionDialogComponent', () => { let component: ColumnSelectionDialogComponent; let fixture: ComponentFixture; + let dialogRefSpy: jasmine.SpyObj>; beforeEach(async () => { + + dialogRefSpy = jasmine.createSpyObj>(['close']); + await TestBed.configureTestingModule({ providers: [ { @@ -23,7 +29,7 @@ describe('ColumnSelectionDialogComponent', () => { }, { provide: MatDialogRef, - useValue: {}, + useValue: dialogRefSpy, }, ], imports: [ColumnSelectionDialogComponent, MatDialogModule], @@ -37,4 +43,33 @@ describe('ColumnSelectionDialogComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + it('should update the selected columns', () => { + component.columns = [ + { name: 'column1', selected: true }, + { name: 'column2', selected: false }, + ]; + let checkbox_changed = new MatCheckboxChange(); + checkbox_changed.checked = true; + component.handleCheckboxChecked(checkbox_changed, 1); + expect(component.columns).toEqual([ + { name: 'column1', selected: true }, + { name: 'column2', selected: true }, + ]); + }); + + it('should close dialog on cancel, no data', () => { + component.onCancelClick(); + expect(dialogRefSpy.close).toHaveBeenCalledWith(null); + }); + + it('should close dialog on apply, with data', () => { + component.columns = [ + { name: 'column1', selected: true }, + { name: 'column2', selected: false }, + ]; + component.onApplyClick(); + expect(dialogRefSpy.close).toHaveBeenCalledWith(['column1']); + }); + });