Skip to content

Commit d7392c0

Browse files
ddariboteodosiah
andauthored
fix(tree-grid): correct foreignKey value in rowAdd event args (#12979)
* fix(tree-grid): foreignKey value in rowAdd args * chore(*): fix event args type import in test file --------- Co-authored-by: Teodosia Hristodorova <[email protected]>
1 parent dd3dba9 commit d7392c0

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid-add-row-ui.spec.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { configureTestSuite } from '../../test-utils/configure-suite';
77
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
88
import { IgxActionStripComponent } from '../../action-strip/public_api';
99
import { IgxTreeGridRowComponent } from './tree-grid-row.component';
10+
import { first } from 'rxjs/operators';
11+
import { IGridEditEventArgs } from '../public_api';
1012

1113
describe('IgxTreeGrid - Add Row UI #tGrid', () => {
1214
configureTestSuite();
@@ -192,5 +194,28 @@ describe('IgxTreeGrid - Add Row UI #tGrid', () => {
192194
treeGrid.gridAPI.crudService.endEdit(true);
193195
fix.detectChanges();
194196
});
197+
198+
it('should have correct foreignKey value for the data record in rowAdd event arguments', () => {
199+
let newRowId = null;
200+
treeGrid.rowAdd.pipe(first()).subscribe((args: IGridEditEventArgs) => {
201+
expect(args.newValue[treeGrid.foreignKey]).toBe(2);
202+
expect(args.rowData[treeGrid.foreignKey]).toBe(2);
203+
newRowId = args.newValue[treeGrid.primaryKey];
204+
});
205+
206+
treeGrid.beginAddRowById(2, true);
207+
fix.detectChanges();
208+
endTransition();
209+
210+
const addRow = treeGrid.gridAPI.get_row_by_index(2);
211+
expect(addRow.addRowUI).toBeTrue();
212+
213+
treeGrid.gridAPI.crudService.endEdit(true);
214+
fix.detectChanges();
215+
216+
expect(treeGrid.rowList.length).toBe(9);
217+
const addedRow = treeGrid.getRowByKey(newRowId);
218+
expect(addedRow.data[treeGrid.foreignKey]).toBe(2);
219+
});
195220
});
196221
});

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ export class IgxTreeGridComponent extends IgxGridBaseDirective implements GridTy
711711
Object.keys(row.data).forEach(key => {
712712
// persist foreign key if one is set.
713713
if (this.foreignKey && key === this.foreignKey) {
714-
row.data[key] = treeRowRec.data[key];
714+
row.data[key] = treeRowRec.data[this.crudService.addRowParent?.asChild ? this.primaryKey : key];
715715
} else {
716716
row.data[key] = undefined;
717717
}

0 commit comments

Comments
 (0)